单词特征标签

时间:2010-04-10 16:03:48

标签: search tags dns artificial-intelligence neural-network

我想为我的AI课做一个谜语AI聊天机器人。 所以我想到聊天机器人的输入是:

像: “它是蓝色的,它是向上的,但它不是天花板”

翻译:

<Object X>
    <blue>
    <up>
    <!ceiling>
</Object X>

(答案:天空?)

因此,输入是一组特征(现有的\不存在于对象中),输出是匹配的,最可能的对象。

域名将限制为多个对象,我可以自己输入所有属性,但我在想:

我怎样才能以编程方式为单词构建特征数据库? 有这样的数据库吗?我怎么能标记一个单词,我怎么能以编程方式找到它的所有属性?我正在考虑抓取维基百科或某个论坛,但我看不到它构建任何可靠的文字标签数据库。

关于如何实现这样的事情的任何想法?关于这个主题的一些文献的任何想法?

谢谢

2 个答案:

答案 0 :(得分:2)

Cyc项目的目标非常相似:我认为它包含用于执行AI的推理引擎,以及关于常识知识的事实数据库(如天空的颜色)。

答案 1 :(得分:2)

这听起来像是一个基本的分类问题。你基本上是在问;给定N个特征(颜色=蓝色,位置=向上等),哪个M分类最有可能?有许多算法可以实现这一点(朴素贝叶斯,最大熵,支持向量机),但你必须研究哪个是最准确和最容易实现的。最大的挑战通常是获取准确的培训数据,但如果您愿意将其限制为手动输入的示例列表,则应简化您的实施。

您的示例表明,无论您选择何种算法,都必须支持稀疏数据。换句话说,如果您已经在300个功能上训练了系统,则不需要输入所有300个功能以获得答案。它还会使您的训练和测试文件变小,因为您将省略与某些对象无关的功能。 e.g。

sky | color:blue,location:up
tree | has_bark:true,has_leaves:true,is_an_organism=true
cat | has_fur:true,eats_mice:true,is_an_animal=true,is_an_organism=true

它可能不是非常有用,因为它是专有的,但是与你想要完成的商业应用程序类似的是网站20q.net,尽管系统会询问问题而不是用户。有趣的是,它是根据用户输入进行“在线”训练的。

维基百科肯定有很多数据,但您可能会发现为您的程序提取数据非常困难。 Cyc的数据更加标准化,但其API具有巨大的学习曲线。另一种选择是语义词典项目Wordnet。它具有几乎所有编程语言的相当直观的API,以及数千个单词的广泛上位词/下位词模型(例如,猫是一种猫/哺乳动物/动物/有机体/物体)。