Поиск слов с указанными c критериями в тексте в python - PullRequest
1 голос
/ 02 мая 2020

У меня есть текст, и я хочу найти, например,

  • Все животные
  • Все превосходные степени

Есть ли "простой" способ сделать это ?

Я совершенно новичок в НЛП. Я даже не уверен, что это проблема НЛП. Или это звучит просто и на самом деле очень сложно?

Если у вас есть совет по добавлению / удалению тегов по этому вопросу, все отзывы приветствуются.

Ответы [ 2 ]

2 голосов
/ 02 мая 2020

Вам не нужно ничего сложного, чтобы сделать это. Это может быть достигнуто простым сопоставлением строк с несколькими оговорками:

  1. Животные - просто создайте список животных, которых вы хотите распознать. Вероятно, вы можете найти списки животных в Интернете, википедии или аналогичных. Сложность в том, что вам может понадобиться обрезать маркер множественного числа ( horse / horse - я предполагаю, что Engli sh здесь). Вы можете просто посмотреть каждое слово в списке, и если оно не там и заканчивается в -s , посмотрите еще раз с обрезанным окончательным s . Существуют нерегулярные множественные числа ( бык / волы ), но их очень мало.

  2. Превосходная степень - снова вы можете создать список. Превосходные формы обычно заканчиваются на -est , поэтому просто получите список слов Engli sh, выбросьте все, что не заканчивается на -est , а затем go через Остальные слова удаляют ложные срабатывания, такие как nest et c. Также будут некоторые нерегулярные. Как вы хотите относиться к комбинированным, таких как самых красивых ? В этом случае вы можете проверить на большинство с последующим прилагательным.

Для превосходной степени возможен второй, более сложный вариант, который использует деталь речевой метки Пометьте свой текст, а затем получите все слова, которые были помечены как превосходное прилагательное. В большинстве тегов Engli sh это будет J JS. Но с точки зрения точности тегеры не обязательно лучше списка слов, поэтому это зависит от того, сколько усилий вы хотите на них потратить.

Вы привели их в качестве примеров. Для многих других категорий слов существуют аналогичные способы простого их извлечения, не требуя сложных систем машинного обучения. Но не забывайте, что создание списков может быть не требующим высоких технологий решением, которое может быть самым быстрым и простым с максимальной точностью.

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

Да, есть много способов сделать это. Но я предпочел использовать Spacy. Вы должны обучить свою собственную модель Spacy, чтобы достичь этого Spacy имеет очень хорошую документацию о том, как это сделать. Вот ссылка на Spacy

...