SKLearn TF-IDF丢号?

SKLearn TF-IDF to drop numbers?

我正在做文本分析,我想忽略 'words' 那只是数字。例如。在文本 "This is 000 Sparta!" 中,仅应使用词 'this'、'is' 和 'Sparta'。有没有办法做到这一点?怎么样?

TfidfVectorizer 的默认标记模式是 u'(?u)\b\w\w+\b',它匹配至少有两个单词字符的单词,即 [a-zA-Z0-9_];您可以根据需要修改 token_pattern,例如,正则表达式 (?ui)\b\w*[a-z]+\w*\b 确保它匹配一个单词但至少包含一个字母:

from sklearn.feature_extraction.text import TfidfVectorizer
tf = TfidfVectorizer(token_pattern=u'(?ui)\b\w*[a-z]+\w*\b')
​
text = ["This is 000 Sparta!"]
tfidf_matrix =  tf.fit_transform(text)
feature_names = tf.get_feature_names() 
​
print(feature_names)
[u'is', u'sparta', u'this']

看官方文档是怎么实现的here。 所有数字都被视为一个特征#NUMBER