Как устранить несоответствие векторизатораPython

Программы на Python
Ответить
Anonymous
 Как устранить несоответствие векторизатора

Сообщение Anonymous »

Я использую TfidfVectorizer для векторизатора текста, но при попытке получить cosine_similarity возникает несоответствие размеров.
Моя ситуация выглядит так:
во-первых,

Код: Выделить всё

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
PS: я проверил длину слов word_vec и title_vec, они показывают разную длину.
Я установил 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»