如何停用Sklearn tfidfvectorizer的默认停止单词功能



我正在尝试获取日语单词的tf-idf值。我遇到的问题是,Sklearn tfidfectorizer删除了一些我想保留的日语角色,作为停止单词。

以下示例:

from sklearn.feature_extraction.text import TfidfVectorizer
tf = TfidfVectorizer(stop_words = None)
words_list = ["歯","が","痛い"]
tfidf_matrix =  tf.fit_transform(words_list)
feature_names = tf.get_feature_names() 
print (feature_names)

输出为:['痛い']

但是,我想将所有这三个字符保留在列表中。我相信tfidfvectorizer删除了长度为1的字符作为停止单词。我如何停用默认停止单词功能并保留所有字符?

您可以将 token_pattern 参数从 (?u)\b\w\w+\b(默认值(更改为 (?u)\b\w\w*\b;默认匹配的令牌具有两个或多个单词字符(如果您不熟悉Regex,+表示一个或多个,则\w\w+将单词与两个或多个单词字符匹配;另一方面,*表示零或更多,\w\w*将会因此,将单词与一个或多个字符匹配(:

from sklearn.feature_extraction.text import TfidfVectorizer
tf = TfidfVectorizer(stop_words = None, token_pattern='(?u)\b\w\w*\b')
​
words_list = ["歯","が","痛い"]
tfidf_matrix =  tf.fit_transform(words_list)
feature_names = tf.get_feature_names() 
print(feature_names)
# ['が', '歯', '痛い']

最新更新