前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >语音转译文本后的意图识别(YMMNlpUtils)

语音转译文本后的意图识别(YMMNlpUtils)

作者头像
sladesal
发布2019-07-01 18:14:20
1.9K0
发布2019-07-01 18:14:20
举报
文章被收录于专栏:机器学习之旅机器学习之旅

上个月由于业务需要定制化了一个中文语境下的手机号码识别库YMMNlpUtils

现在由于业务需求,又新增了一个语音对话过程中是否存在手机号交换行为意图的识别,所以更新了一个版本YMMNlpUtils==0.1.1。实际拿来用的数据比想象中的要更加混乱,主要是由于我们的用户方言很重且经过了一轮语音转文本的信息转译,所以不少信息丢失,比如:

代码语言:javascript
复制
你等会让我jj#等会儿。是名额的香车翻起来!好,你说6.2。有三,有牛有。U0150508。6050508。50568号。

我们设计的算法流程如下:

代码语言:javascript
复制
我们认为语音文本中存在手机号为正样本,
text training data:基础本文信息
text features:本wiki中整理出来的features
P-Learn(全量):正样本
N-Learn(采样):黄色背景为纳入计算的采样负样本,蓝色背景为未纳入计算的采样负样本
outliers:去异常点,采取了概率分布越界原则
OneHotEncoder:离散化
standardize:标准化
1-3_grams:朴素贝叶斯+2-grams+3-grams
Predict1_4:为concat形式[predict1,predict2,predict3,predict4]

实际线上效果如下:

使用Demo如下:

代码语言:javascript
复制
from YMMNlpUtils import YMMPhoneDistinguish
obj = YMMPhoneDistinguish(show_reason=False, user_dict=None, stop_words=None)
#:param show_reason:是否需要展示被识别出来的原因
#:param user_dict:用户自定义词典,默认调用自带词典
#:param stop_words:自定义停顿词
In [8]: obj.predict("你等会让我jj#等会儿。是名额的香车翻起来!好,你说6.2。有
   ...: 三,有牛有。U0150508。6050508。50568号。",0.92)
Out[8]: (0.9527009149362651, 1)
# 0.92为默认阈值,可以自行修改

Reason解析如下: -1:"无原因", 0: "逻辑拼接", 1: "命中敏感词", 2: "疑似电话数字", 3: "数字过长", 4: "涉及微信号码敏感"

阈值调整建议如下:

阈值

精确率

召回率

0.5

99.40%

95.20%

0.6

99.50%

94.50%

0.7

99.60%

93.30%

0.8

99.60%

90.80%

0.9

99.70%

83.60%

0.91

99.70%

82.40%

0.92

99.70%

80.60%

0.93

99.80%

78.00%

0.94

99.80%

75.70%

0.95

99.80%

72.80%

开源代码详见Github

欢迎大家关注我的个人bolg知乎,更多代码内容欢迎follow我的个人Github,如果有任何算法、代码、转行疑问都欢迎通过邮箱发消息给我。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.06.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档