2014-11-23 92 views
1

我想添加新的标记词(在本地区使用的本地词)并创建新模型。我从命令行创建了一个.prop文件,但我如何创建一个.tagger文件?我如何在斯坦福Pos tagger中创建我自己的模型?

当我试图创建这样的文件在斯坦福大学网站上提到它显示像

错误“没有指定模型”

什么-model说法,是它的语料库?我怎样才能把我的新标记的单词添加进去?

那我该如何训练一个标记器呢?

Stanford site说:

你需要开始与包含了 恶搞使用选项.props文件。我们用于创建样本标记器的.props文件包含在模型目录中;您可以从任何一个 看起来最接近您要标记的语言开始。

例如,要训练一个新的英文tagger,请从左边的3个字词开始,然后在tagger props文件中输入 。要为 英语以外的西方语言培训标记器,可以考虑德语或法语 标记器的道具文件,它们包含在完整版中。对于使用不同字符集的语言 ,您可以从中文或 阿拉伯语道具文件开始。或者,您可以使用-genprops选项至 MaxentTagger,它将编写一个样本属性文件,其中包含 文档,供您修改。它将它写入标准输出,所以你要 想通过重定向输出(通常用>)将它保存到某个文件中。 行开头的#使事情发表评论,因此您需要 删除您希望指定的属性之前的#。

+0

这是唯一的描述我从斯坦福大学网站得到的,任何一个以前做过?帮帮我? – 2014-11-23 06:30:34

+0

目前尚不清楚你的问题在哪里。我们无法判断您是否真的拥有.props文件或者是否发现了需要解决的错误/问题。从斯坦福网站粘贴文本不会带来更多帮助;恰恰相反。 – Alfabravo 2014-11-23 06:42:15

+0

我想添加新的标记词(我们地区使用的本地词)并且想要创建新模型.i从命令行创建.prop文件,但我如何创建.tagger文件?当我试图创建斯坦福网站上提到的这样的文件时,它显示“没有指定模型”这样的错误 - 什么是模型参数,它是否是语料库?我怎样才能把我的新标记的单词添加进去? 。我认为现在的问题是清楚的? – 2014-11-24 08:26:17

回答

0

model属性指定将构建模型保存到的文件。您可以提供任何有效的路径,例如mymodel.tagger

您可以在测试时使用这个相同的属性文件,然后MaxentTagger将从指定的模型文件加载而不是保存到它。

要清楚:您的训练语料库应与财产trainFile一起提供。有关示例,请参阅Stanford标记器附带的标记器属性文件。

3

这里有两个链接,可以帮助你,描述了如何创建一步一步的指示(火车)您的恶搞:

  1. https://medium.com/@klintcho/training-a-swedish-pos-tagger-for-stanford-corenlp-546e954a8ee7
  2. http://www.florianboudin.org/wiki/doku.php?id=nlp_tools_related&DokuWiki=9d6b70b2ee818e600edc0359e3d7d1e8

请注意,在.conf文件中,您应该指向您的树库(即,使用POS标记和依赖关系以依赖树格式解析的真实世界句子)。同样在这一行,你应该指定格式:

  1. TEXT //表示通过文字分隔标记化文件
  2. TSV //表示TSV文件,如conll文件
  3. TREES //代表PTB格式

文件在我的情况,我用了一个CoNLL文件,WHI ch是一个TAB分隔值格式(TSV)。我必须承认,找不到明确的文档,不得不呼吁源代码。

我的配置:

model = portuguese.tagger 
arch = left3words,naacl2003unknowns,allwordshapes(-1,1) 
trainFile = format=TSV,wordColumn=1,tagColumn=4,C:\\path\\universal-dev.conll 
closedClassTagThreshold = 40 
curWordMinFeatureThresh = 2 
tagSeparator = _ 
encoding = utf-8 # that's because I based my config on spanish! 
iterations = 100 
lang = spanish 
learnClosedClassTags = false 
minFeatureThresh = 2 
openClassTags = 
rareWordMinFeatureThresh = 10 
rareWordThresh = 5 
search = qn 
sgml = false 
sigmaSquared = 0.0 
regL1 = 0.75 
tokenize = true 
tokenizerOptions = asciiQuotes 
verbose = false 
verboseResults = false 
veryCommonWordThresh = 250 
xmlInput = null 
outputFormat = slashTags 
nthreads = 16 
+0

我的错误。实际上,** trainfile **属性在[javadocs](http://www-nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/tagger/maxent/MaxentTagger.html)中有很好的解释。 – drizin 2015-04-05 23:51:47

+0

你会推荐多少次迭代?我目前已将它设置为100,但即时通讯正在对一个非常大的语料库(大约300万字)进行培训,并且它已运行了一个多小时,并且仅在迭代52 – 2016-12-06 03:21:30

相关问题