Rasa实战:构建开源对话机器人
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.4 正则表达式字段

具有regex键表明当前的对象是用来存储正则表达式的。利用正则表达式匹配某种模式后,将这种模式是否出现作为特征传给NER组件或意图识别组件,以提高组件的性能。

Rasa中的正则表达式采用Python正则表达式作为后端引擎。

正则表达式特征有很多优点,如使用常规的NER组件提取身份证号码、电话号码和IP地址这类实体时很难做到非常精准,但使用正则表达式就可以轻松完成。因此在特别规则的NER识别过程中,可以利用正则表达式特征提高识别准确率。

正则表达式特征工作原理示意图如图2-2所示。

图2-2 正则表达式特征工作原理示意图

图2-2的文本中包含电话号码,通常的NER组件在默认特征下难以非常准确地提取电话号码,而人们很容易知道这是电话号码:中国的电话号码以1开头,第2位是3、5或8,共11位数字。用正则表达式可以表达为[1]+[358]+\d{9},电话号码的字符特征值为1,非电话号码的字符特征值为0。