Python實現(xiàn)數(shù)據(jù)地址實體抽取
一、數(shù)據(jù)地址實體抽取的目的及問題
對數(shù)據(jù)的地址進行實體識別,主要作用是確定我們的數(shù)據(jù)主體最終可以歸到哪一行政單位,從而在各行政單位上對數(shù)據(jù)主體的歸屬問題進行判斷。
因何原因使用實體抽取:
例如原始數(shù)據(jù)所提供的信息為**省**市(地級)**市(縣級)**鎮(zhèn),數(shù)據(jù)處理上,要對數(shù)據(jù)的省、地級市、縣級市等信息進行單獨抽取。
上述為標(biāo)準(zhǔn)的提供數(shù)據(jù),但有時會出現(xiàn):**省**市(縣級市),或者**市(縣級),這時候就要對數(shù)據(jù)進行補齊工作,補充該縣級市所屬的地級市、省。
其次,還有寫出**省**市(地級市)的情況,沒有寫明縣級市,如果以縣級市進行對其,非實體抽取方式可能會將地級市與省份信息后移一位。
二、方法一:調(diào)用ahocorasick庫
ahocorasick是個python模塊,Aho-Corasick算法是多模式匹配中的經(jīng)典算法,目前在實際應(yīng)用中較多。
ahocorasick安裝:
1、確定安裝VC++,安裝后,在模塊選擇里勾選Visual Studio Build Tools里面的C++ Build Tools
2、執(zhí)行pip安裝命令
pip install pyahocorasick
(若該方法安裝失敗,可嘗試CSDN中其他安裝方法)
ahocorasick使用:
若直接使用,會出現(xiàn)如下問題:

ahocorasick并沒有對數(shù)據(jù)進行補全的功能,若原數(shù)據(jù)對子數(shù)據(jù)有確實,無法進行補齊,如內(nèi)蒙古自治區(qū)——磴口縣與內(nèi)蒙古自治區(qū)——巴彥淖爾市——磴口縣。后者數(shù)據(jù)符合要求,可分級進行存儲,但前者地級市數(shù)據(jù)丟失。
解決方法:
1、僅將最后一級,如縣級市作為關(guān)鍵字,對關(guān)鍵字進行查找,若關(guān)鍵詞存在,通過關(guān)鍵詞數(shù)據(jù)集向上補齊地級市與省份關(guān)鍵字,若不存在,則定為空。
2、若縣級市關(guān)鍵詞不存在,則將其縣級市位置信息定為空,再將非空數(shù)據(jù)進行標(biāo)記。
3、僅將地級市作為關(guān)鍵字,對具有標(biāo)記的數(shù)據(jù)進行關(guān)鍵字查找,查找后再向上進行補齊。
4、以此類推,將其余省份信息進行補齊
該方法可參考,但不推薦,較為麻煩,且具有隱患。
三、方法一:調(diào)用cpca庫
1、安裝cpca庫
pip指令執(zhí)行:
pip install cpca
2、cpca庫使用方法
import cpca information=['內(nèi)蒙古自治區(qū)呼倫貝爾市牙克石市民生B區(qū)','賽罕區(qū)大學(xué)西路街道內(nèi)蒙古大學(xué)','回民區(qū)北二環(huán)路內(nèi)蒙古財經(jīng)大學(xué)','北京海淀區(qū)','河北深州市' ] s=cpca.transform(information) print(s)
3、執(zhí)行結(jié)果

注:cpca第三方庫只會精確到縣級市,縣級市后均為地址
總結(jié)
到此這篇關(guān)于Python實現(xiàn)數(shù)據(jù)地址實體抽取的文章就介紹到這了,更多相關(guān)Python地址實體抽取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過Py2exe將自己的python程序打包成.exe/.app的方法
這篇文章主要介紹了通過Py2exe將自己的python程序打包成.exe/.app的方法,需要的朋友可以參考下2018-05-05
python生成器/yield協(xié)程/gevent寫簡單的圖片下載器功能示例
這篇文章主要介紹了python生成器/yield協(xié)程/gevent寫簡單的圖片下載器功能,結(jié)合實例形式分析了python生成器、yield協(xié)程與gevent圖片下載器相關(guān)功能定義與使用技巧,需要的朋友可以參考下2019-10-10
python發(fā)送郵件示例(支持中文郵件標(biāo)題)
python發(fā)送中文郵件示例,支持中文郵件標(biāo)題和中文郵件內(nèi)容。支持多附件。根據(jù)用戶名推測郵件服務(wù)器提供商2014-02-02
python神經(jīng)網(wǎng)絡(luò)Batch?Normalization底層原理詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Batch?Normalization底層原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05

