Я использую TfidfVectorizer от sklearn для анализа текстового корпуса.Корпус - это набор токенов, каждый из которых представляет собой комбинацию слова, двоеточия (:) и цели слова (NOUN, VERB и т. Д.).К сожалению, похоже, что TfidfVectorizer предварительно обрабатывает строки и разделяет объединенный токен на отдельные токены.
Есть ли способ остановить предварительную обработку данных?
Ниже приведена программа, иллюстрирующая проблему:
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer()
text =["They:NOUN are:VERB", "plain:NOUN texts:VERB texts:NOUN ampersand:VERB here:NOUN"]
text_tfidf = vectorizer.fit_transform(text)
vocab = vectorizer.vocabulary_
print(vocab)
Это сгенерированный вывод (обратите внимание, что слово и его назначение (NOUN, VERB и т. Д.) В нижнем регистре и разделены наотдельные токены):
{'they': 6, 'noun': 3, 'are': 1, 'verb': 7, 'plain': 4, 'texts': 5, 'ampersand': 0, 'here': 2}
Это вывод, который я хочу (я заменил «9» на числовые значения), который отражает объединенный токен и , а не разделенные элементы токена):
{'they:NOUN': 9, "are:VERB": 9, "plain:NOUN": 9, "texts:VERB": 9, "texts:NOUN": 9, "ampersand:VERB": 9, "here:NOUN": 9}