首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编程一个聊天机器人-理解语言

编程一个聊天机器人-理解语言
EN

Software Engineering用户
提问于 2012-01-27 16:25:24
回答 4查看 4.5K关注 0票数 3

我希望这是一个可以回答的问题。让我给出一些背景:

我是心理学专业的学生,也是一个程序员。我要研究创造一个以聊天机器人的形式的人工智能。我一直在浏览网络,并阅读了一些项目,比如伊莱扎,这是第一个简单的心理治疗项目,现在已经用javascript编写了(所以你可以看到这是多么的简单)。

我想要创建一个喋喋不休,它可以进行会话,并且能够从语义和语法上理解一个句子,目的是相互交流,而不是简单地输出一个答案。我对学习使用“语言”编程的方法很感兴趣。我知道这是一个复杂的问题,所以答案可能也会很复杂。

当我想要分析语义时,我应该研究哪些编程语言/框架。我知道一个优秀的沃尔夫拉姆阿尔法项目,它有一个API接口。但我不想创造一个能回答任何随机问题的人工智能。

套用:为了对话的目的,什么样的框架/编程语言适合与解构语言单位和理解语言一起工作?另外,你知道有什么项目实现这些吗?

EN

回答 4

Software Engineering用户

回答已采纳

发布于 2012-01-27 20:51:51

如果您正在寻找进入这一巨大主题的切入点,那么有比自然语言工具包更糟糕的起点。API是Python。我是有据可查。这本书,用Python处理自然语言--用自然语言工具包分析文本,甚至可以在网上阅读。

我不想误导你。NLTK不是一个令人信服的喋喋不休者的捷径。然而,它是

“适合于解构语言单位和理解语言……”

如果你没有严格的截止日期,斯坦福大学将在2012年2月提供自然语言处理免费课程学位。

票数 7
EN

Software Engineering用户

发布于 2012-01-27 22:37:38

自然语言处理是非常困难的,因为人类语言是如此模棱两可,并且需要大量的背景背景来理解正在说的话。考虑以下几句:

  1. 猴子醒来时喜欢香蕉
  2. 猴子成熟时喜欢香蕉
  3. “我看到实验室技术员拿着显微镜。”

在(1)和(2)中,“他们”是指猴子还是香蕉?嗯,作为一个人,我很清楚,在(1)“他们”指的是猴子,而在(2)指的是香蕉。但我怎么知道的?这些信息并不是句子语法中固有的--这只是因为作为一个人类,我可以访问我大脑中的一个大型背景知识数据库,它告诉我香蕉永远不会“醒来”,猴子也不会“成熟”。因此,我的大脑提供了上下文信息来正确地解析句子。

在(3)中,我们看到了一个类似的问题:(3)是否意味着我看到了一个使用显微镜的实验室技术员,还是意味着我实际上使用了显微镜来见实验室技术员?从语法上讲,这可能意味着。但对一个人来说,这是没有歧义的。它一定是指前者,因为后者是荒谬的。但我意识到后者荒谬的唯一原因是因为我知道显微镜是什么,我知道实验室技术员是人,我知道你不会用显微镜看到一个人,我知道实验室技术人员经常用显微镜工作。所以我的大脑合成了所有的背景知识,让我能够正确地解释这个句子。

现在想象一下用电脑解析像这样的句子。您需要一个包含真实世界事实和关系的庞大数据库(称为本体论)来提供上下文,并需要一个相当复杂的解析器。过去曾有过一些尝试这样做,但它仍然是一项非常理论性的、非常面向研究的工作。

票数 8
EN

Software Engineering用户

发布于 2012-01-27 19:45:45

到目前为止,在自然语言理解方面至少有50年的研究。你不可能独自解决这个问题,而选择一种编程语言则需要花费一亿分之一的精力。看看构建IBM的沃森所付出的努力。他们甚至没有试图解决语言理解这一普遍问题。他们只需要很好地理解线索,就可以得出一个可能的答案。自动翻译系统是另一个很好的参考。经过几百年的努力,我们有了有用的自动翻译器,但没有什么好的.

票数 7
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/132165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档