中文语境下的手机号识别

2024-01-08 11:48
文章标签 中文 识别 手机号 语境

本文主要是介绍中文语境下的手机号识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在做一个关于中文大段文本中的手机号码识别,由于属于对抗性的一个文本,发现传统的手机号码识别方法,比如正则匹配并不是很适用。

理论情况下文本中的手机号码出现方式应该如下:

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,如果有任何算法、代码、转行疑问都欢迎通过邮箱发消息给我。

这篇关于中文语境下的手机号识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583361

相关文章

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别

转发来源:https://swift.ctolib.com/ooooverflow-chinese-ocr.html chinese-ocr 基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别 环境部署 sh setup.sh 使用环境: python 3.6 + tensorflow 1.10 +pytorch 0.4.1 注:CPU环境

百度OCR识别结构结构化处理视频

https://edu.csdn.net/course/detail/10506

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

神经网络第四篇:推理处理之手写数字识别

到目前为止,我们已经介绍完了神经网络的基本结构,现在用一个图像识别示例对前面的知识作整体的总结。本专题知识点如下: MNIST数据集图像数据转图像神经网络的推理处理批处理  MNIST数据集          mnist数据图像 MNIST数据集由0到9的数字图像构成。像素取值在0到255之间。每个图像数据都相应地标有“7”、“2”、“1”等数字标签。MNIST数据集中,

vscode python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

在vscode中控制台运行python文件出现:无法将"pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 使用vscode开发python,需要安装python开发扩展: 本文已经安装,我们需要找的是python安装所在目录,本文实际路径如下: 如果在本文路径中没有此目录,请尝试在C盘中搜索 python,搜索到相关python目录后,点击Python 3.9进入目录,

【图像识别系统】昆虫识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50

一、介绍 昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集(‘蜜蜂’, ‘甲虫’, ‘蝴蝶’, ‘蝉’, ‘蜻蜓’, ‘蚱蜢’, ‘蛾’, ‘蝎子’, ‘蜗牛’, ‘蜘蛛’)进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一

关于文章“python+百度语音识别+星火大模型+讯飞语音合成的语音助手”报错的修改

前言 关于我的文章:python+百度语音识别+星火大模型+讯飞语音合成的语音助手,运行不起来的问题 文章地址: https://blog.csdn.net/Phillip_xian/article/details/138195725?spm=1001.2014.3001.5501 1.报错问题 如果运行中报错,且报错位置在Xufi_Voice.py文件中的pcm_2_wav,如下图所示

理解什么是DSR,嗅探器视角下的IP和MAC地址识别(C/C++代码实现)

网络嗅探器是监控和分析网络流量的一种工具,它能够捕获数据包并提取出关键的信息,比如IP地址和MAC地址。 网络嗅探器工作原理基于网卡的工作模式。正常情况下,网卡只处理发送给它的数据包,忽略其他数据。但是,如果将网卡设置为“混杂模式”,那么它可以接收到网络上所有的数据包,而不仅仅是发给它的数据包。网络嗅探器就是利用了这一特性来捕获网络上的数据交换。 数据包是网络通信的基本单位,包含了传输数据和控

android 中文api (84) —— TrafficStats

android 中文api (84) —— TrafficStats   前言   本章内容是android.net.TrafficStats,译为"流量统计",版本为Android 2.3 r1 ,翻译参考“Android开发网”的这篇文章,欢迎访问他们的网址:“http://android123.com.cn/”。期待你一起参与Android API 的中文翻译,联系我over140@g