一個用于提取簡體中文字符串中省,市和區(qū)并能夠進行映射,檢驗和簡單繪圖的python模塊。
舉個例子:
["徐匯區(qū)虹漕路461號58號樓5樓", "泉州市洛江區(qū)萬安塘西工業(yè)區(qū)"]
↓ 轉(zhuǎn)換
|省 |市 |區(qū) |地址 |
|上海市|上海市|徐匯區(qū)|虹漕路461號58號樓5樓 |
|福建省|泉州市|洛江區(qū)|萬安塘西工業(yè)區(qū) |
注:“地址”列代表去除了省市區(qū)之后的具體地址
也可以將大段文本中所有提到的地址提取出來,并且自動將相鄰的存在所屬關(guān)系的地址歸并到一條記錄中(0.5.5版本新功能):
"分店位于徐匯區(qū)虹漕路461號58號樓5樓和泉州市洛江區(qū)萬安塘西工業(yè)區(qū)以及南京鼓樓區(qū)"
↓ 轉(zhuǎn)換
|省 |市 |區(qū) |
|上海市|上海市|徐匯區(qū)|
|福建省|泉州市|洛江區(qū)|
|江蘇省|南京市|鼓樓區(qū)|
代碼目前僅僅支持python3
pip install cpca
注:cpca是chinese province city area的縮寫
如果覺得本模塊對你有用的話,施舍個star,謝謝。
常見安裝問題:
在 windows 上可能會出現(xiàn)類似如下問題
Building wheel for pyahocorasick (setup.py) ... error
先去下載 Microsoft Visual C++ Build Tools, 安裝完成后,再重新使用 pip install cpca 安裝,即可解決問題
開始使用
本模塊中最主要的方法是cpca.transform,該方法可以輸入任意的可迭代類型(如list,pandas的Series類型等),然后將其轉(zhuǎn)換為一個DataFrame,下面演示一個最為簡單的使用方法:
location_str = ["徐匯區(qū)虹漕路461號58號樓5樓", "泉州市洛江區(qū)萬安塘西工業(yè)區(qū)", "北京朝陽區(qū)北苑華貿(mào)城"]
import cpca
df = cpca.transform(location_str)
df
輸出的結(jié)果為(adcode為官方地址編碼):
省 市 區(qū) 地址 adcode
0 上海市 上海市 徐匯區(qū) 虹漕路461號58號樓5樓 310104
1 福建省 泉州市 洛江區(qū) 萬安塘西工業(yè)區(qū) 350504
2 北京市 市轄區(qū) 朝陽區(qū) 北苑華貿(mào)城 110105
如果你想獲知程序是從字符串的那個位置提取出省市區(qū)名的,可以添加一個pos_sensitive=True參數(shù):
location_str = ["徐匯區(qū)虹漕路461號58號樓5樓", "泉州市洛江區(qū)萬安塘西工業(yè)區(qū)", "北京朝陽區(qū)北苑華貿(mào)城"]
import cpca
df = cpca.transform(location_str, pos_sensitive=True)
df
輸出如下:
省 市 區(qū) 地址 adcode 省_pos 市_pos 區(qū)_pos
0 上海市 上海市 徐匯區(qū) 虹漕路461號58號樓5樓 310104 -1 -1 0
1 福建省 泉州市 洛江區(qū) 萬安塘西工業(yè)區(qū) 350504 -1 0 3
2 北京市 市轄區(qū) 朝陽區(qū) 北苑華貿(mào)城 110105 -1 -1 0
從大段文本中提取多個地址(0.5.5版本新功能):
import cpca
df = cpca.transform_text_with_addrs("分店位于徐匯區(qū)虹漕路461號58號樓5樓和泉州市洛江區(qū)萬安塘西工業(yè)區(qū)以及南京鼓樓區(qū)")
df
結(jié)果為(注意 transform_text_with_addrs 獲得的數(shù)據(jù),“地址”列都是空的):
省 市 區(qū) 地址 adcode
0 上海市 市轄區(qū) 徐匯區(qū) 310104
1 福建省 泉州市 洛江區(qū) 350504
2 江蘇省 南京市 鼓樓區(qū) 320106
transform_text_with_addrs 還支持和 transform 類似的 index, pos_sensitive 以及 umap 參數(shù)
繪圖:
模塊中還自帶一些簡單繪圖工具,可以在地圖上將上面輸出的數(shù)據(jù)以熱力圖的形式畫出來.
這個工具依賴folium,為了減小本模塊的體積,所以并不會預(yù)裝這個依賴,在使用之前請使用pip install folium .
代碼如下:
import cpca
from cpca import drawer
df = cpca.transform_text_with_addrs("分店位于徐匯區(qū)虹漕路461號58號樓5樓和泉州市洛江區(qū)萬安塘西工業(yè)區(qū)以及南京鼓樓區(qū)")
drawer.draw_locations(df[cpca._ADCODE], "df.html")

審核編輯 黃昊宇
-
自動識別
+關(guān)注
關(guān)注
3文章
234瀏覽量
23953 -
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90049
發(fā)布評論請先 登錄
如何使用Python讀取不間斷數(shù)據(jù),并將其傳輸?shù)絃abVIEW進行處理?
AIDC:自動識別數(shù)據(jù)的未來趨勢與算力基石的雙重演進
沒有專利的opencv-python 版本
新大陸自動識別馬來西亞智造基地順利量產(chǎn)
新大陸自動識別亮相2025中國國際工業(yè)博覽會
【EASY EAI Orin Nano開發(fā)板試用體驗】PP-OCRV5文字識別實例搭建與移植
基于LockAI視覺識別模塊:手寫數(shù)字識別
揭秘單裝自動識別銘牌:基于RFID的毫秒級非接觸群讀如何革新大型裝備管理
工信部電子信息司領(lǐng)導(dǎo)蒞臨行芯科技調(diào)研
新大陸自動識別亮相印尼市場行業(yè)盛會
新大陸自動識別2025印度合作伙伴大會成功舉辦
rfid技術(shù)是如何應(yīng)用在集裝箱自動識別的呢?
火車車號自動識別系統(tǒng)如何應(yīng)對夜間識別難題?
Python pacp模塊:自動識別文字中的省市區(qū)并將其繪圖
評論