Хорошо, я разобрался с ответом на свою проблему.
Если я уроню все параметры в vectorizer
, например:
vectorizer = TfidfVectorizer()
Код работает очень хорошо.Затем я добавил входной параметр обратно, и он все еще работал нормально.
vectorizer = TfidfVectorizer(input="filename")
То же самое, если я добавляю стоп-слова обратно:
vectorizer = TfidfVectorizer(input="filename",stop_words=stopwords_C50)
Однако, когда я передаю токенизатор, онвыдает ошибку.
Как оказалось, аргумент, который я передавал vectorizer
, представлял собой список токенов, когда это должна была быть другая функция.
Я определилФункция stem_tokenizer
выглядит следующим образом:
def stem_tokenizer(text):
return [porter_stemmer.stem(token) for token in word_tokenize(text.lower())]
И передал это vectorizer
:
vectorizer = TfidfVectorizer(input="filename",tokenizer = stem_tokenizer, stop_words=stopwords_C50)
Это решило проблему для меня.