一個(gè)用于提取簡體中文字符串中省,市和區(qū)并能夠進(jìn)行映射,檢驗(yàn)和簡單繪圖的python模塊。
舉個(gè)例子:
["徐匯區(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的縮寫
如果覺得本模塊對你有用的話,施舍個(gè)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)換為一個(gè)DataFrame,下面演示一個(gè)最為簡單的使用方法:
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
如果你想獲知程序是從字符串的那個(gè)位置提取出省市區(qū)名的,可以添加一個(gè)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
從大段文本中提取多個(gè)地址(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ù)以熱力圖的形式畫出來.
這個(gè)工具依賴folium,為了減小本模塊的體積,所以并不會預(yù)裝這個(gè)依賴,在使用之前請使用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文章
216瀏覽量
22807 -
python
+關(guān)注
關(guān)注
55文章
4768瀏覽量
84376
發(fā)布評論請先 登錄
相關(guān)推薦
評論