停用词 (Stopword)
在搜索和文本分析中被排除的高频词,如"的""是""a""the"等语义重要性较低的词。
停用词 (stop word) 是在文本分析和搜索引擎索引构建中被排除的高频词。日语中的助词"の""は""が""を""に""で""と"等,英语中的冠词、介词和 be 动词如 "a" "the" "is" "in" "and" "of" 等都属于此类。这些词出现频率极高,但单独来看几乎不携带语义信息,因此成为文本分析中的噪声。
排除停用词的主要目的是提高搜索精度和减小索引大小。全文搜索引擎把高频词从索引中排除后,倒排索引所保存的倒排记录 (postings) 数量会大幅减少。信息检索的代表性教科书 Introduction to Information Retrieval 在 Reuters-RCV1 语料上给出的实测显示,去掉最高频的 150 个词后,不带位置信息的倒排记录数减少了约 3 成。在文本挖掘中,排除停用词后计算 TF-IDF (词频-逆文档频率) 可以更准确地提取表征文档特征的关键词。
停用词列表因语言和用途而异。Python 的自然语言处理库附带英语的标准停用词表,但收录词数会随库和版本而变化,因此在未锁定依赖版本的环境中,应先确认实际加载的词表再使用。日语停用词列表基于形态素分析结果构建,以助词、助动词和连词为主。添加领域特定的停用词 (如医疗领域的"患者"、法律领域的"条款"等) 可以进一步提高分析精度。
但是,一律排除停用词需要谨慎。在 "to be or not to be" 这样停用词承载核心含义的情况下,或 "The Who" (乐队名) 这样专有名词包含停用词的情况下,排除会导致信息丢失。短语搜索 ("New York" 等) 也依赖停用词的位置信息,因此完全排除并不合适。
正如上述教科书所指出的,Web 搜索引擎大多已不再使用停用词表:压缩技术降低了保存高频词倒排记录的成本,而词项加权 (idf) 又使超高频词对排名几乎没有影响,因此刻意丢弃它们的好处已经很小。搜索引擎和大语言模型会根据包含功能词在内的整句来判断查询意图。BERT 等 Transformer 模型从包含停用词的完整句子中学习上下文,因此预处理中排除停用词反而可能产生负面效果。
在字符计数方面,停用词的特点是在文本总字符数中占比较大。在英语中,上述语料实测证实仅最高频的 30 个词就占全部词元的约 3 成,日语中助词同样占据相当大的字符数比例。在有字符数限制的内容 (推文、元描述等) 中,有意识地减少停用词可以在有限的字符数内容纳更多信息。