TfidfVectorizer - как остановить предварительную обработку текстовых значений - PullRequest
0 голосов
/ 26 февраля 2019

Я использую 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}
...