код:
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 с наибольшим количеством очков?
спасибо