无意中删除了scikitslearn中的一些停止语



我想在向量中保留单个字符。在scikit学习CountVectorizer时,我甚至保留了stop_word参数,因为None的内部实现是从新创建的向量中删除一些字符。如何处理?

这是因为token_pattern参数默认为'(?u)\b\w\w+\b',它过滤所有仅由单个字符(例如"a"或"i")组成的单词(前提是参数analyzer设置为'word',这是默认值)。如果将token_pattern设置为不同的正则表达式,则应保留'(?u)\b\w+\b'单字符单词。

示例:

In [71]: from sklearn.feature_extraction.text import CountVectorizer
In [72]: corpus = ['I like my coffee with a shot of rum.']
In [73]: vec = CountVectorizer()
In [74]: vec.fit(corpus)
In [75]: vec.vocabulary_
Out[75]: {'coffee': 0, 'like': 1, 'my': 2, 'of': 3, 'rum': 4, 'shot': 5, 'with': 6}
In [76]: vec = CountVectorizer(token_pattern='(?u)\b\w+\b')
In [77]: vec.fit(corpus) 
In [78]: vec.vocabulary_
Out[78]: {'a': 0, 'coffee': 1, 'i': 2, 'like': 3, 'my': 4, 'of': 5, 'rum': 6, 'shot': 7, 'with': 8}

相关内容

  • 没有找到相关文章

最新更新