CNN_Intent_Classification
1.0.0
这是使用 CNN 进行句子分类任务的 Keras 实现。
上述任务的数据集来自自然语言理解基准项目
用于训练的文本分为六个类别,即 AddToPlaylist、BookRestaurant、GetWeather、RateBook、SearchCreativeWork、SearchScreeningEvent,每个类别都有近 2000 个句子。
要准备数据集,请从主项目的目录中打开终端并输入:
$ python prepare_data.py
检查 Intent_Classification_Keras_Glove.ipynb 的模型构建和训练部分。以下是模型概述。
尽管 LSTM 和 GRU 等 RNN 广泛用于语言建模任务,但事实证明,由于训练时的数据并行化,CNN 的训练速度相当快,并且比 LSTM 给出更好的结果。下面是解决句子分类的不同方法之间的简要比较,可以看出 TextCNN 给出了最好的结果,并且训练速度更快。在常规 i7 CPU 上进行训练时,我能够在 3 个 epoch 后的一分钟内实现训练和验证数据集的 99% 准确率。
意图分类和命名实体识别是制作面向目标的聊天机器人时最重要的两个部分。
有很多用于制作聊天机器人的开源 python 包,Rasa 就是其中之一。 Rasa 的一个很酷的事情是,堆栈的每个部分都是完全可定制的并且可以轻松互换。虽然 Rasa 对意图分类任务有出色的内置支持,但我们也可以为该任务指定我们自己的模型,请查看处理管道以获取更多信息。
在 Keras 模型中使用预先训练的词嵌入
用于句子分类的卷积神经网络
用于句子分类的卷积神经网络的敏感性分析(和从业者指南)
用于序列建模的通用卷积和循环网络的实证评估