Улучшение именования объектов с помощью специального файла / кода в NLTK - PullRequest
2 голосов
/ 23 сентября 2010

Мы работали с библиотекой NLTK в недавнем проекте, где мы в основном заинтересованы в названной части сущностей.

В целом мы получаем хорошие результаты, используя класс NEChunkParser. Тем не менее, мы пытаемся найти способ предоставить наши собственные условия парсер, без успеха.

Например, у нас есть тестовый документ, в котором мое имя (Шей) появляется в несколько мест. Библиотека находит меня как GPE, в то время как я бы хотел найти его я как ЧЕЛОВЕК ...

Есть ли способ предоставить какой-то нестандартный файл / код, так что синтаксический анализатор сможет интерпретировать именованный объект как я хочешь этого?

Спасибо!

1 Ответ

3 голосов
/ 27 сентября 2010

Простое решение состоит в том, чтобы скомпилировать список сущностей, которые, как вы знаете, неправильно классифицированы, затем отфильтровать вывод NEChunkParser в модуле постобработки и заменить теги этих сущностей на те, которые вы хотите иметь.* Правильное решение - переобучить тегер NE.Если вы посмотрите на исходный код для NLTK, то увидите, что NEChunkParser основан на классификаторе MaxEnt, то есть на алгоритме машинного обучения.Вам нужно будет скомпилировать и аннотировать корпус (набор данных), представляющий тип данных, с которыми вы хотите работать, а затем переобучить теговый элемент NE в этом корпусе.(Это сложно, отнимает много времени и потенциально дорого.)

...