"단어 백"방식의 여러 목록을 쌍으로 비교하려고합니다. 내 목록에는 문자열 만 있습니다.
불행히도 스크립트에서 수정할 수없는 버그가 있습니다.
목록에 숫자가있는 경우 코드가 작동하지만 목록에 문자열이 있으면 더 이상 실행되지 않습니다. 도와 주셔서 감사합니다.목록에서 특정 문자열이 얼마나 자주 발생하는지 계산합니다.
나는 다음과 같은 오류 메시지가 나타난다 :
가Traceback (most recent call last):
File "test.py", line 21, in <module>
bow_matrix[0, p] = list_words_ab[p]
ValueError: could not convert string to float: 'd'
내 코드는 기본적 numpy.zeros
으로
a = ["a", "b", "c", "d"]
b = ["b", "c", "d", "e"]
p = 0
if len(a) > len(b):
max_words = len(a)
else:
max_words = len(b)
list_words_ab = list(set(a) | set(b))
len_bow_matrix = len(list_words_ab)
bow_matrix = numpy.zeros(shape = (3, len_bow_matrix))
while p < len_bow_matrix:
bow_matrix[0, p] = list_words_ab[p]
p = p+1
p = 0
while p < len_bow_matrix:
bow_matrix[1, p] = a.count(bow_matrix[0, p])
bow_matrix[2, p] = b.count(bow_matrix[0, p])
p = p+1
샘플 입력과 필요한 출력을 제공하십시오 –
예 : a [NLS, VS40, AMPR], b = [VS40, VS40, AMPR, GFP] [NLS, VS40, AMPR, GFP]와 같은 행렬을 얻고 싶습니다. , 1, 1, 0], [0, 2, 1, 1]] 첫 번째 행에는 두 문자열 (중복되지 않음)에있는 모든 문자열의 합집합이 있고 두 번째/세 번째 행에는 빈도가 필요합니다. 해당 문자열이 목록 a/b에서 얼마나 자주 발생하는지. – Philipp
'numpy.zeros'를 사용하면 float을 기대하는 행렬을 생성한다고 생각합니다. –