Чтобы проверить, является ли строка слов предложением

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

Например:

1. John is a heart patient.
2. Dr. Green, Rob is the referring doctor for the patient.
3. Jacob Thomas, M.D. is the ordering provider

4. Xray Shoulder PA, Oblique, TRUE Lateral, 18° FOSSA LAT LT; Status: Complete;

Предложение 1,2, объявление 3 имеет какое-то значение, но предложение 4 не имеет никакого значения, поэтому я хочу его исключить.

Могу ли я узнать, как это можно сделать?

2 ответа

Очень сложно быть на 100% уверенным, но давайте попробуем.

Я могу использовать Amazon Comprehend - обработку естественного языка и текстовую аналитику и создавать собственные метрики над предложениями. например:

Джон больной сердцем. Амазон даст вам: "." Пунктуация, "определитель", "существительное" от сердца, "глагол", "собственно существительное" Джона, существительное "пациент". 1 пунктуация, 1 определитель, 2 существительное, 1 глагол, 1 собственное существительное. Вероятно, у вас будет существительное и верд, чтобы иметь правильное предложение.

В последнем предложении у нас есть: 3 пунктуация, 1 цифра, 11 собственное существительное. У вас нет действия (глагол), вероятно, это предложение не является действительным.

Эта задача кажется очень сложной; однако, предполагая, что у вас есть данные обучения, вы, вероятно, можете использовать XGBoost, который использует расширенные деревья решений (и случайные леса). Вы должны научить его отвечать положительным или отрицательным (да, имеет смысл, или нет).

Затем вам нужно будет придумать функции. Вы можете использовать функции из тегов части речи (POS) NLTK. Количество вхождений каждого из типов тегов в предложении будет хорошей первой моделью. Это может установить ваш критерий того, насколько хорошо "простое" решение.

Вы также можете изучить полезность модели (слово / предложение) -вектор, например gensim, для создания элементов для вашей модели.

Сначала я посмотрю, что происходит только с количеством вхождений каждого тега POS и XGBOOST. Обучите и протестируйте модель и посмотрите, насколько она хороша. Затем обратите внимание на добавление других функций, таких как положение или использование doc-2-vec в качестве входных данных для XGBoost.

Последним средством будет нейронная сеть (которая будет рекомендована только в случае неудачи предыдущих идей, когда у вас много и много данных). Если бы вы использовали нейронную сеть, я думаю, что LSTM, вероятно, будет полезен.

Вам придется экспериментировать, и объем данных имеет значение, но вы можете начать с простого, а затем протестировать и добавить к своей модели итеративно.

Другие вопросы по тегам