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包中实现生成器
有关完整的语言规范和文档,请参阅DSL规范文档。
该语言独立于生成的输出格式,并且由于每个模型都可以接收不同的参数和设置,因此在这里提供了3种数据格式的适配器。 本节介绍适配器及其特定行为和用例:
如果你计划训练自定义模型或正在编写自定义的适配器,建议使用默认格式。 这是最灵活的格式,因为您可以使用自定义实体参数来注释Slots和Intents,并且它们都将出现在生成的输出结果中,因此举个例子,你还可以使用dsl包含对话/响应生成逻辑。 例如:
%[some intent]('context': 'some annotation')
@[some slot] ~[please?]
@[some slot]('required': 'true', 'type': 'some type')
~[some alias here]
输出中将提供“context”、required”和“type”等自定义实体,因此你可以根据需要处理此自定义参数。
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 1的entity_synonyms和synonym 2映射到some slot synonyms。
Snips NLU 是另一个非常棒的NLU开源框架。 Snips适配器的一个特定行为是你可以为slot定义实体类型。 例如:
%[date search]('training':'1')
for @[date]
@[date]('entity': 'snips/datetime')
~[today]
~[tomorrow]
在前面的示例中,所有@[date]值都将使用snips/datetime实体标记进行标记。
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挑战”即可答题获取!
点击阅读原文,查看更多内容