如何列出句子中所有表示动物的英语术语?

How do I list out all English terms in a sentence that indicate an animal?

例如,在句子“当一群失去母亲的小鸭子鱼贯而入谷仓时,两匹马刚刚躺下,有气无力地吱吱叫着,从一边到另一边徘徊找个不被踩到的地方。",有两种动物:马和鸭。

我一直在寻找动物名称的词汇表,但找不到足够完整的任何内容。 WordNet 数据库看起来很有前途,但可能有点矫枉过正,也不够广泛。

WordNet 是一个出色的工具,我认为您的方向是正确的。您要查找的关系是 hyponym/hypernym 关系:名词 horse 作为 animal[ 的下位词=40=],相反,animalhorse 的上位词。 WordNet 确实提供了数据来评估两个名词是否存在这种关系。

说到 WordNet,您可能会在 noun.animal 文件中找到所有动物。这可能会使您的特定问题变得更简单。

要从 ducklingduck,您需要浏览 WordNet 的 姐妹词 关系,它给出了相关词的集合。我不确定你是否会从中得到误报,但可能会有一些。 Duckduckling 也在 derivationally-related 关系中列出,但是 lion cub 不是。这可能是一个有争议的问题,因为 ducklingcub 在某些词义上都是动物。

但是,您必须标记词性,并且只考虑名词,否则当句子使用动词 to horse around 和 [=21 时,您会得到误报=]躲避(猛拉)。词性 (POS) 标记本身就是一个完整的问题,您可能想查看一些执行此操作的现有库。大多数成功使用统计方法,但结果非常稳健,尽管可能不是 100% 正确。

此外,您将不可避免地从名词同音词中得到其他类型的误报。例如,a horse 可能指的是一件体操器械,这显然不是动物。 Duck也可以指代一种面料。如果没有更深入的上下文,您将不可能解决这样的同音异义问题。但是如果没有完全理解文本的完整通用智能,这个问题就不是完全可以解决的。