帖子

[官方资源分享] 【官方】在线命令词abnf语法示例

[复制链接]
  • TA的每日心情
    开心
    2017-12-29 09:56
  • 签到天数: 46 天

    [LV.5]常住居民I

    30528  楼主| 王水 发表于 2016-8-2 19:00:12 1#
    #ABNF 1.0 UTF-8;
    language zh-CN;
    mode voice;
    root $main;
    $main = [$foodsize{out.drinksize=rules.foodsize; }]$kindofdrink{ out.type=rules.kindofdrink;};
    $foodsize = 小杯| 中杯| 大杯;
    $kindofdrink = 可乐| 雪碧;

    ABNF语法开发指南.chm

    79.08 KB, 下载次数: 192

    rahmanjan 发表于 2016-9-1 14:41:37
    2#
    #ABNF 1.0 UTF-8;
    mode SMS_USE_SUB;
    meta;
    //partial;

    #mount "number";
    //#include "..\BasicPhrase\BP_declare.abnf";
    root main;
    #ABNF HEAD-END;

    $SW_DigitHZNormal_yao = 一|幺|二|三|四|五|六|七|八|九|零;
    $SW_DigitHZNormal = 一|二|三|四|五|六|七|八|九|零;
    $SW_DigitHZ = $SW_DigitHZNormal |十|亿|百|万|千;

    $SW_spe_Digital = 一|二|两|三|四|五|六|七|八|九;
    $num_special_1 = $SW_spe_Digital<2>;
    $num_special_2 = $SW_spe_Digital<1>;
    $num_special2{linkword} = ($num_special_1)(十|百|千|万|亿|个|年|岁|块|月|天|周);
    $num_special3{linkword} = [$SW_spe_Digital](十|百|千|万)($num_special_1);

    //日期
    $date_tran1 = $SW_DigitHZ 月;
    $date_tran2 = $SW_DigitHZ<1-3>{numstr} 日;
    $date_tran3 = $SW_Month{month} $SW_DigitHZ<1-3>{numstr} [日];

    $date_tran4 = $SW_DigitHZ<1-3>{numstr} 号;
    $date_tran5 = $SW_Month{month} $SW_DigitHZ<1-3>{numstr} [号];


    //数字
    $num_tran1{numstr} = $SW_DigitHZ<2+>;
    $num_tran2 = ( qq | QQ | 电话 | 手机) [号 [码]] [是] $SW_DigitHZNormal_yao<1+>{numseq};


    $num_tran3_1{numstr} = $SW_DigitHZ<1+>;
    $num_tran3_2{numseq} = $SW_DigitHZNormal_yao<1+>;
    $num_tran3 = ($num_tran3_1) (点){numsymbol} ($num_tran3_2) ;

    $num_tran6 = (负|负的|零下){numzero} ($num_tran3|$num_tran3_1|$num_tran3_2);
    $num_tran4 = ($num_tran6|$num_tran3|$num_tran3_1|$num_tran3_2) (加|减|乘|除|加上|减去|乘以|乘上|除以){numsymbol} ($num_tran6|$num_tran3|$num_tran3_1|$num_tran3_2) ;

    //$num_tran5 = ($num_tran4 |$num_tran3|$num_tran3_1|$num_tran3_2) (加|减|乘|除|加上|减去|乘以|乘上|除以){numsymbol}($num_tran4 |$num_tran3|$num_tran3_1|$num_tran3_2);



    $num_tran7 = $SW_DigitHZNormal_yao<2+>{numseq};

    //特殊字符

    $special1 = (八九不离十|乱七八糟|三七二十一|一五一十|三六九等|零七八碎|三三两两|三五成群|九五之尊|九五至尊|
                 二一添作五|二三其德|三十六计|三十而立|五十步笑百步|九九归一|十万火急|十万八千里|十八层地狱|
                 七七八八|一去二三里|烟村四五家|亭台六七座|八九十枝花|飞流直下三千尺|十七大|十八大|十六大|十五大){specialword};
    $special2 = (负){specialword}($SW_DigitHZ<1+>)(楼|层);
    $special3 = ($num_tran3_1)(点|时){specialword}($num_tran3_1);
    $special4 = ($num_tran3_1)(点|时){specialword}($num_tran3_1)(分){specialnull};
    $special7 = ($num_tran3_1)(点|时){specialword}($num_tran3_1)(分){specialword}($num_tran3_1)(秒){specialword};
    $special6 = ($num_tran3_1)(点|时){specialword}(一刻|半){specialword};

    $special5 = (今天|昨天|前天|明天|后天|早上|上午|中午|下午|晚上|傍晚|夜里|半夜|
                 周一|周二|周三|周四|周五|周六|星期一|星期二|星期三|星期四|星期五|星期六)($special6 | $special3 | $special4 | $special7);


      
    //数字规整
    $num_tran = $_ti_filler_ ($num_tran3 | $num_tran4 | $num_tran6 | $num_tran7 | $num_tran2 | $num_tran1) $_ti_filler_;
    $date_tran = $date_tran1 | $date_tran2 | $date_tran3 | $date_tran4 | $date_tran5 ;
    $specail_tran = $special1 | $special2 | $special4 | $special5 | $special6 | $special7;
    $num_special = $num_special2 | $num_special3;
    $main = $_ti_filler_ ( $num_special | $num_tran | $date_tran | $specail_tran ) $_ti_filler_ ;
    使用道具 举报 回复
    rahmanjan 发表于 2016-9-1 14:42:21
    3#
    这个能不能详细的给我介绍一下。麻烦你了,谢谢
    使用道具 举报 回复
     楼主| 王水 发表于 2016-9-1 14:58:13
    4#
    看看上面附件文档的“语义开发”部分。
    使用道具 举报 回复
    i3evelyn 发表于 2016-11-16 14:48:18
    5#
    王水 发表于 2016-9-1 14:58
    看看上面附件文档的“语义开发”部分。

    如果要识别的是复杂场景怎么办? 不是简单的几句话,而是说什么都能识别
    使用道具 举报 回复
     楼主| 王水 发表于 2016-11-18 09:21:14
    6#
    i3evelyn 发表于 2016-11-16 14:48
    如果要识别的是复杂场景怎么办? 不是简单的几句话,而是说什么都能识别
    ...

    如果需要说什么都能识别的话,就只能看看我们平台的语音听写的功能了。

    楼内回复

    水哥。 我们要做一个匹配, 但是名字这部分是未知的。 这是我们的语句模板:“今天本人xxx已阅读开户文”。 其中的“xxx”为客户的姓名,是未知的! 这种方式能匹配吗? 我做了一个词库, 需要怎么操作才能使用  详情 发表于 2017-3-8 10:14
    使用道具 举报 回复
    候鸟 发表于 2017-3-8 10:14:29
    7#
    王水 发表于 2016-11-18 09:21
    如果需要说什么都能识别的话,就只能看看我们平台的语音听写的功能了。
    ...

    水哥。  我们要做一个匹配, 但是名字这部分是未知的。
    这是我们的语句模板:“今天本人xxx已阅读开户文”。  其中的“xxx”为客户的姓名,是未知的! 这种方式能匹配吗?
    我做了一个词库, 需要怎么操作才能使用? 我现在仅仅是把词库设置到 SpeechRecognizer对象上, 识别结果和没有上传词库时的结果一样。 求指导

    楼内回复

    你这个要用的私有语义的通配符的功能, 你可以在论坛搜索之前的帖子学习一下。  详情 发表于 2017-3-8 14:46
    使用道具 举报 回复
     楼主| 王水 发表于 2017-3-8 14:46:45
    8#
    候鸟 发表于 2017-3-8 10:14
    水哥。  我们要做一个匹配, 但是名字这部分是未知的。
    这是我们的语句模板:“今天本人xxx已阅读开户文 ...

    你这个要用的私有语义的通配符的功能, 你可以在论坛搜索之前的帖子学习一下。
    使用道具 举报 回复
    maplenju 发表于 2017-5-16 12:59:53
    9#
    你好,abnf文件大小有限制么?我要做一个语音输入全国行政区域地址的应用。发现当文件太大时返回10703错误。调试过程中,但我增加一个字符就出错,减少一个字符就正确。这是因为abnf大小有限制的原因么?谢谢!
    使用道具 举报 回复