如何在sklearn TfidfVectorizer中关闭默认停用词功能?

4

我正在尝试获取日语单词的tf-idf值。

我的问题在于,sklearn TfidfVectorizer会将某些我想保留作为停用词的日语字符删除。

以下是示例:

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的字符作为停用词去除。 我该如何关闭默认的停用词功能并保留所有字符?
1个回答

4
您可以将token_pattern参数从默认值(?u)\\b\\w\\w+\\b更改为(?u)\\b\\w\\w*\\b; 默认值匹配具有两个或更多单词字符的标记(如果您不熟悉正则表达式,+表示一个或多个,因此\\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)
# ['が', '歯', '痛い']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接