Моя ситуация выглядит так:
во-первых,
Код: Выделить всё
def clean_text(text):
return re.sub(r'[^a-zA-Z0-9 ]', "", text)
movies['title'] = movies['title'].apply(clean_text)
vectorizer = TfidfVectorizer(ngram_range=(1,2), stop_words ='english')
title_vec = vectorizer.fit_transform(movies['title'])
title = "Toy Story"
title = clean_text(title)
word_vec = vectorizer.transform([title])
similarity = cosine_similarity(word_vec, title_vec)
Код: Выделить всё
ValueError: Incompatible dimension for X and Y matrices: X.shape[1] == 172412 while Y.shape[1] == 156967
Я установил ngram_range= (1,1) в векторизаторе, но положительного результата нет.
Я использовал countvectorizer(), но проблема осталась
У меня не было выбора и ChatGPT предоставил решение, которое не помогло проблема:
Код: Выделить всё
from scipy.sparse import hstack
Код: Выделить всё
if word_vec.shape[1] > title_vec.shape[1]:
diff = word_vec.shape[1] - title_vec.shape[1]
title_vec = hstack([title_vec, np.zeros((title_vec.shape[0], diff))])
elif title_vec.shape[1] > word_vec.shape[1]:
diff = title_vec.shape[1] - word_vec.shape[1]
word_vec = hstack([word_vec, np.zeros((word_vec.shape[0], diff))])
спасибо за помощь в будущем.
Подробнее здесь: https://stackoverflow.com/questions/792 ... r-mismatch
Мобильная версия