西班牙POS标记与斯坦福NLP - 是否有可能得到人/数/性别?

时间:2015-04-10 07:53:32

标签: stanford-nlp pos-tagger

我正在使用Stanford NLP为西班牙语文本进行POS标记。我可以为每个单词获得一个POS标签,但我注意到我只获得了Ancora标签的前四个部分,并且它缺少人,数字和性别的最后三个部分。

  • 为什么Stanford NLP只使用简化版的Ancora标签?

  • 是否可以使用Stanford NLP获取整个标签?

这是我的代码(请原谅jruby ......):

props = java.util.Properties.new()
props.put("tokenize.language", "es")
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse")
props.put("ner.model", "edu/stanford/nlp/models/ner/spanish.ancora.distsim.s512.crf.ser.gz")
props.put("pos.model", "/stanford-postagger-full-2015-01-30/models/spanish-distsim.tagger")
props.put("parse.model", "edu/stanford/nlp/models/lexparser/spanishPCFG.ser.gz")

pipeline = StanfordCoreNLP.new(props)
annotation = Annotation.new("No sé qué estoy haciendo. Me pregunto si esto va a funcionar.")

我将此作为输出:

  

[Text = No CharacterOffsetBegin = 0 CharacterOffsetEnd = 2 PartOfSpeech = rn   Lemma = no NamedEntityTag = O] [Text =séCharacterOffsetBegin= 3   CharacterOffsetEnd = 5 PartOfSpeech = vmip000 Lemma =séNamedEntityTag= O]   [Text =quéCharacterOffsetBegin= 6 CharacterOffsetEnd = 9   PartOfSpeech = pt000000 Lemma =quéNamedEntityTag= O] [Text = estoy   CharacterOffsetBegin = 10 CharacterOffsetEnd = 15 PartOfSpeech = vmip000   Lemma = estoy NamedEntityTag = O] [Text = haciendo CharacterOffsetBegin = 16   CharacterOffsetEnd = 24 PartOfSpeech = vmg0000 Lemma = haciendo   NamedEntityTag = O] [Text =。 CharacterOffsetBegin = 24   CharacterOffsetEnd = 25 PartOfSpeech = fp Lemma =。 NamedEntityTag = O]

(我注意到这些引理也不正确,但这可能是一个单独问题的问题。没关系,我看到Stanford NLP不支持西班牙语的词形还原。)

2 个答案:

答案 0 :(得分:1)

  

为什么Stanford NLP只使用简化版的Ancora标签?

这是确保高标记准确性的实际决策。 (保留标签上的形态学信息会导致整个标记器遭受数据稀疏性的影响,并且不仅在形态学注释方面更糟糕,而且在整个方面都会更糟。)

  

是否可以使用Stanford NLP获取整个标签?

没有。不过,你可以用一个简单的基于规则的系统做到这一点,或者使用斯坦福分类器训练你自己的形态注释器。 (如果你选择任何一条路径,请随意分享你的代码!)

答案 1 :(得分:0)

如果仅使用Stanford POS标记器并不严格,您可能需要尝试使用POS和形态标记工具包RDRPOSTagger。 RDRPOSTagger支持40种不同语言(包括西班牙语)的预训练POS和形态标记。

对于西班牙语POS和形态标记,RDRPOSTagger使用IULA西班牙LSP树库进行了培训。然后,RDRPOSTagger在Java实现中获得 97.95%的标记准确度,标记速度为 200K字/秒 10K字/秒在Python实现中),使用Window7 OS 64位核心i5 2.50GHz CPU和6GB内存的计算机。