我正在进行文本分析,我想忽略那些只是数字的'单词'。例如。从文本“这是000斯巴达!”只应使用'this','is'和'Sparta'这两个词。有没有办法做到这一点?怎么样?
答案 0 :(得分:6)
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']
答案 1 :(得分:1)
了解它是如何在官方文档here中实现的。 所有数字都被视为一个功能#NUMBER