只忽略 ngram_range=1 的停用词

Posted

技术标签:

【中文标题】只忽略 ngram_range=1 的停用词【英文标题】:Only ignore stop words for ngram_range=1 【发布时间】:2015-07-20 16:04:03 【问题描述】:

我正在使用来自 sklearn 的 CountVectorizer...希望提供停用词列表并为 (1,3) 的 ngram_range 应用计数向量器。

据我所知,如果一个词 - 说“我” - 在停用词列表中,那么它不会被更高的 ngram 看到,即“告诉我”不会是一个特征。有没有一种方法可以指定诸如“仅当 ngram 为 1 时才考虑停用词”?

【问题讨论】:

【参考方案1】:

您至少有 2 个选项:

    将2种特征与FeatureUnion结合:一种用于 ngram_range of (1,1) 带有停用词和一个用于 ngram_range 的 (2,3) 没有停用词

    (更高效,但更难实现和使用)实现您自己的分析器,它将在停止时检查是否存在 单词列表仅适用于 unigrams;请参阅this answer 中的示例代码示例。

【讨论】:

以上是关于只忽略 ngram_range=1 的停用词的主要内容,如果未能解决你的问题,请参考以下文章

忽略查询中的mysql全文停用词

即使停用词列表为空,如果包含停用词,全文搜索也不起作用

如何使用 elasticsearch nest api 创建自定义分析器以忽略重音和 pt-br 停用词?

Python TfidfVectorizer 抛出:空词汇;也许文件只包含停用词”

如果行只包含停用词中的任何一行,则从文本文件中删除这些行

es中的停用词