我们正在尝试创建一个用于客户服务的智能聊天机器人。我们有一个客户服务问题和答案的语料库,每个对话都有标记的意图。我们正在探索使用深度学习来训练我们的模型,但我们遇到了一些问题:
在开始实施之前,我建议您先学习一些基础知识。
无论如何,以下是您问题的答案:
特征工程:顾名思义,您的数据中有些东西可能会降低模型的准确性。比如混合有小写和大写字符、数字、特殊字符、以某些特殊字符结尾的行..等,经过特征工程后可以提供更高的准确性!但同样,它的要求完全取决于您拥有的数据类型!!
语言到向量:任何类型的语言,最后都是文本(在你的情况下)。我们可以为单词或字符提供向量表示。这种向量表示可以通过一个热向量或使用诸如 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。
对 Achyuta nanda sahoo 之前的答案进行了一些补充。 (根据您的问题编号)
https://github.com/facebookresearch/fastText/blob/master/docs/pretrained-vectors.md
https://github.com/guillaumegenthial/tf_ner
https://github.com/sachinbiradar9/Question-Answer-Selection