Страницы

Поиск по вопросам

воскресенье, 7 июля 2019 г.

Поиск признаков в тексте

Сразу к делу:
есть список "признаков", например, 1 - ведение пропаганды, 2 - пролеты беспилотных летательных аппаратов, 3 - проведение тренировок и т.д. (в действительности их больше и они сами по себе подлиннее будут)
есть сообщения (относительно формализованные), например, "Вчера над городом пролетел беспилотный летательный аппарат "Свичблэйд". (здесь проявляется признак №2)
Вопрос: каков по вашему мнению лучший способ извлечения "признаков" из сообщений?
Моя скудная фантазия и опыт разработки на python предлагает несколько вариантов:
подготовить под каждый из имеющихся признаков какой-то набор сообщений и обучить какой-нибудь байесовский классификатор их определять (минус в том, что в сообщении может быть несколько признаков, например, по одному в каждом предложении или же 1 признак будет описываться в нескольких предложениях и тогда классификатор будет сомневаться и путаться) сваять что-то на регулярных выражениях, но я в них не силен и не уверен, что это хорошая идея смотрю в сторону полнотекстового поиска, но пока еще не совсем понял, что это и с чем едят.
У кого-нибудь есть идеи, как еще это можно попробовать реализовать? что гуглить, куда смотреть? Буду рад любым идеям :)


Ответ

Я бы попробовал следующий алгоритм:
векторизация / токенизация текста либо в One-Hot-Encoded (пример) либо в последовательности чисел (пример в функции get_data()) построить результирующую матрицу (размерность: число строк x число признаков), где каждый признак присутствует в качестве отдельного столбца с нулями и единицами. Для дальнейшего обучения придется разметить такую матрицу вручную или дополнительной программой (здесь можно попробовать воспользоваться регулярками), т.е. выставить все признаки (0 или 1) для всех столбцов обучающей выборки. построить модель для предсказаний (классификации) - выбрать один из следующих вариантов:
воспользоваться одним из готовых классификаторов построить нейронную сеть (можно попробовать LSTM или просто сетку с несколькими полносвязными (dense / fully-connected) слоями)

Комментариев нет:

Отправить комментарий