我正在使用sklearn的TfidfVectorizer分析文本语料库。语料库是一组标记,其中每个标记是单词,冒号(:)和单词目的(名词,动词等)的组合。不幸的是,似乎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)
这是生成的输出(请注意,单词及其目的(名词,动词等)是小写的并分成单独的标记):
{'they': 6, 'noun': 3, 'are': 1, 'verb': 7, 'plain': 4, 'texts': 5, 'ampersand': 0, 'here': 2}
这是我想要的输出(我将数字值替换为“ 9”),该输出反映了 combined 标记和 not 分隔的标记元素):>
{'they:NOUN': 9, "are:VERB": 9, "plain:NOUN": 9, "texts:VERB": 9, "texts:NOUN": 9, "ampersand:VERB": 9, "here:NOUN": 9}