dqinyuan / chinese_province_city_area_mapper Goto Github PK
View Code? Open in Web Editor NEW一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块
License: MIT License
一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块
License: MIT License
例如:大厂区凤北路22号,提示“无法映射,建议增加到umap中”,但province_area_map中原本就没有“大厂区”,所以无法增加映射
对于这种已经撤销的行政区划的提取,建议允许在umap中增加最新行政区划不存在的映射,或者有其他更好的办法?
如何关闭umap warning提示
例如: 地址字段 数据字段
地址1 数据1
地址2 数据2
地址3 数据3
请问如何在热力图中通过地址1,2,3将数据的权重反映到地址热力图中,谢谢
地址:内蒙古鄂尔多斯市乌审旗,
只在省和区显示了内蒙古和乌审旗,并没有显示鄂尔多斯市,看了源码也没有做特殊的限制。
from cpca import area_map
area_map.get_relational_addrs('南沙区')
[('广东省', '广州市', '南沙区')]
location_str = ["南沙区","南沙"]
df = cpca.transform(location_str)
WARNING:root: 无法映射, 建议添加进umap中
WARNING:root: 无法映射, 建议添加进umap中
(1)正确情况
import cpca
values = ['天津市滨海新区']
df = cpca.transform(values, umap={}, pos_sensitive=False, cut=False)
返回 结果为
省 市 区 地址
0 天津市 天津市 津市市 滨海新区
(2)错误情况
import cpca
values = ['天津市滨海区']
df = cpca.transform(values, umap={}, pos_sensitive=False, cut=False)
返回结果为
省 市 区 地址
0 天津市 天津市 津市市 滨海区
能不能把umap warning提示关闭啊?
请问我能够去除识别到的地址(第一个匹配到的词)之前的无效内容吗?
example:"我的地址是XXXXXXX",去除"我的地址是"这一块
各地划分的产业开发区、高新区(非行政区),匹配度不是很好
eg:杭州大江东产业集聚区临江高新区纬五路3688号科创园2幢四层
Prefix dict has been built succesfully.
省 市 区 地址 省_pos 市_pos 区_pos
5 浙江省 杭州市 临江市 大江东产业集聚区临江高新区纬五路3688号科创园2幢四层 -1 0 10
请问,在我正常输入没有地址的情况下,怎么才能过滤掉还是被分出来的内容?
地址不带“省、市、区”的也匹配不到
杭州经济技术开发区10号大街
还有路名给匹配到省的:
嘉兴市乍浦镇雅山东路126、128、130、132号 | 山东省 | 嘉兴市 |
{'省': '', '市': '', '区': '', '地址': '云南省楚雄彝族自治州得3434343'}
简写“吉林”被自动识别为“吉林市”,如何匹配到“吉林省”?
我在做地名解析过程中,偶尔遇见标题中提及的case,地名中街道里带个省份,这好像也是大家经常遇到的bug。
比如 "启东市**风情街" 会被识别为 "**省 南通市 启东市" (启东市在pca.csv
中标记为南通市下的一个区,这个没关系)
问题的出现原因是 "**风情街" 中的“**”被识别为一个合法的province
,**省
然后再根据 area
“启东市”,对 `city 进行补全,得到南通市
从而 bug occurs...
---------------------- 一个解决方案
在 _fill_province
中不论是否已有 pca.province
,都进行一次省市二元组的合法性检查。如果省份. 城市
没有在 pca.csv
中出现,则视为一个错误的分类结果。我们假设 pca.csv
是一个可靠的文档...
当上述问题出现时,舍弃现有的 pca.province
,重新进行补全。
我目前的实现方式是依赖了 cpca
预处理构造的 city_map
,如果 (pca.province, pca.city, "")
存在于 city_map[pca.city]
中,即为合法。
def _fill_province(pca):
"""填充省"""
# 下面的判定条件是新加的,city_map中的每一项都有area取空字符串的情形,因此取空字符串即可
if pca.city and (pca.province, pca.city, "") in city_map[pca.city]:
return
# 下面是原有的,移除了 pca.province 已存在的判定
if pca.city and (pca.city in city_map):
pca.province = city_map.get_value(pca.city, P)
顺便感谢一下作者的工作,cpca是一个很有用的库。由于我没有太深入阅读您的实现,可能写的方案有点粗暴。
如果我的 issue 能帮助改进cpca库,那将非常荣幸 O_O
第一次提 issue,不规范的地方多包涵
如题:类似 **生产建设兵团第八师一四七团 怎么匹配到 **生产建设兵团呢?
谢谢!
比如输入字符串 "内蒙古阿拉善盟阿拉善左旗巴彦浩特镇"
输出
省 市 区
0 None 阿拉善盟市 阿拉善左旗
桂林路369号,桂林被当成了市,街道地址只剩下路369号了
我使用了php调用python来处理地址,输出返回值时数据异常,也就是无法显示正确的省市区,但是我用python直接运行又是正常的,这是为什么
Python3和Python2的多继承的始化语句有所差异,因此在Python2下不能使用,建议修改下~
super().init() ==> super(ClassName, self).init()
如果没有省份信息, 有些地级市无法被识别(甚至有省份信息也无法识别), 例如 "河北秦皇岛", "江西景德镇", "四川六盘水".
强烈建议将transform函数最后一行pd.concat中ignore_index=True这个参数作为transforme的自定义参数,
让用户自己决定是否要输出原有的index。
大多数情况,我们需要相同的index以便对原有表格进行合并或者计算。
不知意下如何?
如标题所说,试了全文模式,如果地址里只有地级市名称,无法匹配出省,但如果有省名,则可以匹配。
后面能否加入国外的国家-城市对应关系?
原先地址是: 广东省东莞市莞城区东莞大道海雅百货
解析的结果是:
区 市 省 地址
城区 东莞市 广东省 莞大道海雅百货自然堂专柜
大神最近遇到一些地址套叠的情况,例如北京市东城区燕郊开发区,这里燕郊开发区是河北的,有木有什么办法可以解决这个问题。谢谢。
字符串中只要包含"合作"两个字,就给识别为成了:
甘肃省 甘南藏族自治州 合作市 共赢
都已经能识别出福建省,为啥不能识别出福州市,一个省下面的市不会重名把,这个明显的bug都解决不了,(就算一个省下面有相同的区,那也不至于所有省都会有把)
我拿这个地址试了一下:“**阿克苏地区阿克苏市实验林场二队”,只能把**识别出来,后面的阿克苏地区和阿克苏市虽然mappers里面都有写,但识别不出来,看了下可能是infrastructure.py里面fillProvince的问题,加了一行
if cls.province_country_mapper.get(word + "自治区"):
return word + "自治区", True
然后在mappers.py里的province_country_mapper加了
'**自治区':'**'
再跑就没问题了。
因为代码还没仔细研究过,不知道改的有没有问题,反正结果是对了。。
大佬有空可以看一下这个问题吗
查了CSV仓库和官网,贵安新区属于国家级新区,但行政区划竟然没有这个地方,贵安的所有地址都会无法匹配。。。
用pycharm运行时正常,用命令行运行时会报错找不到cpca这个模块
感觉需要相应的版本才能执行?
AttributeError: module 'pandas' has no attribute 'compat'
‘上海市浦东新区芳甸路’和‘罗湖宝岗路‘无法识别
如:兴安盟、锡林郭勒盟、阿拉善盟 无法解析到内蒙古,解析结果为空。
请问,报错cannot import name 'geo' from 'pyecharts'是echart版本问题吗?
我的echart是1.0版本
麻烦了!
杭州市下城区中河北路83号705室 | 河北省 | 杭州市 | 城区 | 下城区中河北路83号705室
杭州市上城区水门南弄3号锦绣工坊1号楼151室 | 浙江省 | 杭州市 | 城区 | 上城区水门南弄3号锦绣工坊1号楼151室
杭州市上城区西湖大道38号6号楼住院楼 | 浙江省 | 杭州市 | 城区 | 上城区西湖大道38号6号楼住院楼
如:万宁市万宁中学
解析结果:万宁市 万宁中学
期待结果:海南省 万宁市 万宁中学
--
因为没看代码逻辑,所以不清楚是什么问题
如:青海师范大学成都校区
解析结果:青海省 成都市 师范大学成都校区
试了百度只能获取国内地址的经纬度。google无法翻墙。
我发现对香港和澳门及**的匹配有些问题,同时我有对国外数据进行匹配的需求,我组建了自己的地址表,如何添加到此模块?
试了多遍都是这个情况,可能是bug,反馈一下。
from cpca import *
location_str = ["**","广西","宁夏","西藏"]
df = transform(location_str)
print(df)
输出:
区 市 省
0
1
2
3
chinese_province_city_area_mapper/cpca/__init__.py
Lines 212 to 214 in a7d39b6
某些准确度要求较高的情况下, 需要在三级行政区重名时给出ERROR而不是warning(或抛出Exception)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.