Github项目推荐 | Chatito - 使用简单的DSL为AI聊天机器人、NLP任务、命名实体识别或文本分类模型生成数据集

2019 年 1 月 21 日 AI研习社

Chatito - Generate datasets for AI chatbots, NLP tasks, named entity recognition or text classification models using a simple DSL!

到在线IDE上试试吧!→Link 


项目地址(注:划线部分链接需点击文末【阅读原文】访问)

https://github.com/rodrigopivi/Chatito


概览

Chatito可帮助你生成用于训练的数据集,并使用简约的DSL验证聊天机器人模型。

如果你使用商业模型、开源框架或编写自己的自然语言处理模型来构建聊天机器人,则需要训练示例。 Chatito随时为你提供帮助。

该项目包含:

  • Online chatito IDE - 在线聊天的IDE

  • Chatito DSL specification - Chatito DSL规范

  • DSL AST parser in pegjs format - pegjs格式的DSL AST解析器

  • Generator implemented in typescript + npm package - 在typescript + npm包中实现生成器


  Chatito语言

有关完整的语言规范和文档,请参阅DSL规范文档


  适配器

该语言独立于生成的输出格式,并且由于每个模型都可以接收不同的参数和设置,因此在这里提供了3种数据格式的适配器。 本节介绍适配器及其特定行为和用例:

默认格式

如果你计划训练自定义模型或正在编写自定义的适配器,建议使用默认格式。 这是最灵活的格式,因为您可以使用自定义实体参数来注释SlotsIntents,并且它们都将出现在生成的输出结果中,因此举个例子,你还可以使用dsl包含对话/响应生成逻辑。 例如:

%[some intent]('context': 'some annotation')
   @[some slot] ~[please?]

@[some slot]('required': 'true', 'type': 'some type')
   ~[some alias here]

输出中将提供“context”、required”和“type”等自定义实体,因此你可以根据需要处理此自定义参数。

Rasa NLU

Rasa NLU是一个用于训练NLU模型的优秀开源框架。 Rasa适配器的一个特定行为是,当slot定义语句仅包含一个别名时,生成的rasa数据集将会把这个别名映射为同义词。 例如:

%[some intent]('training': '1')
   @[some slot]

@[some slot]
   ~[some slot synonyms]

~[some slot synonyms]
   synonym 1
   synonym 2


在示例中,生成的rasa数据集将包含synonym 1entity_synonymssynonym 2映射到some slot synonyms

Snips NLU

Snips NLU 是另一个非常棒的NLU开源框架。 Snips适配器的一个特定行为是你可以为slot定义实体类型。 例如:

%[date search]('training':'1')
  for @[date]

@[date]('entity': 'snips/datetime')
   ~[today]
   ~[tomorrow]

在前面的示例中,所有@[date]值都将使用snips/datetime实体标记进行标记。


  NPM包

Chatito支持 v8.11.2 LTS 或更高版本的nodejs。

全局安装:

npm i chatito -g

或者本地安装:

npm i chatito --save


然后用你的代码创建一个定义文件(例如:trainclimatebert .chatito)。

运行npm生成器:

npx chatito trainClimateBot.chatito

生成的数据集应该在定义文件旁可用。

以下是完整的npm生成器选项:

npx chatito <pathToFileOrDirectory> --format=<format> --formatOptions=<formatOptions> --outputPath=<outputPath>


  • <pathToFileOrDirectory> 表示 .chatito文件的路径或包含.chatito文件的目录。如果它是一个目录,将会递归搜索内部所有的 *.chatito 文件,并使用它们来生成数据集。例如:lightsChange.chatito 或 ./chatitoFilesFolder

  • <format> 可选。格式可以是 default、rasa 或者 snips

  • < formatOptions > 可选。每个适配器可选使用的.json文件路径

  • < outputPath >可选。保存生成数据集的目录。默认使用当前目录。


作者和维护者

Rodrigo Pimentel


捐赠

设计和维护chatito需要时间和精力,如果它对你有用,请考虑捐款并与我们分享!:)


项目地址:https://github.com/rodrigopivi/Chatito


【AI求职百题斩 - 每日一题】

赶紧来看看今天的题目吧!


想知道正确答案?

点击今日推文【第3条】或 在公众号回复“0121挑战”即可答题获取!

点击阅读原文,查看更多内容

登录查看更多
13

相关内容

Chatbot,聊天机器人。 chatbot是场交互革命,也是一个多技术融合的平台。上图给出了构建一个chatbot需要具备的组件,简单地说chatbot = NLU(Natural Language Understanding) + NLG(Natural Language Generation)。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【ICML2020-西电】用于语言生成的递归层次主题引导RNN
专知会员服务
21+阅读 · 2020年6月30日
基于多头注意力胶囊网络的文本分类模型
专知会员服务
77+阅读 · 2020年5月24日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
【EMNLP2019教程】端到端学习对话人工智能,附237页PPT下载
专知会员服务
69+阅读 · 2019年11月25日
基于PyTorch/TorchText的自然语言处理库
专知
28+阅读 · 2019年4月22日
GitHub获赞过千:PyTorch 自然语言处理项目Top 5
新智元
12+阅读 · 2018年7月10日
命名实体识别从数据集到算法实现
专知
55+阅读 · 2018年6月28日
用神经网络训练一个文本分类器
Python开发者
3+阅读 · 2017年8月19日
Multi-Grained Named Entity Recognition
Arxiv
6+阅读 · 2019年6月20日
Neural Approaches to Conversational AI
Arxiv
8+阅读 · 2018年12月13日
CoQA: A Conversational Question Answering Challenge
Arxiv
7+阅读 · 2018年8月21日
Arxiv
8+阅读 · 2018年5月21日
Arxiv
5+阅读 · 2018年5月1日
VIP会员
相关VIP内容
Top
微信扫码咨询专知VIP会员