在英文单词列表中查找奇数单词的算法?

时间:2013-12-19 10:16:54

标签: algorithm

假设我有以下单词列表
香蕉,苹果,橘子,树在这个列表中,奇数词是树。任何人都可以写出算法。

4 个答案:

答案 0 :(得分:4)

tree是什么让它成为奇怪的?为什么不banana(因为它是一种药草,其他的是树木,也因为它是列表中唯一一个不以'e'结尾的药草)。或者为什么不orange(因为它是一种颜色和一种植物,其他只是植物)。

您需要定义您尝试过滤的标准:对于人类读者而言,某些事情可能是显而易见的,但计算机算法在不知道使人类明显的所有事实的情况下无法看到。或者至少有足够的事实来得出可靠的结论。

你基本上是在谈论一个大的knowledge-base,而不是一个简单的算法。

答案 1 :(得分:0)

查看本体和推理算法。如果您有一个对特定知识领域进行建模的本体论,那么您将拥有一个信息来源,可以让您区分单词,例如:通过使用部分顺序和关系,然后检查单词是否在部分顺序的相同“子分支”中。您甚至可以定义度量标准以获得“接近程度”或类似的程度。

编辑:还要检查SPARQ,这是一种查询此类结构的语言。并查看三重商店,允许按主题,谓词对象组合获取信息。这符合您的问题,因为它允许您通过谓词比较列表中的两个对象。

答案 2 :(得分:0)

您可以尝试创建一些分类词的数据库,如:

banana {food, plant, fruit, yellow}
apple {food, plant, fruit, computer, phone}
orange {food, plant, fruit, phone}
tree {plant}

然后你可以看到树以外的所有单词都属于水果类。这种检查很容易编码。 这里最大的问题是获取数据库 - 我不认为你想手动创建它并且不得不知道在哪里找到它。它也行不通。想象一下,我们添加

eclair{food, phone}

到这个数据库(手机,因为android 2.1被称为eclair)。然后查询橙色,苹果,香蕉,eclair有两个可能的答案 - eclair,这不是水果或香蕉,不与手机连接。

答案 3 :(得分:0)

免责声明:这不是一件容易上手的事情,因此我建议的解决方案将是高水平的,并包含旨在解决部分问题的学术论文的参考:


您可以尝试语义相关性方法:

  • 找出每两对单词之间的相关性,过滤掉与其他单词最不相关的单词。
  • 例如,在监督学习中,可以使用 semantic sort 来完成语义相关性。

另一种方法是对每个单词的语义表示进行建模。

  • 每个单词将由表示其含义的向量表示。 例如,可以使用维基百科文章获得该向量 提到这个词。有关此方法的更多信息可以是 发现于马尔科维奇等人Wikipedia-based Semantic Interpretation for Natural Language Processing
  • 将数据表示为向量后,这是一个查找问题 与其他人最不相似的词。它可以使用 supervised learning,或其他选择是选择要点 这距离所有载体的中位数最远。

另一种可能的解决方案是使用WordNet


请注意,所有方法都是我尝试的启发式方法,并且在某些情况下预计会失败,但我相信对大多数情况都会很好。