2013-12-19 42 views
-4

假设我有下面的单词列表
香蕉,苹果,桔子,树在这个单子里的单词是树。可以给任何一个想法写一个算法。查找英文单词列表中的奇数单词的算法?

+0

你必须将其与字典/数据库/树进行比较,看看你是否能找到你的匹配。 –

+0

你的问题太广泛了。你需要知道这些单词的上下文,这是NLP中的一个问题,所以我不认为对于你正在呈现的通用案例有一个简单的算法。 – Lopina

+0

我不认为这个问题太宽泛,在本体和语义查询领域是一个相当普遍的问题。 – Draugr

回答

0

看看本体和推理算法。如果你有一个本体论模拟知识的特定领域,你将有一个信息来源,可以让你区分单词,例如通过使用部分顺序和关系,然后检查这些词是否在部分顺序的相同“子分支”中。你甚至可以定义一个度量来获得“亲密度”或类似的东西。

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

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)。然后查询橙色,苹果,香蕉,甜点有两个可能的答案 - 甜点,这是不是水果或香蕉,这是不与手机连接。

+0

雅我有这个想法...坚持得到数据库 – user3118710

0

免责声明:这不是一个容易做的任务,因此,我的建议的解决方案将是高层次的,包括旨在解决您的问题的一部分学术论文引用:


你可以尝试语义关联方法:每两个词对之间

  • 查找关联,过滤掉是最相关的所有其他人的话。例如,可以使用semantic sort在监督学习中完成语义相关性。

另一种替代方法是对每个单词的进行建模。

  • 每个单词将由代表其含义的向量表示。 此向量可以获得例如使用提到这个词的维基百科文章 。
    这种方法的更多信息可以在Markovitch等Wikipedia-based Semantic Interpretation for Natural Language Processing
  • 被 找到你代表你的数据向量之后,它发现 这至少是相似的其他词的问题。可以使用 supervised learning来完成,或者其他选择是选择离所有向量的中值最远的点 。

还有一个可能的解决方案是使用WordNet


注意,所有的方法都是启发式,我会尝试,并预期失败某些情况下,但我相信会起到很好的大部分案件。

4

关于tree是什么使它变得奇怪?为什么不是banana(因为它是一种药草,其他树是树,也是因为它是列表中唯一不以'e'结尾的)。或者为什么不orange(因为它是一种颜色以及植物,其他植物只是植物)。

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

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