Почему я получаю ошибку следующего кода "TypeError: ожидаемая строка или байтовоподобный объект"? - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь найти косинусное сходство между двумя предложениями.Но когда предложение преобразуется в «текст в вектор», появится ошибка.Можете дать мне решение?

#cosine similarity

    import re
import math
from collections import Counter
def get_cosine(vec1, vec2):
    intersection = set(vec1.keys()) & set(vec2.keys())
    numerator = sum([vec1[x] * vec2[x] for x in intersection])

    sum1 = sum([vec1[x]**2 for x in vec1.keys()])
    sum2 = sum([vec2[x]**2 for x in vec2.keys()])
    denominator = math.sqrt(sum1) * math.sqrt(sum2)

    if not denominator:
        return 0.0
    else:
        return float(numerator) / denominator
  def text_to_vector(text):
    word = re.compile(r'\w+')
    words = word.findall(text)
    return Counter(words)
def get_result(content_a, content_b):
    text1 = content_a
    text2 = content_b

    vector1 = text_to_vector(text1)
    vector2 = text_to_vector(text2)

    cosine_result = get_cosine(vector1, vector2)
    return cosine_result
#sentences for get cosine similiarity
sentence=['the earth moves around the sun','The sun rises in the west']
#input sentence
file = open('input.txt')
for line in file:
    print(line)
n=0;
while(n!=len(sentence)):
    get_result(sentence,line)

, когда вызов цикла вызовет функцию text_to_vector, появится ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...