Я пытаюсь извлечь данные из PennTreeBank, Wall Street Journal corpus. Большинство из них уже имеют деревья синтаксического анализа, но некоторые данные только помечены. т. Е. Файлы wsj_DDXX.mrg и wsj_DDXX.pos.Стэнфордская НЛП - использование текстового или текстового текста для создания полного XML
Я хотел бы использовать уже обработанные деревья и помеченные данные в этих файлах, чтобы не использовать синтаксический анализатор и тегеры в CoreNLP, но мне по-прежнему нужен формат выходного файла, который дает CoreNLP; а именно XML-файл, содержащий зависимости, сущность ядра и дерево разбора и помеченные данные.
Я прочитал многие из java-документов, но не могу понять, как это сделать, как я описал.
Для POS я попытался использовать LexicalizedParser, и он позволяет мне использовать теги, но я могу генерировать только XML-файл с некоторой информацией, которую я хочу; нет возможности для выделения или генерации деревьев синтаксического анализа. Чтобы заставить его правильно генерировать субоптимальные файлы XML здесь, мне пришлось написать скрипт, чтобы избавиться от всех скобок внутри файлов. Это команда я использую:
Java -cp "*" edu.stanford.nlp.parser.lexparser.LexicalizedParser -outputFormat typedDependenciesCollapsed, wordsAndTags -outputFilesExtension XML -outputFormatOptions XML -writeOutputFiles -outputFilesDirectory мой \ реж -tokenized -tagSeparator/-tokenizerFactory edu.stanford.nlp.process.WhitespaceTokenizer -tokenizerMethod newCoreLabelTokenizerFactory Edu/Стэнфорд/NLP/модели/lexparser/englishPCFG.ser.gz мои \ WSJ \ файлы \ реж
Я также не могу сгенерируйте данные, которые я хотел бы иметь для данных WSJ, которые уже имеют деревья. Я попытался использовать то, что сказано here, и я посмотрел на соответствующие Javadocs. Я использовал команду, аналогичную описанной. Но мне пришлось написать программу python для извлечения данных stdout, полученных в результате анализа каждого файла и записи его в новый файл. Эти результирующие данные представляют собой только текстовый файл с зависимостями и не находятся в желаемой нотации XML.
Подводя итог, я хотел бы использовать данные POS и дерева из этих файлов PTB, чтобы генерировать синтаксис CoreNLP, соответствующий тому, что произойдет, если бы я использовал CoreNLP в обычном текстовом файле. Команда псевдо будет выглядеть так:
Java -cp "*" edu.stanford.nlp.pipeline.CoreNLP -useTreeFile wsj_DDXX.mrg
и
ява -cp "*" edu.stanford.nlp.pipeline.CoreNLP -usePOSFile wsj_DDXX.pos
Редактировать: фиксированная ссылка.