Я векторизовал список строк, используя TfidfVectorizer. Я хочу иметь возможность использовать опцию "vocabulary = mapping" в TfidfVectorizer.
Если я могу использовать параметр «словарь», то у меня есть словарь (имена элементов), сопоставленный с соответствующим индексом в самой матрице CSR. Это позволило бы мне сохранить файл csr и повторно использовать его в другом коде с именами объектов.
Если я не использую параметр словаря, я должен использовать .get_feature_names () для извлечения имен объектов. Затем я создаю фрейм данных с именами и счетами объектов и сохраняю фрейм данных, чтобы его можно было повторно использовать.
Ошибка, которую я получил, была: ValueError: Дублируемый термин в словаре: 'p' Я даже добавил стоп-слово для удаления одиночных символов («_stopwords.append (" \ w ")), но все равно получил то же самое ошибка.
Может кто-нибудь сказать, что я тут не так делаю?
#tfidf = TfidfVectorizer(stop_words=_stopwords, ngram_range=(1, 3), tokenizer=tokenize_and_stem)
tfidf = TfidfVectorizer(stop_words=_stopwords, ngram_range=(1, 3), tokenizer=tokenize_and_stem, vocabulary="Mapping")
tfidf_matrix = tfidf.fit_transform(corpus)
#corpus is list of strings here