我有点理解什么是神经网络——反映现实世界的数学模型。您可以教神经网络识别文本、图像等。- 这很清楚。但我不知道如何教神经网络聊天机器人考虑对话的上下文?
Я: Меня зовут Ваня.
Я: Как меня зовут?
Чатбот: Тебя зовут Ваня.
我有点理解什么是神经网络——反映现实世界的数学模型。您可以教神经网络识别文本、图像等。- 这很清楚。但我不知道如何教神经网络聊天机器人考虑对话的上下文?
Я: Меня зовут Ваня.
Я: Как меня зовут?
Чатбот: Тебя зовут Ваня.
考虑到上下文,您可以使用神经网络,例如 LSTM(长短期记忆),或者简单地使用俄语 - 具有短记忆和长记忆的神经网络。它的本质在于这个网络的神经元有一个特定的参数,可以记住特定句子中所说的内容。例如对话:
当然,如何选择上下文也很重要,否则神经网络将不知道句子中哪些词重要,哪些不重要。为此,就有了NLP(Natural Language Processing),可以翻译为自然语言处理。这种技巧可以让您确定句子的语调,理解所说的内容并突出显示关键词。
自然语言处理补充
要了解 NLP 的全部本质,我建议您在链接https://cloud.google.com/natural-language/上使用来自 Google 的 API 。在这里你可以用一句话来驱动,虽然到目前为止只有英文,它会给出所有关于它的信息。例如,如果您也将所有内容都输入“我的名字是 Vanya”,那么 Google 会写道Vanya是一个人,这是一个名为name的参数。同样在connection选项卡中,你可以看到谷歌理解这个参数指的是写这句话的那个人,也就是to me。它是如何工作的问题在这里无法回答,因为 NLP 是一门完整的科学。
通常,不仅使用神经网络,还使用其他机器学习算法来实现聊天机器人。一个神经网络真的很难过。我把habr 的一篇文章带到了这个话题。微软有一个很好的框架来创建你自己的聊天机器人,如果你需要在不深入研究机器学习的情况下制作一个聊天机器人,那最好的办法
我没有使用过神经网络,但对于任何系统,有两个条件可以确定:
您还可以将从通信历史中获得的概率与此联系起来,其中有对主题领域的精确指示。但是有出错的可能。
神经网络不是反映现实世界的数学模型。如果仅仅是因为我们自己不了解真实世界是什么,思想是什么,我们无法解释大脑是如何工作的。神经网络是一组具有非线性激活函数和连接加权系数的阈值加法器,实际上是一种用于处理具有内置优化算法的大数据矩阵的数学设备。它们主要用于解决分类问题。存储上下文的任务可以通过不同的方式解决,例如,已经提到的 lstm。无论如何,这里没有而且永远不会有智慧和理性。