我想弄清楚如何训练斯坦福德词汇化词库
(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