Подтвердить что ты не робот

Алгоритмы распознавания имен объектов

Я хотел бы использовать именованное распознавание объектов (NER) для поиска адекватных тегов для текстов в базе данных.

Я знаю, что есть статья Википедии об этом и множество других страниц, описывающих NER, я бы хотел услышать от вас что-то об этом:

  • Какие впечатления вы сделали с помощью различных алгоритмов?
  • Какой алгоритм вы бы порекомендовали?
  • Какой алгоритм проще всего реализовать (PHP/Python)?
  • Как работают алгоритмы? Требуется ли ручное обучение?

Пример:

"В прошлом году я был в Лондоне, где я видел Барака Обаму". = > Тэги: Лондон, Барак Обама

Надеюсь, ты поможешь мне. Большое вам спасибо заранее!

4b9b3361

Ответ 1

Чтобы начать с проверки http://www.nltk.org/, если вы планируете работать с python, хотя, насколько я знаю, код не является "промышленной силой" "но это поможет вам начать.

Ознакомьтесь с разделом 7.5 из http://nltk.googlecode.com/svn/trunk/doc/book/ch07.html, но для понимания алгоритмов, которые вам, вероятно, придется прочитать во многих книгах.

Также проверьте это http://nlp.stanford.edu/software/CRF-NER.shtml. Это сделано с помощью java,

NER - непростая тема, и, вероятно, никто не скажет вам, что "это лучший алгоритм", большинство из них имеют свои про/минусы.

Мои 0,05 доллара.

Приветствия,

Ответ 2

Это зависит от того, хотите ли вы:

Чтобы узнать о NER: отличное место для начала - NLTK и связанный book.

Чтобы реализовать лучшее решение: Здесь вам нужно будет найти современное состояние. Взгляните на публикации в TREC. Более специализированная встреча Biocreative (хороший пример NER применяется к узкому полю).

Чтобы реализовать самое простое решение: в этом случае вы просто хотите просто выполнить тегирование и вытащить слова, помеченные как существительные. Вы можете использовать теггер из nltk или даже просто посмотреть каждое слово в PyWordnet и пометить его самым распространенным словарем.


Большинство алгоритмов требуют какой-то подготовки и лучше всего работают, когда они обучаются на контенте, который представляет собой то, что вы собираетесь просить.

Ответ 3

Там есть несколько инструментов и API.

Там есть инструмент, созданный поверх DBPedia под названием DBPedia Spotlight (https://github.com/dbpedia-spotlight/dbpedia-spotlight/wiki). Вы можете использовать их интерфейс REST или загрузить и установить собственный сервер. Самое замечательное в том, что он отображает объекты в их присутствие в DBPedia, что означает, что вы можете извлекать интересные связанные данные.

AlchemyAPI (www.alchemyapi.com) имеет API, который будет делать это через REST, а также использует модель freemium.

Я думаю, что большинство методов полагаются на немного NLP для поиска сущностей, а затем используют базовую базу данных, такую ​​как Wikipedia, DBPedia, Freebase и т.д., чтобы делать неоднозначность и релевантность (например, пытаясь решить, относится ли статья, в которой упоминается Apple, о плоде или компании... мы бы выбрали компанию, если в эту статью включены другие компании, которые связаны с компанией Apple).

Ответ 5

Можно использовать искусственные нейронные сети для выполнения распознавания имени.

Ниже приведена реализация двунаправленной сети LSTM + CRF в TensorFlow (python) для выполнения распознавания с именем: https://github.com/Franck-Dernoncourt/NeuroNER (работает в Linux/Mac/Windows).

Он предоставляет самые современные результаты (или близко к ним) на нескольких наборах данных распознавания имен. Как отмечает Але, каждый алгоритм распознавания имен и сущностей имеет свои собственные недостатки и недостатки.

Архитектура ANN:

введите описание изображения здесь

Как видно на TensorBoard:

введите описание изображения здесь

Ответ 6

Я действительно не знаю о NER, но, судя по этому примеру, вы можете сделать алгоритм, который искал заглавные буквы в словах или что-то в этом роде. Для этого я бы рекомендовал regex как наиболее простое решение для реализации, если вы думаете о маленьком.

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

мои 5 центов.