countVectorizer中的特殊字符Scikit-learn

use*_*145 5 python machine-learning scikit-learn

考虑这个可运行的例子:

#coding: utf-8
from sklearn.feature_extraction.text import CountVectorizer

vectorizer = CountVectorizer()
corpus = ['öåa hej ho' 'åter aba na', 'äs äp äl']
x = vectorizer.fit_transform(corpus)
l =  vectorizer.get_feature_names()

for u in l:
        print u
Run Code Online (Sandbox Code Playgroud)

输出将是

aba
hej
ho
na
ter
Run Code Online (Sandbox Code Playgroud)

为什么ääö被删除了?请注意,矢量化程序strip_accents = None是默认值.如果你能帮助我,我将非常感激.

ogr*_*sel 9

这是一种减少维度的有意方式,同时使矢量化程序能够容忍输入,其中作者并不总是与使用强调字符一致.

如果要禁用该功能,只是通过strip_accents=NoneCountVectorizer作为在解释这一类的文档.

>>> from sklearn.feature_extraction.text import CountVectorizer
>>> CountVectorizer(strip_accents='ascii').build_analyzer()(u'\xe9t\xe9')
[u'ete']
>>> CountVectorizer(strip_accents=False).build_analyzer()(u'\xe9t\xe9')
[u'\xe9t\xe9']
>>> CountVectorizer(strip_accents=None).build_analyzer()(u'\xe9t\xe9')
[u'\xe9t\xe9']
Run Code Online (Sandbox Code Playgroud)

  • 我可以将这个参数命名为`strip_diacritics`,这可能更精确,但大多数用户会更加理解:) (2认同)