PNL - por que "não" é uma palavra de parada?

18

Estou tentando remover palavras de parada antes de executar a modelagem de tópicos. Notei que algumas palavras de negação (não, nem, nunca, nenhuma etc.) são geralmente consideradas palavras de parada. Por exemplo, NLTK, spacy e sklearn incluem "not" em suas listas de palavras de parada. No entanto, se removermos "não" dessas frases abaixo, elas perderão o significado significativo e isso não seria preciso para modelagem de tópicos ou análise de sentimentos.

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

Alguém pode explicar por que essas palavras de negação são geralmente consideradas palavras de parada?

EK
fonte
2
Se você estiver fazendo uma análise semântica de sentenças, obviamente conectivos lógicos são importantes: (1) se não (2). Se você pretende modelar a lógica dessas frases, mantenha-as fora da embalagem. Eles geralmente são lançados lá porque, do ponto de vista da mineração de dados, a presença de 'não' em um documento não nos diz muito sobre o tópico para nos ajudar a distingui-lo de outros documentos; não é raro o suficiente. Provavelmente, existem outros motivos para ignorá-los nas tarefas PNL.
Hunan Rostomyan

Respostas:

20

Pare palavras são geralmente consideradas "as palavras mais comuns em um idioma". No entanto, outras definições baseadas em tarefas diferentes são possíveis.

Claramente, faz sentido considerar 'não' como uma palavra final se sua tarefa for baseada em frequências de palavras (por exemplo , análise tf – idf para classificação de documentos).

Se você estiver preocupado com o contexto (por exemplo, análise de sentimentos ) do texto, pode fazer sentido tratar as palavras de negação de maneira diferente. Negação altera a chamada valência de um texto. Isso precisa ser tratado com cuidado e geralmente não é trivial. Um exemplo seria o corpus de negação do Twitter. Uma explicação da abordagem é apresentada neste artigo .

oW_
fonte