Я не могу преобразовать число в строку, используя tfidvectorizer
, даже после использования функции str
. Я прошу любого дать решение для этого.
dum['course_id']=str(dum['course_id'])
tf = TfidfVectorizer(analyzer='word',ngram_range=(1, 2),min_df=0, stop_words='english')
tfidf_matrix = tf.fit_transform(dum['course_id'])
Я не получаю правильный вывод, который я хочу получить, я использую это для системы рекомендаций, поэтому, используя идентификатор курса (1,2,3,4 ....), я должен рекомендовать похожих пользователей ... но выводить дает всем пользователям вместо того, чтобы показывать похожих пользователей ..
вот несколько строк кода, где dum - имя набора данных
дум [ 'course_id'] = ул (дум [ 'course_id'])
tf = TfidfVectorizer (анализатор = 'char', ngram_range = (1, 2), min_df = 0, stop_words = 'english')
tfidf_matrix = tf.fit_transform (dum ['course_id'])
tfidf_matrix.shape
cosine_sim = linear_kernel (tfidf_matrix, tfidf_matrix)
userid = dum ['user_id']
indexes = pd.Series (dum.index, index = dum ['user_id'])
def get_recommendations_userid (userid):
idx = индексы [идентификатор пользователя]
sim_scores = list(enumerate(cosine_sim[idx]))
sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
user_indices = [i[0] for i in sim_scores]
return user_indices[0:11]
get_recommendations_userid (2)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
вывод: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], что неверно при проверке сходства пользователей