我正在研究一个有关波兰语依赖解析的项目。我们正在尝试对来自波兰语言的数据进行Stanford神经网络依赖性解析器的训练(使用.conllu格式的Universal Dependencies树库)。数据已经过标记和注释,因此我们既没有训练标记器,也没有训练CORE NLP提供的解析器。到目前为止,通过从命令行运行解析器,我们已经可以使用pl_lfg-ud Treebank在标准依赖项中取得一些成功。但是我们也想训练解析器来重现增强的通用依赖关系,这也体现在树库中。到目前为止,我还无法在 文档,以及有关NNDEP和CORE NLP的常见问题解答,尽管据我所知,使用Stanford NLP解析器还是可以的。是增强型依赖项解析仅适用于英语(或其他官方支持的语言)的情况,还是我只是做错了什么?
如果有任何线索,我将不胜感激!
答案 0 :(得分:1)
此处提供有关如何训练模型的信息:
https://stanfordnlp.github.io/CoreNLP/depparse.html
示例命令:
java -Xmx12g edu.stanford.nlp.parser.nndep.DependencyParser -trainFile fr-ud-train.conllu -devFile fr-ud-dev.conllu -model new-french-UD-model.txt.gz -embedFile wiki.fr.vec -embeddingSize 300 -tlp edu.stanford.nlp.trees.international.french.FrenchTreebankLanguagePack -cPOS
您还需要训练词性模型:
https://nlp.stanford.edu/software/pos-tagger-faq.html
https://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/tagger/maxent/MaxentTagger.html
示例命令:
java -mx1g edu.stanford.nlp.tagger.maxent.MaxentTagger -props myPropertiesFile.props
您可以在文档中找到合适的培训文件样式。
示例文件:
## tagger training invoked at Sun Sep 23 19:24:37 PST 2018 with arguments:
model = english-left3words-distsim.tagger
arch = left3words,naacl2003unknowns,wordshapes(-1,1),distsim(/u/nlp/data/pos_tags_are_useless/egw4-reut.512.clusters,-1,1),distsimconjunction(/u/nlp/data/pos_tags_are_useless/egw4-reut.512.clusters,-1,1)
wordFunction = edu.stanford.nlp.process.AmericanizeFunction
trainFile = /path/to/training-data
closedClassTags =
closedClassTagThreshold = 40
curWordMinFeatureThresh = 2
debug = false
debugPrefix =
tagSeparator = _
encoding = UTF-8
iterations = 100
lang = english
learnClosedClassTags = false
minFeatureThresh = 2
openClassTags =
rareWordMinFeatureThresh = 10
rareWordThresh = 5
search = owlqn
sgml = false
sigmaSquared = 0.0
regL1 = 0.75
tagInside =
tokenize = true
tokenizerFactory =
tokenizerOptions =
verbose = false
verboseResults = true
veryCommonWordThresh = 250
xmlInput =
outputFile =
outputFormat = slashTags
outputFormatOptions =
nthreads = 1
此处有示例培训属性文件的详尽列表:
https://github.com/stanfordnlp/CoreNLP/tree/master/scripts/pos-tagger
如果使用Java管道,则需要编写一个标记器或提供预先标记的文本。
您可能对我们的Python项目感兴趣,该项目具有波兰语模型,用于标记化,句子拆分,词形化和依赖项解析。您也可以训练自己的模型: