深入学习聊天机器人培训

时间:2017-02-14 11:55:53

标签: networking deep-learning chatbot

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

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

2 个答案:

答案 0 :(得分:0)

酷......好开始!!。

在跳转到实施之前,我建议请先学习一些基础知识。

无论如何,这里是你的问题的答案。 !!

特征工程:顾名思义,在您的数据中,某些内容可能会降低模型的准确性。喜欢混合了小字和大写字母,数字,特殊字符,字符串结尾的字样......等特征工程后更准确!但同样需要的一切取决于你拥有的数据类型!!

语言转换为向量:任何类型的语言,最后是文本(在您的情况下)。我们可以给单词或字符赋予矢量表示。这个向量表示可以通过一个热矢量或使用预构建的方法,如word2vec或手套获得。

一个热门矢量: - 让我们说你的训练数据集有100个单词。然后为每个单词创建k维向量。其中k是单词总数。 sord字的性格位置。并且基于thire排序顺序创建向量,保持其索引位置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。否则我不建议使用NN。

祝你好运!!

答案 1 :(得分:0)

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

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

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

  1. U可以特别使用命名实体识别来查找客户端产品名称。你可以例如从以下回购开始

https://github.com/guillaumegenthial/tf_ner

  1. 您可以按照余弦相似性从一些简单的问题回答匹配开始,如下所示:

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

  1. 即使您最初没有足够的数据,您也可以通过对来自类似问题解答数据分布的巨大数据集进行预训练来从深层神经网络入手。应该有大量的网站,您可以在其中找到准备好抓取的这些问题解答场景:-)

最佳