NLP - dlaczego „nie” to słowo stop?


18

Próbuję usunąć słowa stop przed wykonaniem modelowania tematu. Zauważyłem, że niektóre słowa negacji (nie, ani nigdy, nigdy itd.) Są zwykle uważane za słowa stop. Na przykład NLTK, spacy i sklearn zawierają „not” na swoich listach słów kluczowych. Jeśli jednak usuniemy „nie” z poniższych zdań, tracą one znaczące znaczenie i nie byłoby to właściwe w przypadku modelowania tematów lub analizy sentymentów.

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

Czy ktoś może wyjaśnić, dlaczego te słowa negacji są zwykle uważane za słowa stop?


2
Jeśli wykonujesz semantyczną analizę zdań, oczywiście logiczne połączenia są ważne: (1) iff nie (2). Jeśli zamierzasz modelować logikę tych zdań, trzymaj je z dala od torby z przystankami. Zazwyczaj są tam wrzucane, ponieważ z punktu widzenia eksploracji danych obecność „nie” w dokumencie nie powie nam wiele na ten temat, aby pomóc nam odróżnić go od innych dokumentów; to nie jest dość rzadkie. Prawdopodobnie istnieją inne powody, aby je ignorować w zadaniach nlp.
Hunan Rostomyan

Odpowiedzi:


20

Słowa stop są zwykle uważane za „najczęstsze słowa w języku”. Możliwe są jednak inne definicje oparte na różnych zadaniach.

Rozsądne jest uznanie „nie” za słowo końcowe, jeśli twoje zadanie opiera się na częstotliwości słów (np. Analiza tf – idf do klasyfikacji dokumentów).

Jeśli interesuje Cię kontekst (np. Analiza sentymentu ) tekstu, sensowne może być odmienne traktowanie wyrazów negacji. Negacja zmienia tak zwaną wartościowość tekstu. Trzeba to traktować ostrożnie i zwykle nie jest to banalne. Jednym z przykładów byłby korpus zaprzeczenia na Twitterze. Wyjaśnienie tego podejścia znajduje się w tym artykule .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.