我正在尝试执行POS标记,并且我对任何基于Java的标记器(当前使用OpenNLP)都是开放的。有没有办法强迫"强迫"标记器将特定术语(或单词组合)识别为特定标记,并基于此对其他术语进行分类?进行排序,允许交互式纠正"标记。鉴于此类"纠正"互动,全面培训"这个新信息的实时标记器实际上并不实用。
所以,例如,考虑一下句子:"我从来没有在湖里游泳那么多的努力"。在这里,"游泳"是一个gerrund(名词,而不是动词),用户可能会说"在湖中游泳"是一个名词(在整个句子的上下文中)。如果他指定了这一点,那么如果标记符吐出" lake"作为一个单独的名词,因为"湖"已经是在湖中游泳的一部分"。
你们认为最好的方法是什么?是否有API调用,或者我只需要替换掉#34;在湖中游泳"在标记之前使用其他内容?但是,我并不认为后一种方法是可靠的,因为当使用已经告诉我它应该是什么时,我仍然依靠标记器正确标记它。感谢。
答案 0 :(得分:1)
如果你想在给定的固定POS标签周围更换其他标签,那么(据我所知)如果没有重新训练标签,就无法在CoreNLP中执行此操作。
但是,这听起来像你想要的实际上是一个标记器差异:"在湖中游泳"是名词短语而不是名词,无论你如何训练POS标签,它都会独立标记短语中的四个单词。你可以做的一件事是使用一个chunker(我认为OpenNLP有一个),或者一个解析器来提取这些名词短语;实际上,即使POS标记器搞砸了,解析也应该正确地猜测span是一个名词短语。