python绘制省界 市区范围,python画出省级地图
在做NLP(自然语言处理)相关的任务时,经常会遇到需要识别和提取省、市、行政区的情况。今天,我想向大家介绍一个模块。你只需要把字符串传递给这个模块,他就可以把这个字符串中的省市区关键词返回给你。快来学吧。
00-1010 1.准备2。基本使用3。高级使用在做NLP(自然语言处理)相关的任务时,我们经常会遇到需要识别和提取省、市、行政区的情况。虽然我们可以通过逐个搜索关键词表来达到提取的目的,但是需要先收集各省市的关键词表,相对比较繁琐。
今天,我想向大家介绍一个模块。你只需要把字符串传递给这个模块,他就可以把这个字符串中的省市区关键词返回给你,并在图片上给你标注出来。这是Cpca模块。
目录
在开始之前,您应该确保Python和pip已经成功安装在您的计算机上。如果没有,可以访问这篇文章:超详细的Python安装指南进行安装。
(可选1),如果使用Python进行数据分析,可以直接安装Anaconda,它内置了Python和pip。
(可选2):另外,我们推荐你使用VSCode编辑器,它有很多优点。
请选择以下任一种方式输入命令安装依赖:
1.在windows环境下打开Cmd(开始-运行-CMD)。
2.在Mac OS环境下打开终端(进入终端(命令空间)。
3.如果使用的是VSCode Editor或者Pycharm,可以直接使用界面底部的终端。
pipinstallcpca
注意,目前cpca模块只支持Python3及以上版本。
在windows上,可能会出现如下问题:
构建wheeleforyahocorasick(setup . py).错误
阅读原文下载微软Visual C Build工具,安装VC build工具,然后重新安装CPCA即可解决问题。
1.准备
最基本的省市抽取可以通过两行代码实现:
#微信官方账号: Python实用合集
# 2022/06/23
importcpca
location_str=[
广东省深圳市福田区巴丁街深南中路1025号新城大厦一楼,
特斯拉Giga Shanghai是特斯拉在美国以外的第一家超级工厂,位于中华人民共和国上海。
三星堆遗址位于中国四川省广汉市西部三星堆镇鸭河上,属于青铜时代文化遗址
]
df=cpca.transform(location_str)
打印(df)
效果如下:
城市地址广告代码
广东省深圳市福田区巴丁街深南中路1025号新城大厦一楼440304室
1上海一个都没有。310000
2四川省德阳市广汉城西三星堆镇鸭河,属于青铜时代文化遗址510681。
第三条关注广汉市。cpca不仅在声明中承认广汉市为县级市,还自动匹配其代管城市德阳市。不得不说很厉害。
如果想知道程序从字符串中提取省市名称的位置,可以添加一个pos_sensitive=True参数3360。
#微信官方账号: Python实用合集
# 2022/06/23
importcpca
location_str=[
广东省深圳市福田区巴丁街深南中路1025号新城大厦一楼,
特斯拉Giga Shanghai是特斯拉在美国以外的第一家超级工厂,位于中华人民共和国上海。
三星堆遗址位于中国四川省广汉市西部三星堆镇鸭河岸边,属于青铜时代文化遗址
]
df=cpca.transform(location_str,pos_sensitive=True)
打印(df)
效果如下:
(base)g : \ push \ 20220623 pythonbsp
;1.py
省 市 区 地址 adcode 省_pos 市_pos 区_pos
0广东省 深圳市 福田区 巴丁街深南中路1025号新城大厦1层440304036
1上海市 None None 。31000038-1-1
2四川省 德阳市 广汉市 城西三星堆镇的鸭子河畔,属青铜时代文化遗址5106819-112
它标记出了识别到省、市、区的关键位置(index),当然如果是德阳市这种特殊的识别会被标记为-1.
3.高级使用
它还可以从大段文本中批量识别多个地区:
# 公众号: Python 实用宝典# 2022/06/23
import cpca
long_text = "对一个城市的评价总会包含个人的感情。如果你喜欢一个城市,很有可能是喜欢彼时彼地的自己。"\
"在广州、香港读过书,工作过,在深圳买过房、短暂生活过,去北京出了几次差。"\
"想重点比较一下广州、深圳和香港,顺带说一下北京。总的来说,觉得广州舒适、"\
"香港精致、深圳年轻气氛好、北京大气又粗糙。答主目前选择了广州。"
df = cpca.transform_text_with_addrs(long_text, pos_sensitive=True)
print(df)
效果如下:
(base) G:\push\20220623>python1.py
省 市 区 地址 adcode 省_pos 市_pos 区_pos
0广东省 广州市None440100-144-1
1香港特别行政区NoneNone81000047-1-1
2广东省 深圳市None440300-158-1
3北京市NoneNone11000071-1-1
4广东省 广州市None440100-186-1
5广东省 深圳市None440300-189-1
6香港特别行政区NoneNone81000092-1-1
7北京市NoneNone110000100-1-1
8广东省 广州市None440100-1110-1
9香港特别行政区NoneNone810000115-1-1
10广东省 深圳市None440300-1120-1
11北京市NoneNone110000128-1-1
12广东省 广州市None440100-1143-1
不仅如此,模块中还自带一些简单绘图工具,可以在地图上将上面输出的数据以热力图的形式画出来:
# 公众号: Python 实用宝典# 2022/06/23
import cpca
from cpca import drawer
long_text = "对一个城市的评价总会包含个人的感情。如果你喜欢一个城市,很有可能是喜欢彼时彼地的自己。"\
"在广州、香港读过书,工作过,在深圳买过房、短暂生活过,去北京出了几次差。"\
"想重点比较一下广州、深圳和香港,顺带说一下北京。总的来说,觉得广州舒适、"\
"香港精致、深圳年轻气氛好、北京大气又粗糙。答主目前选择了广州。"
df = cpca.transform_text_with_addrs(long_text, pos_sensitive=True)
drawer.draw_locations(df[cpca._ADCODE], "df.html")
运行的时候可能会报这个错:
(base) G:\push\20220623>python1.py
Traceback (most recentcalllast):
File"1.py",line12, in<module>
drawer.draw_locations(df[cpca._ADCODE],"df.html")
File"G:\Anaconda3\lib\site-packages\cpca\drawer.py",line41, in draw_locations
import folium
ModuleNotFoundError: No module named'folium'
使用pip安装即可:
pip install folium
然后重新运行代码,会在当前目录下生成 df.html, 双击打开,效果如下:
怎么用,是不是感觉非常方便?以后地点的识别用这个模块就完全够了。
还有更多的细节你可以访问这个项目的Github主页阅读,该项目的README完全中文编写,非常容易阅读:
到此这篇关于Python实现识别文字中的省市区并绘图的文章就介绍到这了,更多相关Python识别文字中省市区内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。