中文语境下的手机号识别
最近在做一个关于中文大段文本中的手机号码识别,由于属于对抗性的一个文本,发现传统的手机号码识别方法,比如正则匹配并不是很适用。
理论情况下文本中的手机号码出现方式应该如下:
9*6箱车转让,连线路一起打包,带线路转让,固定货源联系13802131234,手机号,非诚勿扰2+1合同
对于这种情况,只要需要进行一下正则就行了:
text = '9*6箱车转让,连线路一起打包,带线路转让,固定货源联系13802131234,手机号,非诚勿扰2+1合同'
mobilephone_pattern = "1\d{10}"
phoneNumbers = re.findall(mobilephone_pattern, text, flags=0)
得到了如下结果:
In [36]: phoneNumbers
Out[36]: ['13802131234']
但是实际情况下,第三方会进行逃避规则的操作,出现了比如:
9*6箱车转让,连线路一起打包,带线路转让,固定货源联系138-02##131234,手机号,非诚勿扰2+1合同
9*6箱车转让,连线路一起打包,带线路转让,固定货源联系138-洞2##幺3幺234,手机号,非诚勿扰2+1合同
甚至还会有:
9*6箱车转让,连线路一起打包,带线路转让,固定货源联系1衫8-洞2##幺散幺2删4,手机号,非诚勿扰2+1合同
这样的情况下,继续通过规则就难以实现了:
In [38]: re.findall(mobilephone_pattern, text, flags=0)
Out[38]: []
所以,我们做了一个拼音转译+循环判断的逻辑进行了优化,会先把文本处理一边:
In [37]: text = '9*6箱车转让,连线路一起打包,带线路转让,固定货源联系1衫8-洞2##幺散幺2删4,手机号,非诚勿扰2+1合同'In [38]: re.findall(mobilephone_pattern, text, flags=0)
Out[38]: []In [39]: from YMMNlpUtils import YMMNlpUtilsIn [40]: obj = YMMNlpUtils(strict=True)In [41]: obj.get_all_phone_number(text)
Out[41]: '96箱车转让连线路17打包带线路转让固定货源联系13802131234手机号非诚5扰21合同'In [42]: re.findall(mobilephone_pattern,obj.get_all_phone_number(text), flags=0)
Out[42]: ['13802131234']
这样处理完就可以得到手机号码了。
由于是定制化的功能,后期可能还会维护出微信号,身份证号这些,更多的可以去git看一下,放上地址链接手机号码小工具,安装方法在README里面有解释。
欢迎大家关注我的个人bolg,知乎,更多代码内容欢迎follow我的个人Github,如果有任何算法、代码、转行疑问都欢迎通过邮箱发消息给我。
中文语境下的手机号识别相关推荐
- 中文电子病例命名实体识别项目
MedicalNamedEntityRecognition Medical Named Entity Recognition implement using bi-directional lstm a ...
- python 手机号码识别,python 通过手机号识别出对应的微信性别(实例代码)
python 通过手机号识别出对应的微信性别,具体代码如下所述: def getGender(self,tel): self.d(resourceId="com.tencent.mm:id/ ...
- python判断性别的源代码_python 通过手机号识别出对应的微信性别(实例代码)
python 通过手机号识别出对应的微信性别,详细代码如下所述: def getGender(self,tel): self.d(resourceId="com.tencent.mm:id/ ...
- python怎么通过手机号定位_python 通过手机号识别出对应的微信性别(实例代码)
python 通过手机号识别出对应的微信性别,具体代码如下所述: def getGender(self,tel): self.d(resourceId="com.tencent.mm:id/ ...
- QQ拼音在中文输入下默认英文标点
别小看这个功能, 感觉在写一些技术 Blog 的情况下还是挺有用的. 打开QQ拼音: 输入法设置->基本设置->初始状态->中文状态下使用英文标点. 转载于:https://www. ...
- 应用层下的人脸识别(二):人脸库
本文作者根据多年人脸识别项目经验,总结了人脸识别技术在安防.商业领域应用及产品设计细节,汇总成应用层下的人脸识别系列文章. 本文为系列文章的第二篇,介绍人脸库的相关内容.人脸库是人脸识别的基础,建立人 ...
- 应用层下的人脸识别(四):人脸研判
作者根据多年人脸识别项目经验,总结了人脸识别技术在安防.商业领域应用及产品设计细节,汇总成应用层下的人脸识别系列文章.本文为系列文章的第四篇,从什么是人脸研判及人脸研判类型和应用两方面介绍相关内容. ...
- 模式识别新研究:微软OCR两层优化提升自然场景下的文字识别精度
模式识别新研究:微软OCR两层优化提升自然场景下的文字识别精度 发表于2015-03-30 23:46| 6209次阅读| 来源CSDN| 8 条评论| 作者霍强 模式识别微软亚洲研究院微软OCR文字 ...
- 微软OCR两层优化提升自然场景下的文字识别精度(模式识别新研究)
摘要:OCR识别可分为两步:首先是文本检测,将文字从图片中提取出来:然后对文本进行识别.此次的突破主要是在文本检测环节的两个子阶段:先采用对比极值区域CER检测方法,再采用基于浅层神经网络的文字/非文 ...
最新文章
- Android 利用ListView制作带竖线的多彩表格
- 魏代汉,晋代魏,背后是士族与寒族的博弈,也是士族门阀的形成时期
- java创建线程代码_Java创建与结束线程代码示例
- instanceof java list_Java:Instanceof和泛型
- P3870-[TJOI2009]开关【分块】
- wether.html5.qq.com,人教版英语九年级全一册Unit 1单元测试卷及参考答案解析(含听力...
- 工业相机,大恒,面振相机8脚电源线和I/O触发接口线,颜色和接法说明和触发软件设定
- Android BottomNavigationBar导航栏
- 线性筛法--------2013年1月2日
- 几个危险的扩展存储过程
- java面试 线程_Java面试题(线程)
- 大一计算机基础重点知识,2015-大一计算机基础知识点归纳.doc
- Python中使用wxpy定时机器人给微信好友发送每日一文
- 国内TCP单边“加速”的“正确”做法
- ORA-01654: unable to extend index报错解决
- 基于BPM的低代码平台如何选型
- Vundle ,Vim Bundle
- 获取本机ip和端口号
- python中的numpy库有什么优缺点_python中关于numpy库的介绍
- 【Web】html+js 制作小游戏
热门文章
- c语言循环并行处理,C语言设计并行处理
- Pri3D:一种利用RGB-D数据固有属性完成3D场景感知的表示学习方法
- 大疆车载招聘|SLAM、地图定位、感知算法、机器学习算法工程师
- Mobile3DRecon:手机上的实时单眼3D重建
- LSD-SLAM解读——帧间追踪(详细推导)
- 一分钟详解VS中快速生成dll和lib方法
- string日期格式化_java面向对象---日期类
- RDKit | RDKit(2019.09)新增相似性图函数
- Linux(CentOS 7_x64位)系统下安装ACPYPE
- Pytorch实践中的几个重要概念