Если у нас есть два списка строк:Вычислить косинус сходство между словами
A = "Hello how are you? The weather is fine. I'd like to go for a walk.".split()
B = "bank, weather, sun, moon, fun, hi".split(",")
Слово в списке A
составляет мое слово векторного базиса. Как вычислить оценки подобия косинуса каждого слова в B?
Что я сделал до сих пор: я могу вычислить косинус сходство двух целых списков с помощью следующей функции:
def counter_cosine_similarity(c1, c2):
terms = set(c1).union(c2)
dotprod = sum(c1.get(k, 0) * c2.get(k, 0) for k in terms)
magA = math.sqrt(sum(c1.get(k, 0)**2 for k in terms))
magB = math.sqrt(sum(c2.get(k, 0)**2 for k in terms))
return dotprod/(magA * magB)
Но как я должен интегрировать свой векторный базис, и как я могу вычислить то сходства между членами в B?
Что такое 'T' ...? – trincot
Вы даже делали какие-либо исследования по этому вопросу? – TuanDT
Самый быстрый способ для вас - опубликовать код, который вы написали до сих пор, и запросить дополнительный ввод. – Ukimiku