привет! занимаюсь извлечением ключевых слов и фраз из всяких текстов на русском языке. В принципе все получается неплохо, но довольно часто встречаются ошибки такого плана: слова берутся из одного предложения (что правильно), но из двух разных смысловых частей, и получается довольно бессмысленная фраза. Например: “В ходе ежегодного визита президент Дональд Трамп отметил… ” -> извлекается “визита президент Дональд Трамп“.
Вот если бы просто “президент Дональд Трамп“, было бы неплохо. Но вот это “визита” портит.
Вы не знаете, как можно с этим побороться?
Вот что мне приходит в голову:
- ограничить количество слов во фразе (не очень работает)
- прикрутить какую-нибудь DL модель, которая будет говорить, насколько такая фраза “правильна“, может встретиться в русском языке.
- каким-то образом разбивать предложение дальше на смысловые куски (но как это сделать? можно было бы по запятой, но это не очень часто встречающийся случай. В примере выше запятой нет.).
Пока что все, честно говоря.
Сейчас алгоритм довольно простой, без DL. В наличии есть леммы, POS, разбиение текста на предложения, разбиение предложений на токены. С помощью NLTK текст парсится и определяются NP-фразы (с существительными), подходящими под какой-то паттерн (типа: “прилагательное + существительное” или “существительное+существительное+прилагательное)“.