通常的共指解决方案以下列方式工作:
本发明提供
The man likes math. He really does.
它指出了
he
指的是
the man.
有很多工具可以做到这一点。
但是,有没有办法向后做?
例如,
给定的
The man likes math. The man really does.
我想代词解决方案“向后”,
这样我就得到了像
这样的输出The man likes math. He really does.
我的输入文本大多是3到10个句子,我正在使用python。
答案 0 :(得分:8)
这可能不是一个真正满意的答案,但我认为答案是在任何地方都没有这样的功能,尽管你可以自己编码而不会有太多困难。概述我如何使用CoreNLP:
仍然运行coref。这将告诉你“男人”和“男人”是共同的,所以你可以用代词替换第二个。
从CoreNLP运行gender
注释器。这是一个记录不完整,甚至更不广告的注释器,试图将性别附加到一个句子中的标记。
以某种方式弄清楚复数。大多数情况下你可以使用词性标记:复数名词得到标签NNS或NNPS,但是有一些复杂因素,所以你可能还想考虑(1)前提中连词的存在; (2)一个词与其文本不同的引理; (3)特别是结合2,以's'或'es'结尾的单词 - 这可以区分去除复数的词义化与去除时态的词义化等等。
这足以找出正确的代名词。现在只需要将句子整理并重新组合起来。如果你在CoreNLP中这样做会有点痛苦 - 代码只是没有设置来改变一个句子的文本 - 但在最坏的情况下你总是可以重新注释一个新的表面形式。
希望这有点帮助!