公司名称分词工作记录
最近要处理公司名称分词问题,开始接触分词算法,其中隐马尔可夫模型是分词的核心(使用的分词器是 HanLP,词性表)。处理公司名称真正的难点在于名称中 “所属行业” 与 “公司字号” 二者间的有效分隔。也就是隐马尔可夫模型处理的部分。至于所属地区以及公司类别,则是依赖字典匹配解决。
HanLP 的机构名称训练语料库对于机构名称种类的覆盖程度不高,需要从外部导入行业表述的字典。网上没有相关的字典资源可供下载,选择使用公司内部的字典加以词性标注并导入。
初步统计,组织形式经营类型约63种,其中能通过逻辑判断进一步优化的16个以上。包括:“部”、“处”、“社” 以及“中心” 向前截取两字符;“分”字向后截取一个字符。HanLP 基本覆盖大部分经营类型,缺少的部分为:“分”、“部”字词组,合作社,联合社。
从《数学之美》一书中了解到,现今人工智能的发展依赖于统计学为基础的数据收集分析。也就是现阶段的语音识别、机器翻译等功能皆依靠对大量数据收集然后总结出规律模式再进行应用(AI资源网站)。
重要概念记录:
最大熵模型:
对随机事件的分布概率进行预测时,应当满足全部已知条件,对未知情况不做任何主观假设。此时概率分布最均匀,预测的风险最小。
维特比算法:
第一步:从S点出发,对于状态1的所有节点,假定有 a 个,计算出S到各个节点的最短距离。
第二步:计算出S到下一个状态所有 b 个节点的最短距离。时间复杂度 O(axb)。
此后不断重复步骤二,直到走到最后一个状态,此时得到 S 到末尾点的最短路径。每一步的复杂度都和相邻两个状态节点数目的乘积成正比。
网络宽度设为 D,则任意一步的复杂度不超过 O(DxD) ,由此该算法的复杂度为 O(NxDxD) 。
关于隐马尔可夫模型和维特比算法,推荐博文。
理解维特比算法,首先要理解动态规划法。动态规划与穷举法的方式类似,不同之处在于,将每一层的所有可能路径都进行存储,这样对新的一层节点进行路径判断时,就不需要从出发点进行遍历,直接从存储空间取得需要的路径信息即可。也就是,相比于穷举法,动态规划法通过花费额外空间的方式,减少了计算量,降低了算法的时间复杂度。空间换时间。
另一个需要理解的算法是 AC算法,这个算法和 KMP算法 相似,而且在理解 AC 之前,对 KMP 的掌握必不可少。然而网上的大部分博客以及书籍资料都没能将其讲解得很清晰,阮一峰大神的博客(博客链接)讲解值得推荐。当然,如果英文阅读无障碍的话,直接看大神参考的英文博文更有意思(原文链接)。
对于引入自定义字典,只需要让字典按照 HanLP 识别的格式编写即可。但是在操作过程中遇到一个问题,字典无法通过配置文件引入,而将词条追加进原有字典中是可以的。推测是分词器无法识别自定义字典的编码格式。实际尝试之后,发现并非编码问题,而是无法在 HanLP 源码当中通过配置文件的方式增加词典,只有在通过 maven 方式引入 HanLP 的 jar 包时才能够使用。
另一方面,对于部分追加进字典中的词语,在执行分词过程中,分词器不能将其识别出来。比如,对于词条“环保净化事务”能够完整识别切分,但如果去除“务”字,变为“环保净化事”时,会无法识别,进而按照自带的核心词典进行匹配。出现该情况的原因有待探究。
由于分词器依赖于统计结果进行切分,所以自定义字典的词频设置就称为关键部分。然而并不是简单地将词频设置为较高数字就能达到目的。对于类似“易容易”这样的短语组合,当“易容”与“容易”在字典中的词频相同时,会造成切分冲突。因此分词器还要在加载的所有字典中进行扫描,再进行综合权衡。而如果扫描后对于两个词给出的权重相同,那么最终的切分结果就会不准确。这也是基于统计概率的分词方式所必须面对的缺点,做不到100%准确无误。所以在实际工作过程中,会出现分词结果与自定义字典不匹配的情况。
而工作涉及的分词,公司名称由四部分组成:行政区划+字号+行业+组织形式。其中“行政区划”和“行业”两部分需要导入特定的字典,组织形式直接手动输入即可。而对于“字号”部分,由于企业命名规则中对该部分没有严格的限制,所以会出现大量随意创造的新词语,因此无法依赖扫描字典的方式进行识别,只能够在分词算法中对该部分进行改进处理。我采用的方式是,通过获取分词结果中每个词的词性(HanLP中每个切分出的词为一个term,是一个链表存储的对象,每个对象都有一个nature属性用于存储词性),进行逻辑判断,分别存入不同的 StringBuilder 对象中,再手动拼接分词结果。
公司名称分词工作记录相关推荐
- 如何通过路由器日志查看路由器是否断网过_路由器本身有一个日志功能,里面存了很多工作记录...
第一种原因或许是来自路由器内存的问题,路由器本身有一个日志功能,里面存了很多工作记录. 有的路由器本身内存小,用的时间久了日志信息就会占满内存,出现路由器无缘无故卡一下的状况,从而导致网络连接故障,无 ...
- 5.20——工作记录
5.20--工作记录 前言 记录 jsp显示问题 人员详情检索 证件类型 证件号码 变灰 禁用 恢复人员检索信息 总结 前言 记录 jsp显示问题 问题:之前显示成aseid了 问题解决 点详情把人员 ...
- 2015年1月工作记录和阅读记录
2019独角兽企业重金招聘Python工程师标准>>> 关于IT.翻过了2014的一年,也走到了大四的中间.成长说不上,但是眼界是慢慢开阔了.这一年的节奏像流水一样缓慢平稳,没有特别 ...
- 5.26——工作记录
5.26--工作记录 前言 过程 总结 重点 前言 目标:1.准备查询的基础sql 2.查询页面, 3.点击设备编码按钮的显示 4.图片 过程 deviceStatusPerceptionEventI ...
- 5.6-5.8工作记录2—分页模糊查询
5.6-5.8工作记录2-改造ssh 前言 作战过程 5.7项目上篇--分页模糊查询 jsp ssm PK ssh 准备ssm 对比ssh: 工作bug记录 注意 打怪 查询以及分页 知识点 准备第二 ...
- 项目实训工作记录(二)
项目实训工作记录(二)赵乐乐 201800301115 词向量搜索分析与算法设计 项目实训工作记录(二)赵乐乐 201800301115 1.词向量搜索 2.搜索过程中的问题分析 3.基于效率的算法设 ...
- openshift/origin工作记录(9)——openshift结合jenkins实现持续集成
最近工作为基于jenkins.Openshift实现持续集成. 由于只给了我一周的时间,这里先记录一下V1.0版的实现过程. 集成jenkins 参考<openshift/origin学习记录( ...
- 2020.4.23工作记录————Regsvr32加载控件失败:“请确保该二进制存储在指定路径中。。。”
工作记录----Regsvr32加载控件失败: 之前的OCX控件今天我因为工作需要又重新写了个新的,跟之前不同的是这次的控件链接了第三方的动态库,但是在OCX控件生成完成后我使用管理员身份运行cmd对 ...
- 计算机科学与技术指导情况记录表,计算机科学与技术学院工作记录模板.doc
计算机科学与技术学院工作记录模板 武汉科技大学 计算机科学与技术学院 2011 / 2012 学年 第 二 学期 毕业设计工作记录 毕业设计(论文)题目: 基于JAVA的网上购物系统 专业名称: 计算 ...
最新文章
- linux运维基础篇 unit14
- python截取数组的一半_python:28.数组中出现次数超过一半的数字
- 网鼎杯SQLI+反序列化读取文件题解
- 长沙网络推广浅析如何增加网站的蜘蛛爬取频次?
- 铁路交通系统安全堪忧:丹麦国家铁路运营商DSB和RENA售票网站接连受创
- C#遍历文件读取Word内容以及使用BackgroundWorker对象打造平滑进度条
- awesome-go:很全的go语言资源合集
- plsql视图添加表字段_Oracle-单表多字段查询(不使用*)
- CV Code|计算机视觉开源周报20200504期
- 最近wampserver总是开不开,一直离线,重启就好,各位有何看法?
- Ubuntu16.04装机5:安装Anaconda3
- Gartner报告:多数CIO还未对数字化做好准备
- Win 10间歇性卡顿问题
- 伺服电机抖动原因分析
- 数字锁相环matlab仿真,锁相环仿真_MATLAB仿真程序代码_二阶锁相环仿真过程
- 苹果产品信息查询_不知道的细节 苹果官网
- LM75AD温度传感器读写
- 修改 google chrome 背景颜色为绿豆沙
- 微信小程序调用扫一扫
- 0Ω电阻可以过多大电流?
热门文章
- 建筑施工单位成本核算系统写作过程及心得
- JavaScript int转string string转int
- JavaScript中的数组删除指定元素方法
- 计算机网络路由器关闭电源,无线路由器开关电源适配器功耗降到2W(图)
- 网游,陈一舟的左勾拳
- 使用Elaticsearch7.x的suggester联想提示、简单实现类似google的联想搜索
- python设计一个猜拳游戏
- 变量邻域下降法(Variable Neighborhood Descent, VND)
- 王者荣耀转移完成会显示我的服务器吗,王者荣耀ios转安卓如何操作 王者荣耀角色转移后原来区服还能玩吗...
- arcgis js(六)设置不透明度