项目介绍:Rasa NLU GQ
简介
Rasa NLU GQ 是一个功能强大的自然语言理解工具,帮助机器理解人类的语言。它的基本功能是将日常语言输入转换为结构化数据,便于计算机处理。例如,当用户输入 "我想找一个市中心的墨西哥餐馆" 时,Rasa NLU GQ 能够识别出意图(search_restaurant)和实体(cuisine: Mexican 和 location: center)。
项目的原始代码可以从分支 0.2.7 中获取,并且可以自由切换到此分支。新版本基于 Rasa 的最新版本,只对原有组件进行了修改,没有增加新的内容。值得注意的是,原有方法有点繁琐,现在不需要修改 Rasa 的源代码即可使用,而是可以直接将原有组件作为附加组件加载,从而继承最新版本的 Rasa,实现实时更新。
新增功能
Rasa NLU GQ 进行了多项功能增强:
-
实体识别模型:新增了两种实体识别模型:bilstm+crf 和 idcnn+crf。通过这些模型,可以更好地从自然语言中提取特定的实体信息。例如:
- name: "rasa_nlu_gao.extractors.bilstm_crf_entity_extractor.BilstmCRFEntityExtractor" model_type: "bilstm" # 支持 idcnn 或 bilstm
-
Jieba 词性标注:引入了 Jieba 分词器的词性标注模块,可以识别名字、地名、机构名等。配置如下:
- name: "rasa_nlu_gao.extractors.jieba_pseg_extractor.JiebaPsegExtractor" part_of_speech: ["nr", "ns", "nt"]
-
根据实体反向修改意图:该功能允许系统根据检测到的实体来调整语句的意图,比如通过地名调整意图:
- name: "rasa_nlu_gao.classifiers.entity_edit_intent.EntityEditIntent" entity: ["nr"]
-
BERT 模型支持:引入了 BERT 模型来提取词向量特征,提高了语言理解的精确度。配置如下:
- name: "rasa_nlu_gao.featurizers.bert_vectors_featurizer.BertVectorsFeaturizer"
-
利用 CPU 和 GPU:增强了对 CPU 和 GPU 的利用率配置,主要应用于使用 TensorFlow 的组件,配置示例如下:
- name: "EmbeddingIntentClassifier" config_proto: {"device_count": 4}
-
BERT 嵌入意图分类器:引入了
embedding_bert_intent_classifier
分类器,通过使用 BERT 嵌入进行分类:- name: "rasa_nlu_gao.classifiers.embedding_bert_intent_classifier.EmbeddingBertIntentClassifier"
-
TensorFlow 高级 API 支持:在 BERT 基础上,利用 TensorFlow 的高级 API 进行分类:
- name: "rasa_nlu_gao.classifiers.embedding_bert_intent_estimator_classifier.EmbeddingBertIntentEstimatorClassifier"
快速安装
要快速体验 Rasa NLU GQ,可以使用 pip 进行安装:
pip install rasa-nlu-gao
示例
有关具体的使用示例,请参考项目 rasa_chatbot_cn
。在这个项目中,可以体验 Rasa NLU GQ 的多种功能和特性。
总结
Rasa NLU GQ 项目为自然语言理解提供了强大的工具和丰富的功能,其不断更新的模块和灵活的配置方式使其成为研究和开发人工智能应用的有力助手。