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

NLTK Именованное распознавание объектов с пользовательскими данными

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

  • Могу ли я использовать свои собственные данные для обучения именному распознавателю Entity Recognizer в NLTK?
  • Если я могу тренироваться с использованием моих собственных данных, это файл named_entity.py, который нужно изменить?
  • Должен ли формат входного файла быть в IOB, например. Eric NNP B-PERSON?
  • Есть ли какие-либо ресурсы - помимо nLTK cookbook и nlp с питоном, который я могу использовать?

Я бы очень признателен за помощь в этом отношении

4b9b3361

Ответ 1

Вы намерены использовать NLTK/Python? Я столкнулся с теми же проблемами, что и вы, и имел гораздо лучшие результаты, используя распознаватель именной сущности Stanford: http://nlp.stanford.edu/software/CRF-NER.shtml. Процесс обучения классификатора с использованием ваших собственных данных очень хорошо документирован в FAQ.

Если вам действительно нужно использовать NLTK, я бы попал в список рассылки для некоторых советов от других пользователей: http://groups.google.com/group/nltk-users.

Надеюсь, это поможет!

Ответ 2

Вы можете легко использовать Stanford NER вместе с nltk. Питон script похож на

from nltk.tag.stanford import NERTagger
import os
java_path = "/Java/jdk1.8.0_45/bin/java.exe"
os.environ['JAVAHOME'] = java_path
st = NERTagger('../ner-model.ser.gz','../stanford-ner.jar')
tagging = st.tag(text.split())   

Чтобы обучить свои собственные данные и создать модель, вы можете обратиться к первому вопросу о часто задаваемых вопросах Стэнфордского НЭР.

Ссылка http://nlp.stanford.edu/software/crf-faq.shtml

Ответ 3

У меня также была эта проблема, но мне удалось ее решить. Вы можете использовать свои собственные данные обучения. Я документировал основные требования/шаги для этого в моем репозитории github.

Я использовал NLTK-trainer, поэтому вы должны получить данные обучения в правильном формате (токен NNP B-tag), и запустите обучение script. Для получения дополнительной информации просмотрите мой репозиторий.