chinese_province_city_area_mapper icon indicating copy to clipboard operation
chinese_province_city_area_mapper copied to clipboard

关于道路地址中含省市名导致识别错误问题的简单解决方法

Open aoiy opened this issue 4 years ago • 3 comments

问题如issue67、69,当前版本中 ../cpca/init.py的253行添加一个条件即可,请 @DQinYuan 参考

for word in jieba.cut(addr):
    # 优先提取低级别行政区 (主要是为直辖市和特别行政区考虑)
    if word in area_map:
        _set_pca('area', word, area_map.get_full_name(word))
    elif word in city_map:
        if word in province_map:
            _set_pca('province', word, province_map[word])
        _set_pca('city', word, city_map.get_full_name(word))
    elif word in province_map:
        _set_pca('province', word, province_map[word])

aoiy avatar Oct 16 '20 03:10 aoiy

@aoiy 你上面的代码是针对使用jieba分词的情况,请问如果不使用jieba(cut=False)而使用全文解析(_full_text_extract),要怎么修改?

例如: addr_str = ‘黑龙江省安达市朝阳街168号’ df = cpca.transform([addr_str], pos_sensitive=True, cut=False, lookahead=8, open_warning=False) da = df.to_dict(orient='records') print('cpca: {}'.format(da))

[{'省': '黑龙江省', '市': '朝阳市', '区': '安达市', '地址': '街168号', '省_pos': 0, '市_pos': 7, '区_pos': 4}]

alexlausz avatar Nov 12 '20 07:11 alexlausz

@alexlausz 这个问题已经解决了,使用 pip install -U cpca 将 cpca 更新到最新版本就行了 。

>>> import cpca
>>> cpca.transform(["黑龙江省安达市朝阳街168号"])
      省    市    区       地址  adcode
0  黑龙江省  绥化市  安达市  朝阳街168号  231281

DQinYuan avatar Nov 12 '20 10:11 DQinYuan

@alexlausz 这个问题已经解决了,使用 pip install -U cpca 将 cpca 更新到最新版本就行了 。

>>> import cpca
>>> cpca.transform(["黑龙江省安达市朝阳街168号"])
      省    市    区       地址  adcode
0  黑龙江省  绥化市  安达市  朝阳街168号  231281

@DQinYuan 更新后果然可以了,非常感谢。

alexlausz avatar Nov 16 '20 07:11 alexlausz