NLP-为什么“不”是一个停用词?


18

我试图在执行主题建模之前删除停用词。我注意到一些否定词(不是,也不是,从不,等等)通常被认为是停用词。例如,NLTK,spacy和sklearn在其停用词列表中包含“ not”。但是,如果我们从下面的这些句子中删除“否”,则它们将失去重要的含义,对于主题建模或情感分析而言,这将是不准确的。

1). StackOverflow is helpful      => StackOverflow helpful
2). StackOverflow is not helpful  => StackOverflow helpful

谁能解释为什么这些否定词通常被视为停用词?


2
如果您要对句子进行语义分析,那么逻辑连接词显然很重要:(1)不(2)。如果您打算对这些句子的逻辑进行建模,请将其放在停止位置。通常将它们扔在那里是因为从数据挖掘的角度来看,文档中是否存在“不会”并不能告诉我们有关该主题的太多信息,以帮助我们将其与其他文档区分开来。这还不够罕见。在nlp任务中可能有其他原因忽略它们。
湖南罗斯托扬

Answers:


20

停用词通常被认为是“一种语言中最常见的词”。但是,基于不同任务的其他定义也是可能的。

如果您的任务基于词频(例如对文档分类的tf–idf分析),则将“不”视为停用词显然很有意义。

如果您关心文本的上下文(例如,情感分析),则可以对否定词进行不同的处理。否定改变了文本的价态。这需要仔细对待,通常不容易。一个示例就是Twitter否定语料库。本文对该方法进行了解释。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.