如何快速实现浅层语义解析
来源:互联网 发布:淘宝退货业务流程图 编辑:程序博客网 时间:2024/05/29 03:45
如何快速实现浅层语义解析
写在前边
实现简单的语义解析,并没有想象的那么难,其实简单的语义模版匹配比深度学习算法还要有效。自从今年4月,实习公司的新版产品加入了AI功能,需要解析自然语言的意图,实现垂类搜索,为了满足新产品需求,我开始接触人工智能和自然语言处理的相关内容。之前在学校学过很多机器学习的知识,传统的SVM,logistis,naive bayes等算法以及最近比较火的CNN,RNN等深度学习算法都有一些了解。但是感觉比不是能很好的完成产品需求。
问题分析
产品的需求是,用户会输入一句话,因为是输入时用户的对话,一句不会太长,包含的关键信息不会太多,我们要解析用户当前对话是什么意图,这里是产品定义的我们业务领域内的几个意图。我认为意图区分主要是根据当前对话,当然也要考虑上下文关系。
机器学习应用设想
经过问题分析我们感觉到,所谓意图分析就是一个短文本多分类问题,根据当前对话语句,确定用户的意图,如果应用机器学习算法,首先的问题是对文本的特征提取,因为是短文本,经过去停用词等处理后,剩下的就是10个词左右,所以很适合用word2vec进行特征提取,这里说明一下,因为我们是一个垂直领域的语义解析和搜索,所以对word2vec 的训练可以采用我们领域的训练集,这样首相保证了我们用到的词可能会全部覆盖到,其次也会对本领域内的词特征更有指向性。把句子中每个词向量进行联接就得到了这个句子的特征矩阵。得到文本特征,下面就可以应用各种分类算法了。但是我们会发现,其实每句文本的指向性本身就不强,每个人的表达又是各具特点,很多个人特色的语言风格对于学习算法来说都是很大噪声,另外一个很大的问题是,很多的词语都不能找到大量文本训练集来通过word2vec 提取词向量,比如,我们需要全北京的小区名称等这类的专有名词,这就很麻烦,很难有文本训练集包含所用小区名,所以很多小区名根本就没有得到词向量,所以算法准确度很难保证。在工程中使用价值并不是很好。
我们的解决办法
经过机器学习算法的探索,我们并不满意算法效果,于是乎想到了通过定义模版的方法来解决问题,每个意图的区分只需要检测一些关键词的固定搭配即可实现。当然对于有些词的搭配也会存在意图模糊的情况,这样的情况我们可以给不同的意图打个分。可以根据上下文进行优选。
对于匹配模版的设置,重点就是这只优先级和存储结构了,优先级肯定是根据业务逻辑定的,存储结构可以制定模版树,这些逻辑就完全得看具体业务了。
结果总结
根据模版匹配的得到的分类结果,效果是很好的,问题是模版不一定很严谨,会有很多情况没考虑到,所以需要不断测试不断补充,使效果不断提高。相比于机器学习算法,这种模板匹配的效率也很高,而且不需要前期的学习。总体来说,得到的效果还是很喜人的,虽然理论依据不够充分,但真的是不错的工程实践方法。
源码地址:https://github.com/ZuochaoLee/houseAiApi.git
- 如何快速实现浅层语义解析
- 语义分割学习笔记(三)——SegNet Upsample层解析
- 如何快速编译hal层的修改
- Javascript语义分析器,教你如何实现Jquery库
- Spark Streaming 中如何实现 Exactly-Once 语义
- Kafka 0.11.0.0 是如何实现 Exactly-once 语义的
- 如何将语义层中定义的数据表同步到数据库
- 如何实现悬浮层效果
- 语义层之编辑风格
- 语义层文件的部署
- android 快速实现json解析
- RocketMQ原理解析-Remoting1. 通信层实现
- RocketMQ原理解析-Remoting1. 通信层实现
- Reference语义实现
- 如何实现快速排序算法
- Android 如何快速解析JSON字符串
- 教你如何快速编译MDD层代码
- 如何修改framework层快速使其有效
- PowerPoint2003制作抛物线动画的方法
- 详解MySQL 中explain解释命令
- 栈——largest-rectangle-in-histogram求柱形图中的最大矩形面积
- linux基本命令(55)——traceroute命令
- Android的px、dp和sp
- 如何快速实现浅层语义解析
- Populating Next Right Pointers in Each NodeII
- JSONObject.fromObject--JSON与对象的转换
- 【Android基础知识】Service
- QQ空间分享
- opencv 在图片中找对应矩形(形状分析)
- Mysql database stores original images
- 微信投票项目开发--ssm框架
- 隐藏PPT2003与PPT2007幻灯片中的声音图标