gpt4 book ai didi

python - 将数字添加到 scikit-learn 的 CountVectorizer 的 stop_words

转载 作者:行者123 更新时间:2023-12-02 20:48:34 25 4
gpt4 key购买 nike

This question解释了如何将您自己的词添加到 CountVectorizer 的内置英文停用词中。我有兴趣了解消除任何数字作为标记对分类器的影响。

ENGLISH_STOP_WORDS 存储为卡住集,所以我想我的问题归结为(除非有我不知道的方法)是否可以向卡住列表添加任意数字表示?

我对这个问题的感觉是这是不可能的,因为您必须通过的列表的有限性排除了这一点。

我想完成同样事情的一种方法是遍历测试语料库并弹出单词,其中 word.isdigit() 是一个集合/列表,然后我可以与 ENGLISH_STOP_WORDS ( see previous answer ),但我宁愿偷懒,将更简单的内容传递给 stop_words 参数。

最佳答案

您可以将其实现为 CountVectorizer 的自定义预处理器,而不是扩展停用词列表。下面是在 bpython 中显示的一个简单版本。

>>> import re
>>> cv = CountVectorizer(preprocessor=lambda x: re.sub(r'(\d[\d\.])+', 'NUM', x.lower()))
>>> cv.fit(['This is sentence.', 'This is a second sentence.', '12 dogs eat candy', '1 2 3 45'])
CountVectorizer(analyzer=u'word', binary=False, decode_error=u'strict',
dtype=<type 'numpy.int64'>, encoding=u'utf-8', input=u'content',
lowercase=True, max_df=1.0, max_features=None, min_df=1,
ngram_range=(1, 1),
preprocessor=<function <lambda> at 0x109bbcb18>, stop_words=None,
strip_accents=None, token_pattern=u'(?u)\\b\\w\\w+\\b',
tokenizer=None, vocabulary=None)
>>> cv.vocabulary_
{u'sentence': 6, u'this': 7, u'is': 4, u'candy': 1, u'dogs': 2, u'second': 5, u'NUM': 0, u'eat': 3}

预编译正则表达式可能会在处理大量样本时提供一些加速。

关于python - 将数字添加到 scikit-learn 的 CountVectorizer 的 stop_words,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43216530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com