我想弄清楚如何訓練斯坦福德詞彙化詞庫
(edu.stanford.nlp.parser.lexparser.LexicalizedParser)將新名詞加入到詞典中。如何訓練斯坦福德LexicalizedParser識別新單詞作爲名詞?
起初我的目標是採取一個現有的模型,並稍微調整它,而不是從一個廣泛的訓練實例中創建一個全新的模型 。
回答這個問題表明這是不可能> How can I add more tagged words to the Stanford POS-Tagger's trained models?
希望有人在那裏可以把我在正確的軌道上,以如何做到這一點。
作爲我想做的一個具體例子,說我有'researchgate'這個詞,當我解析 句子時,我想把它作爲名詞來對待。目前,'研究門'被視爲不同的詞類,取決於它的位置..但我希望它被識別爲'NN'(名詞)。
例子...
,而不是這樣的:
(NP
(NP (JJ recent) (NN activity))
(PP (IN in)
(NP (PRP$ your) (JJ researchgate) (NNS topics)))))
我想這一點:
(NP
(NP (JJ recent) (NN activity))
(PP (IN in)
(NP (PRP$ your) (NN researchgate) (NNS topics)))))
,而是這個:
(ROOT
(FRAG
(NP (NN subscription))
(S
(VP (TO to)
(VP (VB researchgate))))))
我想這一點:
(ROOT
(NP
(NP (NN subscription))
(PP (TO to)
(NP (NN researchgate)))))
我目前採用這種模式:模式/ EDU /斯坦福/ NLP /模型/ lexparser/englishPCFG.ser.gz
我試着這樣做>
java -cp stanford-parser.jar
edu.stanford.nlp.parser.lexparser.LexicalizedParser -train /tmp/train.txt
用的contensts /tmp/train.txt如下>
(NP
(NP (JJ recent) (NN activity))
(PP (IN in)
(NP (PRP$ your) (JJ researchgate) (NNS topics)))))
我有一幫有前途的輸出,但後來得到這個錯誤>
Error. Can't parse test sentence: [This, is, just, a, test, .]
很顯然,我需要提供更多的例子,而不僅僅是我在/tmp/train.txt中的例子。
望着文件似乎是在 LexicalizedParser一個很有前途的方法,我考慮嘗試...>
public static LexicalizedParser getParserFromTreebank(Treebank trainTreebank,
Treebank secondaryTrainTreebank,
double weight,
GrammarCompactor compactor,
Options op,
Treebank tuneTreebank,
List<List<TaggedWord>> extraTaggedWords)
我很猶豫,跳和嘗試這個,因爲它似乎棘手得到選項權。 的DOCO說:
選項,必須在訓練和測試(解析)時間 順序相同的解析器解析器正常工作
,所以我可能需要如何提取使用的選項的指導爲 edu/stanford/nlp/models/lexparser/englishPCFG.ser。gz也許它是
edu.stanford.nlp.parser.lexparser.EnglishTreebankParserParams ?
此外,也許我想添加我作爲extraTaggedWords之一的研究門?
我感覺我在正確的軌道上,但希望得到一些建議,然後下降 進入老鼠洞。
在此先感謝!
chris