2014-03-06 35 views
0

如果我已经知道一些单词的POS信息。如何在斯坦福大学NLP POS tagger执行之前提供一些POS信息?

如: “我是ST316” 我知道ST316(我的ID)是一个专有名词(NR)。在句子 如何让tagger使用st316是NR的信息,然后决定其他单词(我)的POS信息。

就像,

输入:我ST316/NR。

输出:I/PN AM/VC ST316/NR ./PU

帮助me.Really的感谢!

回答

0

我能想到的2种选择:

  1. (容易)让恶搞做它的魔力,然后覆盖其输出。如果您知道st316必须标记为X,并且斯坦福大学未能如此标记,请将st316的标记更改为X.此方法的缺点是标记器无法使用该信息更好地标记句子的其余部分。
  2. (更难)Retrain PoS标记器,添加您的额外信息到其训练数据。通过这种方式,它实际上会从您提供的信息中学习,并且能够使用它。缺点是你需要获得一些训练数据和(取决于你得到多少数据),训练新模型可能需要一段时间。

如果您使用选项2去,你需要按如下格式的数据:

 
An_DT avocet_NN is_VBZ a_DT small_JJ ,_, cute_JJ bird_NN ._. 
I_PRP am_VBP st316_NNP ._. 
I_PRP am_VBP st316_NNP ._. 
I_PRP am_VBP st316_NNP ._. 
I_PRP am_VBP st316_NNP ._. 
I_PRP am_VBP st316_NNP ._. 

第一行是从斯坦福FAQ拍摄。其余的是你的额外知识。注意重复一个额外的句子。这是为了将伪计数添加到该观察值。非正式地说,如果在训练数据中只包含st316_NNP一次,那么标记器会认为它是噪声/错误并忽略它。重复就像是说“是的,我确定,我知道我在做什么,从这些数据中学习”。根据您拥有的数据量,您需要5到50次重复,以确保标记器正确学习。

+0

我真正想要的是实现选项2的一种简单方法。但是在搜索和搜索之后,似乎没有办法。我会尝试重新训练tagger.Anyway,谢谢! – st316

相关问题