如何在给定引理和标记的情况下反转词形还原过程?

How to inverse lemmatization process given a lemma and a token?

一般来说,在自然语言处理中,我们希望得到一个token的引理。

例如,我们可以使用 wordnet 词形还原将 'eaten' 映射到 'eat'。

python有没有什么工具可以把引理反演成某种形式?

例如,我们将 'go' 映射到 'gone' 给定的目标形式 'eaten'。

PS:有人提到我们必须存储这样的映射。

将基本形式(例如引理)转换为适合情况的形式称为 realization(或 "surface realization")。来自维基百科的示例:

NPPhraseSpec subject = nlgFactory.createNounPhrase("the", "woman");
subject.setPlural(true);
SPhraseSpec sentence = nlgFactory.createClause(subject, "smoke");
sentence.setFeature(Feature.NEGATED, true);
System.out.println(realiser.realiseSentence(sentence));
// output: "The women do not smoke."

这方面的库不像词形还原器那样经常使用,这通常意味着您的选择更少,而且不太可能找到一个完善的库。维基百科示例在 Java 中,因为支持它的最流行的库是 SimpleNLG

快速搜索发现 pynlg, though it doesn't seem actively maintained. Alternately you can use SimpleNLG via an HTTP JSON interface provided by the Python library nlgserv