如何停用 sklearn TfidfVectorizer 的默认停用词功能
How to deactivate the default stop words feature for sklearn TfidfVectorizer
我正在尝试获取日语单词的 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 的字符作为停用词。
我怎样才能停用默认停用词功能并保留所有字符?
您可以将 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)
# ['が', '歯', '痛い']
我正在尝试获取日语单词的 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 的字符作为停用词。 我怎样才能停用默认停用词功能并保留所有字符?
您可以将 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)
# ['が', '歯', '痛い']