用于聊天机器人训练的深度学习

问题描述 投票:0回答:2

我们正在尝试创建一个用于客户服务的智能聊天机器人。我们有一个客户服务问题和答案的语料库,每个对话都有标记的意图。我们正在探索使用深度学习来训练我们的模型,但我们遇到了一些问题:

  1. 如何进行特征工程以在文本数据上训练模型。具体来说,如何将语言转化为向量?
  2. 如何使用非单词特征作为意图识别深度学习分类器的输入?您如何适应,例如客户产品名称?
  3. 如何选择带有文本输入的深度学习的神经网络架构?
  4. 我们如何处理没有足够数据的情况?使用贝叶斯技术?
deep-learning chatbot
2个回答
0
投票

在开始实施之前,我建议您先学习一些基础知识。

无论如何,以下是您问题的答案:

特征工程:顾名思义,您的数据中有些东西可能会降低模型的准确性。比如混合有小写和大写字符、数字、特殊字符、以某些特殊字符结尾的行..等,经过特征工程后可以提供更高的准确性!但同样,它的要求完全取决于您拥有的数据类型!!

语言到向量:任何类型的语言,最后都是文本(在你的情况下)。我们可以为单词或字符提供向量表示。这种向量表示可以通过一个热向量或使用诸如 word2vec 或 glove 之类的预构建方法来获得。

一个热向量:- 假设您的训练数据集中有 100 个单词。然后为每个单词创建 k 维向量。其中 k 是单词总数。按字符位置对单词进行排序。并基于三个排序顺序创建向量,保持索引位置为 1,其余位置为 0。

ex: [1 0 0 0 0 ....] - word1
    [0 1 0 0 0 ....] - word2
    [0 0 0 0 0 ...1] - word100

非单词特征:遵循与单词特征相同的规则 客户产品名称:- 创建一个热向量,因为它们通常不会在文本中使用。而且它们在现实生活中没有意义。

如何选择 NN:- 这取决于您想要实现的目标。神经网络可以通过多种方式用于多种目的。

数据不足:- 这又取决于您的数据。 !!如果您的数据有更常见的模式,并且在未来的数据中这些模式也会出现!那么用NN还是可以的。否则我不建议使用NN。


0
投票

对 Achyuta nanda sahoo 之前的答案进行了一些补充。 (根据您的问题编号)

  1. 正如他所说,使用一些预训练的词嵌入层(Fasttext、word2vec) 你可以找到预训练的模型,例如这里:

https://github.com/facebookresearch/fastText/blob/master/docs/pretrained-vectors.md

  1. 您尤其可以使用命名实体识别来查找客户产品名称。你可以例如从以下存储库开始

https://github.com/guillaumegenthial/tf_ner

  1. 你可以根据余弦相似度从一些简单的问答匹配开始,如下所示:

https://github.com/sachinbiradar9/Question-Answer-Selection

  1. 即使你最初没有足够的数据,你也可以通过对来自类似问答数据分布的巨大数据集进行预训练来从深度神经网络开始。应该有很多网站,您可以在其中找到这些可供抓取的问答场景。
© www.soinside.com 2019 - 2024. All rights reserved.