Python实现数据地址实体抽取
一、数据地址实体抽取的目的及问题
对数据的地址进行实体识别,主要作用是确定我们的数据主体最终可以归到哪一行政单位,从而在各行政单位上对数据主体的归属问题进行判断。
因何原因使用实体抽取:
例如原始数据所提供的信息为**省**市(地级)**市(县级)**镇,数据处理上,要对数据的省、地级市、县级市等信息进行单独抽取。
上述为标准的提供数据,但有时会出现:**省**市(县级市),或者**市(县级),这时候就要对数据进行补齐工作,补充该县级市所属的地级市、省。
其次,还有写出**省**市(地级市)的情况,没有写明县级市,如果以县级市进行对其,非实体抽取方式可能会将地级市与省份信息后移一位。
二、方法一:调用ahocorasick库
ahocorasick是个python模块,Aho-Corasick算法是多模式匹配中的经典算法,目前在实际应用中较多。
ahocorasick安装:
1、确定安装VC++,安装后,在模块选择里勾选Visual Studio Build Tools里面的C++ Build Tools
2、执行pip安装命令
pip install pyahocorasick
(若该方法安装失败,可尝试CSDN中其他安装方法)
ahocorasick使用:
若直接使用,会出现如下问题:
ahocorasick并没有对数据进行补全的功能,若原数据对子数据有确实,无法进行补齐,如内蒙古自治区——磴口县与内蒙古自治区——巴彦淖尔市——磴口县。后者数据符合要求,可分级进行存储,但前者地级市数据丢失。
解决方法:
1、仅将最后一级,如县级市作为关键字,对关键字进行查找,若关键词存在,通过关键词数据集向上补齐地级市与省份关键字,若不存在,则定为空。
2、若县级市关键词不存在,则将其县级市位置信息定为空,再将非空数据进行标记。
3、仅将地级市作为关键字,对具有标记的数据进行关键字查找,查找后再向上进行补齐。
4、以此类推,将其余省份信息进行补齐
该方法可参考,但不推荐,较为麻烦,且具有隐患。
三、方法一:调用cpca库
1、安装cpca库
pip指令执行:
pip install cpca
2、cpca库使用方法
import cpca information=['内蒙古自治区呼伦贝尔市牙克石市民生B区','赛罕区大学西路街道内蒙古大学','回民区北二环路内蒙古财经大学','北京海淀区','河北深州市' ] s=cpca.transform(information) print(s)
3、执行结果
注:cpca第三方库只会精确到县级市,县级市后均为地址
总结
栏 目:Python代码
下一篇:python网络通信图文详解
本文标题:Python实现数据地址实体抽取
本文地址:http://www.codeinn.net/misctech/226464.html