词库

词库是一个规范的自然语言短语集合,通常定义为应用所在领域的关键词、术语。词库在一个AI中用于从用户自然语言输入中提取参数值。词库在学术领域也被称为实体(entity),是自然语言处理中的重要概念。

引用词库

用户在录入用户提问语料后,系统会自动标识词库,并高亮显示。同时系统根据词库名称会自动生成一致的参数名称。在系统自动标识词库有误时,用户也可以通过鼠标选定进行手动输入。

image

词库类型

一个AI内部已经定义好很多常用的词库类型,如数量词、日期和时间、姓名、地区、机构名等。开发者可以直接使用这些已定义好的系统词库。如果系统词库无法满足需求,开发者也可以定义自己的词库类型。

一、系统词库

数量词
词库名称 描述 范例 解析结果
yige.quantity_number 数字 1,2, 三百二十六 {'amount': '326', 'unit': null}
yige.quantity_ordinal 有序数量词 第一, 第二名 {'amount': '1', 'unit': null}
yige.quantity_area 带面积单位的数量词 十平米 {"amount":10,"unit":"平米"}
yige.quantity_currency 带货币单位的数量词 5元,两百块 {'amount': '5', 'unit': '元'}
yige.quantity_length 带长度单位的数量词 十米,五十公里 {'amount': '50', 'unit': '公里'}
yige.quantity_speed 带速度单位的数量词 每分钟50米 {'amount': '50', 'unit': '米每分钟'}
yige.quantity_volume 带体积单位的数量词 2升 {'amount': '2', 'unit': '升'}
yige.quantity_weight 带重量单位的数量词 5千克,15吨 {'amount': '5', 'unit': '千克'}
yige.quantity_percentage 百分比 1%,25 percent,百分之十 {'amount': '25%', 'unit': null}
yige.quantity_temperature 带温度单位的数量词 12C,10°F,15度 {'amount': '12', 'unit': '℃'}
yige.quantity_duration 表示时间段的数量词 5天 {'amount': u'5', 'unit': '天'}
yige.quantity_age 表示年龄的数量词 20岁 {'amount': '20', 'unit': '岁'}
日期和时间
词库名称 描述 范例 解析结果
yige.date 绝对日期和相对日期 2014年12月31日、2016年7月 '2014-12-31','2016-07'
yige.time 绝对时间和相对时间 2014-12-31 13:30:00、下午三点 '2016-08-27 15:00:00','15:00:00'
yige.time_freq 时间频率 每三天,每周四 {'amount': 3, 'unit': '天'},{'week': ['4'], 'amount': 1, 'unit': '周'}
yige.time_range 时间段 本周、两三点钟 {'start': '02:00:00', 'end': '03:00:00'}
联系方式
词库名称 描述 范例 解析结果
yige.contact_type 联系方式(手机/微信/QQ) 微信号 微信号
yige.contact_id 联系ID 15012345678 15012345678
姓名
词库名称 描述 范例 解析结果
yige.name 人名 范冰冰 范冰冰
地区
词库名称 描述 范例 解析结果
yige.address 地名 北京市 北京市
机构名
词库名称 描述 范例 解析结果
yige.org 机构名 北京大学 北京大学
通配符
词库名称 描述 范例 解析结果
yige.any 匹配任意非空字符串 用户在定义组合词库时可使用“yige.any”,实现类似正则表达式中“.+”的功能。如“${yige.any:name}说”能匹配“刘德华说”,“奥巴马说”等。“yige.any”的匹配长度必须大于0 任意非空字符串
组合实体(组合实体的子实体必须包含别名,即{}中冒号后面的部分)
词库名称 描述 范例 解析结果
${yige.quantity_number:num} 鞋码 42码 "parameters": [{"type": "鞋码","name": "xiema","value": [{"type": "yige.quantity_number","name": "num","value":"42","original": "42"}],"original":"42码"}]

二、开发者词库

开发者可以根据需要定义自己的词库。开发者词库分为三种:同义词词库枚举词库组合词库

注:词库名称只能包含中文、字母、数字、中划线及下划线。
同义词词库

在我们日常聊天过程中,经常是一件事情有很多种表达方式。因此我们可以为每个关键词映射一个或多个同义词来减少用户语料库的例句。

image

枚举词库

枚举类型的词只包含关键词,没有同义词。操作时要勾选掉定义同义词的复选框。以联系方式举例:

image

组合词库(组合词库的子词库必须包含别名,即{}中冒号后面的部分)

组合词库是由其他词库通过给定的模式组合而成。组合词库不能定义同义词,所以可以认为它是一种特殊的枚举词库。组合词库在使用其他词库时需要明确对应词库的类别和变量名称。例如,我们可以定义一个词库来全面描述鞋子的价格范围:

image

在场景中使用组合词库中的变量:

image

短语“我想要一双300元以下的鞋”的返回值:

"parameters": [
  {
    "type": "价格区间",
    "name": "jiagequjian",
    "value": [
      {
        "type": "yige.quantity_currency",
        "name": "n1",
        "value": "300元",
        "original": "300元"
      }
    ],
    "original": "300元以下"
  }
]

组合词库比同义词词库与枚举词库更加灵活,它能在一个词库类别中定义很多匹配模式。

词库的导入导出

json文件内容示例:

{
    "name": "店铺",   // 词库名称
    "entries": [    // 词库内容
        {
            "value": "肯德基", // 同义词中比较权威的名称
            "synonyms": [   // 同义词
                "肯德基",
                "kfc"
            ]
        },
        {
            "value": "7-11",
            "synonyms": [
                "711",
                "711便利店"
            ]
        }

    ],
    "type": 1,  // 是否定义同义词 1是  0否
}
注意事项:

1、导入的格式必须按照上述格式。
2、导入的文件必须在后缀为.zip的压缩包中。
3、暂时不支持组合实体的导入。

results matching ""

    No results matching ""