我想添加新标记的单词(在我们的区域中使用的本地单词)并创建一个新模型。我从命令行创建了一个.prop文件但是如何创建.tagger文件呢?
当我尝试创建斯坦福网站上提到的此类文件时,它会显示错误,如
“未指定型号”
什么是-model参数,是语料库吗?如何将新标记的单词添加到其中?
我如何训练一个标记器呢?
您需要从包含选项的.props文件开始 要使用的标记器。我们用于创建示例标记的.props文件 包含在models目录中;你可以从任何一个开始 似乎最接近您要标记的语言。
例如,要训练新的英语标记,请从left3words开始 标记器道具文件。训练除了西方语言的标记器 英文,您可以考虑德语或法语的道具文件 标记,包含在完整的发行版中。对于语言 使用不同的字符集,你可以从中文或 阿拉伯道具档案。或者您可以使用-genprops选项 MaxentTagger,它将编写一个示例属性文件 文档,供您修改。它将它写入stdout,所以你会 想通过重定向输出(通常使用>)将其保存到某个文件。 该行开头的#会使评论成为一个评论,所以你需要 删除您希望指定的#之前的属性。
答案 0 :(得分:4)
以下是两个可以帮助您的链接,描述了如何创建(训练)标记器的分步说明:
请注意,在.conf文件中,您应该指向您的树库(即,使用POS标记和依赖关系以依赖关系树格式解析的真实世界句子)。在同一行中,您应指定格式:
就我而言,我使用了 CoNLL文件,这是一种TAB-SEPARATED-VALUES格式(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
答案 1 :(得分:1)
model
属性指定要保存构建模型的文件。您可以提供任何有效路径,例如mymodel.tagger
。
您可以在测试时使用此相同的属性文件,然后MaxentTagger
将从指定的模型文件加载而不是保存到它。
要明确:您的训练语料库应该提供属性trainFile
。有关示例,请参阅Stanford Tagger附带的tagger属性文件。