如何在Stanford NLP POS tagger执行之前提供一些POS信息?

时间:2014-03-06 02:05:38

标签: nlp stanford-nlp pos-tagger

如果我已经知道一些单词的POS信息。

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

就像,

输入:我是st316 / NR。

输出: I / PN am / VC st316 / NR ./PU

帮助我。真的谢谢!

1 个答案:

答案 0 :(得分:0)

我可以想到两个选项:

  1. (简单)让标记器发挥其魔力,然后覆盖其输出。如果您知道st316必须标记为X而Stanford未能将其标记为此类,请将st316的标记更改为X.此方法的缺点是标记器无法使用该信息为了更好地标记句子的其余部分。
  2. (更难)Retrain PoS标记器,将您的额外信息添加到其训练数据中。这样,它实际上将从您提供的信息中学习,并能够使用它。缺点是你需要获得一些训练数据并且(取决于你得到多少数据)训练新模型可能需要一段时间。
  3. 如果选择选项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 ._.
    

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