Как создать собственный учебный корпус для 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