NLP-「なぜ」ストップワードなのですか?


18

トピックモデリングを実行する前にストップワードを削除しようとしています。いくつかの否定語(ない、決して、決してない、など)は通常ストップワードと見なされることに気付きました。たとえば、NLTK、spacy、sklearnのストップワードリストには「not」が含まれています。ただし、これらの文から「not」を削除すると、重要な意味が失われ、トピックモデリングやセンチメント分析にとって正確ではなくなります。

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

これらの否定語が通常ストップワードであると考えられる理由を説明してください。


2
文のセマンティック分析を行う場合、明らかに論理接続詞が重要です:(1)(2)ではない場合。これらの文のロジックをモデル化する場合は、ストップバッグに入れないでください。データマイニングの観点からは、ドキュメントに「not」が存在しても、トピックについて他のドキュメントと区別するのに役立つとは限らないため、通常はそこにスローされます。まれではありません。nlpタスクでそれらを無視する理由はおそらく他にもあります。
湖南ロストミアン16

回答:


20

ストップワードは通常、「言語で最も一般的な単語」と見なされます。ただし、異なるタスクに基づく他の定義が可能です。

タスクが単語の頻度に基づいている場合(文書分類のtf–idf分析など)、ストップワードとして「not」を考慮することは明らかに理にかなっています。

テキストのコンテキスト(感情分析など)に関心がある場合は、否定語を異なる方法で扱うのが理にかなっているかもしれません。否定は、テキストのいわゆるを変更します。これは慎重に扱う必要があり、通常は些細なことではありません。1つの例は、Twitter否定コーパスです。この論文でアプローチの説明をします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.