Как найти префикс слова для nlp - PullRequest
0 голосов
/ 27 мая 2020

Я хочу найти префикс слова для целей nlp (интересуюсь морфологическим отрицанием).

Например, я хочу знать, что «не может» отрицательно, но «университет» не имеет никакого вида отрицания. Я до сих пор использую функцию startwith python, но, очевидно, могут быть некоторые проблемы.

Есть ли у кого-нибудь опыт поиска префиксов слов? Я чувствую, что должна быть какая-то библиотека или api, но я не уверен.

1 Ответ

0 голосов
/ 27 мая 2020

Если не считать полного морфологического анализатора, вы можете обойти это с помощью списков исключений и самого длинного сопоставления.

Например: вы предполагаете, что un- выражает отрицание. Сначала найдите более длинные префиксы (например, uni- ) и сравните их сначала, прежде чем смотреть на un- . Будет несколько исключений, например неинтересно , которые вы можете проверить отдельно. Это будет довольно небольшой список sh. Затем, когда все слова uni- будут обработаны, все, что начинается с un- , является кандидатом, хотя также будут исключения, такие как под .

Немного лучшее решение возможно, если у вас есть базовый список c слов: вырезать un- с начала строки и проверить, находится ли остаток в вашем слове список. Университет станет iversity , которого нет в вашем списке, и, следовательно, это не префикс un- . Однако неинтересно превратится в интересно , то есть здесь вы нашли действительный префикс. Все, что вам нужно для этого, - это список неотрицательных слов. Конечно, вы также можете использовать это для других префиксов, таких как альфа-приватный , как в нетипичный остаток типичный будет в вашем списке.

Если у вас нет такого списка, просто разделите свой текст на лексемы, отсортируйте и определите их уникальность, а затем просканируйте строку слов, начинающуюся с префиксов кандидатов. Это немного утомительно, но количество релевантных слов невелико. Это то, что мы все делали в НЛП 30 лет go ...:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...