以下是视频内容文字版:
大家好,欢迎观看欧拉蜜系列教程视频,今天要介绍的内容是离线编辑 OSL 文本。由于这一部分内容比较多,所以将会分成上下两个部分来讲解。今天这节课先带大家来了解一下 OSL 文件的基本概念。
我将会从以下这四个部分来分别讲解:
一、什么是 OSL 文件 二、如何导出/上传 OSL 文件 三、OSL 文件的内容 四、OSL 文件基本撰写格式和规则 |
一、什么是 OSL 文件
所谓的 OSL 文件也就是写有 OSL 文本数据的文本文件,为了方便开发者进行编辑, NLI 管理系统就支持把 OSL 文本数据导出成文本文件,然后开发者就可以像编辑 Word 一样,来离线编辑 OSL 文本数据,最后再重新上传导入到 NLI 管理系统,这样做的好处就是可以在短时间里快速的编辑或者修改大量的语法内容。
二、如何导出 OSL 文件
在我们进入 NLI 管理系统后,在“我的模块”界面,可以看到当前应用里所有的模块,每一个模块的右边都有“导出OSL 文件”这个选项,单击之后,系统就会自动把模块里所有的 OSL 文本数据以压缩包的形式导出。在这里要注意一下,导出的 OSL 文本文件必须以 UTF-8 格式保存,扩展名是:“.osl”。因为我们导出的是音乐模块,那么名称就是:“音乐.osl”。
三、如何上传 OSL 文件
也是在“我的模块”这个界面,有“上传 OSL 文件”这个选项,只需要单击,然后把已经编辑好了的 OSL 文本文件上传就可以了。右边这个图就是一份已经编辑好了的 OSL 文件,可以看到里面有 rule、grammar 和语料。当我们把这个文件上传到系统里的时候,系统就会提示:“ OSL 文件会替换当前模块里的所有内容,确定要上传吗”,如果确定的话,直接点击就可以了。
四、OSL 文件具体的内容
那么,在知道了怎么导出、上传 OSL 文件之后,我们来看一下 OSL 文件具体的内容。
OSL 文件的内容主要包括两部分:声明和定义。
声明包括: 意图声明(必要) slot 声明 modifier 声明 grammar 声明(必要) |
其中,意图声明和 grammar 声明是必不可少的,至于 slot 声明和 modifier 声明,如果 grammar 里没有使用 slot 和 modifier ,可以不声明,在书写的时候要注意。
定义则指的是主要的描述内容,包含了各项语法描述句、例句语料、答案、注释等。
我们通过一个例子来看一下,一份完整的 OSL 文件是什么样子:
!slot <singer:internal."歌手"(2|10)>; |
Slot声明 |
!intention <my_grammar>; |
意图声明(必要) |
!modifier <singer> : itissinger;
!modifier <my_grammar> : music; |
Modifier声明 |
<my_grammar>:<tingge> |
Grammar声明(必要) |
//All rules
<singer>:刘德华|蔡依林|周杰伦; |
定义rule |
//All grammars
//*C:我要听蔡依林的歌 |
定义corpus |
//*A:马上为您播放 | 定义答案 |
<tingge>:我要听<singer><{singer@=itissinger}>的歌<{@=music}>; | 定义grammar |
五、OSL 文件通用的撰写格式和规则
主要有以下三点:
第一,OSL 文件内容中的字符必须是半角状态下的英文(语法描述句的内容、以及例句语料内容除外)。 |
第二,OSL 文件内容以英文半角分号字符 ; 作为每一个声明和定义的结尾标示。例:!slot <singer:internal."歌手"(2|10)>;
英文半角:“;” 中文半角:“;” ,英文全角:“ ;” 中文全角:“ ;”,输入的时候请注意一定是英文半角 |
第三,OSL 文件内容可以用 // 或 /* */ 编写注释,
例://All grammars //*C:我要听蔡依林的 |
这三条是 OSL 文件通用的撰写规则,也就是说不管是声明还是定义,都必须按照这四个规则来写,但是声明和定义又有自己具体的撰写规则,由于这一部分内容比较多,我们会在下一节课具体来介绍。以上这些就是这节课的全部内容,感谢大家观看,我们下节课再见。