2014-11-23 38 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

相關問題