例如,在“两匹马刚躺下时,一群失去母亲的小鸭鱼群成群地跑进谷仓,虚弱地叽叽喳喳地四处游荡,寻找不会被踩到的地方”。 .”,有两种动物:马和鸭。
我正在寻找动物名称的词汇表,但无法获得足够完整的任何内容。 WordNet 数据库看起来很有希望,但可能过于矫枉过正,也不够广泛。
最佳答案
WordNet 是一个出色的工具,我认为您走在正确的轨道上。您要查找的关系是下位词/上位词关系:名词马作为动物的下位词,相反,动物是马的上位词。 WordNet 确实提供了数据来评估两个名词是否处于这种关系中。
说到 WordNet,您可能会在 noun.animal
文件中找到所有动物。这可能会使您的特定问题更简单。
要从小鸭变成鸭子,您需要浏览 WordNet 的姊妹词关系,它提供了相关词的集合。我不确定你是否会从中得到误报,但可能会有一些。鸭子和小鸭子也列在派生相关的关系中,但狮子和幼崽不是。这可能是一个有争议的问题,因为从某种意义上说,小鸭和幼崽都是动物。
但是,您必须标记词性,并且只考虑名词,否则当句子使用动词来绕行和躲避(jerk down)时,您会得到误报。词性 (POS) 标记本身就是一个完整的问题,您可能想查看一些现有的库来做这件事。大多数成功使用统计方法,但结果非常可靠,虽然可能不是 100% 正确。
此外,您将不可避免地从名词同义词中获得其他类型的误报。例如,一匹马可能指的是一件体操器材,这显然不是动物。鸭子也可以指一种织物。如果没有更深层次的上下文,您将不可能解决这样的同音异义词。但是如果没有完全理解文本的完整通用智能,这个问题就不是完全可以解决的。
关于nlp - 如何在句子中列出所有表示动物的英语术语?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28072775/