Как создать собственный учебный корпус для stanford tagger?

Мне приходится анализировать неформальный английский текст с большим количеством коротких рук и местным жаргоном. Поэтому я думал о создании модели для тэг-стэнфорда.

Как создать собственный набор помеченных корпусов для тестера Stanford для обучения?

Каков синтаксис корпуса и как долго должен быть мой корпус для достижения желаемой производительности?

Ответ 1

Чтобы обучить маркер PoS, см. этот список рассылки, который также включен в JavaDocs для класса MaxentTagger.

javadocs для edu.stanford.nlp.tagger.maxent.Train class определяет формат обучения:

Учебный файл должен находиться в следующий формат: одно слово и один тег на строку, разделенную пробелом или Вкладка. Каждое предложение должно заканчиваться EOS слово-тэг. (На самом деле, я не совершенно уверен, что это все еще так, но это, вероятно, не повредит. -wmorgan)

Ответ 2

По сути, тексты, которые вы форматируете для учебного процесса, должны иметь один токен в каждой строке, а затем вкладку, за которой следует идентификатор. Идентификатор может быть чем-то вроде "LOC" для местоположения, "COR" для корпорации или "0" для токенов не-сущности. Например.

I     0
left     0
my     0
heart     0
in     0
Kansas     LOC
City     LOC
.     0

Когда наша команда обучала серию классификаторов, мы кормили каждый учебный файл, отформатированный таким образом примерно с 180 000 токенов, и мы видели чистое улучшение точности, но чистое уменьшение отзыва. (Следует отметить, что увеличение точности не было статистически значимым.) В случае, если это может быть полезно другим, я описал процесс, который мы использовали для обучения классификатора, а также значения p, r и f1 как обученных, так и дефолтных классификаторы здесь.

Ответ 3

Для Стэнфордского Парсера вы используете формат древесного дерева Penn и смотрите Стэнфордский FAQ о точных командах для использования. JavaDocs для класс LexicalizedParser также предоставляют соответствующие команды, в частности:

java -mx1500m edu.stanford.nlp.parser.lexparser.LexicalizedParser [-v] \
   -train trainFilesPath fileRange
   -saveToSerializedFile serializedGrammarFilename

Ответ 4

Я попробовал: java -mx1500m edu.stanford.nlp.parser.lexparser.LexicalizedParser [-v] \  -train trainFilesPath fileRange  -saveToSerializedFile serializedGrammarFilename

Но у меня была ошибка:

Ошибка: не удалось найти или загрузить основной класс edu.stanford.nlp.parser.lexparser.LexicalizedParser