Как обработать косинусное сходство результата в кадре данных? - PullRequest
0 голосов
/ 28 января 2020

код:

import pandas as pd

df= pd.DataFrame([
    ['apple','sweet'],
    ['apple','affordable'],
    ['apple','fruit'],
    ['orange','fruit'],
    ['orange','sour'],
    ['orange','affordable'],
    ['soda','sweet'],
    ['soda','import'],
    ['soda','softdrinks'],
    ['beer','alchohol'],
    ['beer','smooth'],
    ['beer','expensive'],
    ])
df= df.rename(columns={0: "productName", 1: "itemFeatures"})
df2 = pd.crosstab(df['productName'],df['itemFeatures'])

Я застрял в правильной обработке результата косинуса, ответ там, но кажется "странным", нужно руководство.

from sklearn.metrics.pairwise import cosine_similarity
answer = cosine_similarity(df2, df2)
answer2 = pd.DataFrame(answer, columns=df2.index, index=df2.index)

x = input()
y = input()
answer3 = answer2.loc[['{}'.format(x)],['{}'.format(y)]].values[0]
answer4 = float(answer3)
print('Similarity: {:.2f}%'.format(answer4*100))

мой желаемый результат Умеет вводить productName и возвращать 3 верхних похожих элемента. После ввода productName, как вернуть топ3 с наибольшим количеством очков?

спасибо

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