НЛП - чому "не" слово зупинки?


18

Я намагаюся видалити стоп-слова, перш ніж виконувати моделювання теми. Я помітив, що деякі заперечувальні слова (ні, ні, ніколи, ні т. Д.) Зазвичай не вважаються словами стоп. Наприклад, NLTK, spacy та sklearn містять "not" у списках стоп-слов. Однак якщо ми видалимо "не" з цих пропозицій нижче, вони втрачають значне значення, і це було б не точно для моделювання теми чи аналізу настроїв.

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

Чи може хто-небудь пояснити, чому ці слова заперечення зазвичай вважаються словами стоп?


2
Якщо ви робите семантичний аналіз речень, очевидно, важливі логічні сполучники: (1) iff not (2). Якщо ви маєте намір моделювати логіку цих пропозицій, не тримайте їх поза сумками. Їх зазвичай кидають туди, оскільки з точки зору пошуку даних, наявність "не" в документі не буде нам багато розповідати про цю тему, щоб допомогти нам відрізнити її від інших документів; це не досить рідко. Можливо, є й інші причини ігнорування їх у завданнях nlp.
Хунан Ростомян

Відповіді:


20

Стоп-слова зазвичай вважаються як "найпоширеніші слова в мові". Однак можливі й інші визначення, засновані на різних завданнях.

Очевидно, має сенс розглядати "не" як слово зупинки, якщо ваше завдання базується на частоті слова (наприклад, аналіз tf – idf для класифікації документів).

Якщо ви переймаєтесь контекстом (наприклад, аналізом настроїв ) тексту, може бути доцільним трактувати слова заперечення по-різному. Заперечення змінює так звану валентність тексту. До цього потрібно ставитися обережно і зазвичай не банально. Одним із прикладів може бути корпус заперечення Twitter. Пояснення підходу подано в цій роботі .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.