0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python pacp模塊:自動識別文字中的省市區(qū)并將其繪圖

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-06-27 17:19 ? 次閱讀

一個(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")

繪圖展示

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 自動識別
    +關(guān)注

    關(guān)注

    3

    文章

    216

    瀏覽量

    22807
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4768

    瀏覽量

    84376
收藏 人收藏

    評論

    相關(guān)推薦

    MCU串口自動識別波特率原理分析

    現(xiàn)在的單片機(jī)資源越來越豐富了,其中我們常用的串口也是內(nèi)部集成了多個(gè),關(guān)鍵功能也越來越強(qiáng)了。 我們有些應(yīng)用可能會用到串口自動識別波特率,今天就來講講MCU串口自動識別波特率底層的常見的原理,以及MCU的案例。
    的頭像 發(fā)表于 10-23 16:12 ?252次閱讀
    MCU串口<b class='flag-5'>自動識別</b>波特率原理分析

    PCM9211的默認(rèn)模式下,ADC和RXIN2( 光纖輸入)是自動識別的嗎,并且光纖具有輸入優(yōu)先級?

    咨詢一下,PCM9211的默認(rèn)模式下,ADC和RXIN2( 光纖輸入)是自動識別的嗎,并且光纖具有輸入優(yōu)先級?
    發(fā)表于 09-29 06:44

    智能化升級:機(jī)載無人機(jī)攝像頭如何自動識別目標(biāo)?

    機(jī)載無人機(jī)攝像頭在智能化升級的過程,自動識別目標(biāo)的能力得到了顯著提升。這一過程涉及多個(gè)關(guān)鍵技術(shù)和算法,以下是關(guān)于機(jī)載無人機(jī)攝像頭如何自動識別目標(biāo)的詳細(xì)解析: 一、圖像采集與預(yù)處理 高清攝像頭
    的頭像 發(fā)表于 09-19 15:23 ?362次閱讀
    智能化升級:機(jī)載無人機(jī)攝像頭如何<b class='flag-5'>自動識別</b>目標(biāo)?

    光學(xué)識別字符是自動識別技術(shù)嗎

    光學(xué)識別字符(Optical Character Recognition,簡稱OCR)是一種自動識別技術(shù),它能夠?qū)⒏鞣N類型文檔(如掃描的紙質(zhì)文檔、PDF文件或數(shù)字相機(jī)拍攝的圖片)文字
    的頭像 發(fā)表于 09-10 15:43 ?323次閱讀

    水位自動識別攝像機(jī)

    隨著科技的不斷發(fā)展,水位自動識別攝像機(jī)作為一種智能技術(shù)產(chǎn)品,正在逐漸應(yīng)用于各種領(lǐng)域,為監(jiān)測水位提供了更加便捷、準(zhǔn)確的方法。這種攝像機(jī)可以自動識別水位的高低,實(shí)時(shí)監(jiān)測水域情況,為防洪排澇、水資源
    的頭像 發(fā)表于 07-31 10:34 ?302次閱讀
    水位<b class='flag-5'>自動識別</b>攝像機(jī)

    多光譜明火自動識別攝像機(jī)

    當(dāng)今社會,火災(zāi)事故頻發(fā),給人們的生命財(cái)產(chǎn)帶來了嚴(yán)重的危害。為了提高火災(zāi)預(yù)警和應(yīng)急處置的效率,多光譜明火自動識別攝像機(jī)應(yīng)運(yùn)而生。這種先進(jìn)技術(shù)結(jié)合了多光譜成像和人工智能技術(shù),可以實(shí)時(shí)監(jiān)測周圍環(huán)境并
    的頭像 發(fā)表于 07-27 15:24 ?263次閱讀
    多光譜明火<b class='flag-5'>自動識別</b>攝像機(jī)

    RFID軍標(biāo)單裝自動識別銘牌 - 提升效率首選

    RFID軍標(biāo)單裝自動識別銘牌標(biāo)簽是專為軍事領(lǐng)域設(shè)計(jì)的一款高規(guī)格、自動識別、及時(shí)反饋的設(shè)備,它主要采用RFID射頻識別技術(shù)的軍標(biāo)標(biāo)簽,具有卓越的安全性能和穩(wěn)定性。
    的頭像 發(fā)表于 06-19 15:10 ?459次閱讀
    RFID軍標(biāo)單裝<b class='flag-5'>自動識別</b>銘牌 - 提升效率首選

    自動識別水位預(yù)警攝像機(jī)

    自動識別水位預(yù)警攝像機(jī)是現(xiàn)代城市水域安全管理的重要組成部分。這種攝像機(jī)具有多項(xiàng)功能,使其在水位監(jiān)測和異常情況識別方面發(fā)揮關(guān)鍵作用。其高清攝像頭能夠捕捉水位變化的細(xì)節(jié),提供精確的監(jiān)控畫面。這意味著
    的頭像 發(fā)表于 06-07 10:47 ?432次閱讀
    <b class='flag-5'>自動識別</b>水位預(yù)警攝像機(jī)

    通道堵塞自動識別攝像機(jī)

    通道堵塞自動識別攝像機(jī)是一種利用先進(jìn)的人工智能和圖像識別技術(shù)來監(jiān)測和識別通道堵塞情況的裝置,廣泛應(yīng)用于交通管制、商場管理等領(lǐng)域。這項(xiàng)技術(shù)的出現(xiàn)極大地提高了通道管理的效率和準(zhǔn)確性,為改善人們的出行
    的頭像 發(fā)表于 06-05 10:54 ?281次閱讀
    通道堵塞<b class='flag-5'>自動識別</b>攝像機(jī)

    護(hù)目鏡佩戴自動識別預(yù)警攝像機(jī)

    護(hù)目鏡佩戴自動識別預(yù)警攝像機(jī)是一種智能監(jiān)測設(shè)備,專門用于佩戴護(hù)目鏡的工人進(jìn)行作業(yè)時(shí),能夠自動識別有潛在風(fēng)險(xiǎn)的場景,并及時(shí)發(fā)出預(yù)警信號。該攝像機(jī)配備人臉識別和智能預(yù)警系統(tǒng),可以檢測危險(xiǎn)情況并為工人提供
    的頭像 發(fā)表于 05-24 10:08 ?491次閱讀
    護(hù)目鏡佩戴<b class='flag-5'>自動識別</b>預(yù)警攝像機(jī)

    如何使用Python進(jìn)行圖像識別自動學(xué)習(xí)自動訓(xùn)練?

    如何使用Python進(jìn)行圖像識別自動學(xué)習(xí)自動訓(xùn)練? 使用Python進(jìn)行圖像識別
    的頭像 發(fā)表于 01-12 16:06 ?523次閱讀

    如何使用Python編寫腳本來自動發(fā)送郵件

    發(fā)送電子郵件,我們需要使用smtplib和email模塊。smtplib模塊Python標(biāo)準(zhǔn)庫的一部分,用于發(fā)送電子郵件。email模塊
    的頭像 發(fā)表于 12-07 11:36 ?1280次閱讀

    數(shù)電票試點(diǎn)擴(kuò)圍至36個(gè)省市區(qū) 百望云解決方案助力企業(yè)數(shù)電升級

    省市區(qū)(含計(jì)劃單列市)已全面開展數(shù)電票試點(diǎn)。 對于企業(yè)而言,這是一次系統(tǒng)升級的最好契機(jī)。 一方面,數(shù)電票的開票試點(diǎn)和用票試點(diǎn)已在36個(gè)省市區(qū)全面推廣,這使多數(shù)企業(yè)無須再顧慮各地試點(diǎn)步調(diào)不一致的問題,盡快上線數(shù)電票系統(tǒng),就能盡早享受
    的頭像 發(fā)表于 11-29 17:45 ?484次閱讀
    數(shù)電票試點(diǎn)擴(kuò)圍至36個(gè)<b class='flag-5'>省市區(qū)</b> 百望云解決方案助力企業(yè)數(shù)電升級

    python如何導(dǎo)入模塊

    Python是一種強(qiáng)大的編程語言,它支持模塊化編程,使得開發(fā)者可以將代碼分解為可重用且獨(dú)立的模塊。模塊是一個(gè)包含函數(shù)、類和變量等定義的文件,我們可以使用import語句將這些
    的頭像 發(fā)表于 11-22 14:46 ?876次閱讀

    python調(diào)用math函數(shù)的方法

    。本文將詳細(xì)介紹math模塊的各種數(shù)學(xué)函數(shù)的調(diào)用方法,包括函數(shù)的功能、參數(shù)的使用和返回值的含義等方面,以幫助讀者更好地理解和應(yīng)用這些函數(shù)。 一、導(dǎo)入math模塊 要使用math
    的頭像 發(fā)表于 11-22 11:01 ?2685次閱讀