DQinYuan / chinese_province_city_area_mapper

一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块
MIT License
1.67k stars 396 forks source link

没有地址的情况,还是会有分词 #18

Closed lovingers closed 5 years ago

lovingers commented 5 years ago

请问,在我正常输入没有地址的情况下,怎么才能过滤掉还是被分出来的内容?

DQinYuan commented 5 years ago

“还是被分出来”是什么意思?能举个例子吗?

lovingers commented 5 years ago

WOW! 效率真高👍! 我们这个既然是针对地址分词,能避免在没有地址的情况下,不进行分词,或者不进行返回吗?

lovingers commented 5 years ago

比如: 我输入 :["今天我去吃好吃的"],那么返回的还是 df["地址"] = "今天我去吃好吃的",这种情况能否不返回呢?

lovingers commented 5 years ago

还有个问题是:如果地址包含在文本中,就提取不了吗?

DQinYuan commented 5 years ago

提取的了,我会全文匹配的,即使包含在文本中也可以提取。

对于 "今天我去吃好吃的"这种情况,你稍微处理一下返回的dataframe就行了。

from cpca import *

df = transform(["今天去吃饭", "思明区望海路"])
filtered =  df[(df["省"] != "") | (df["市"] != "") | (df["区"] != "")]
lovingers commented 5 years ago

没有诶,刚刚我进行测试,比如输入一段话,“请明天上午到办公室进行生日聚会。 在毕节市”,这里的毕节市识别不出来

DQinYuan commented 5 years ago
from cpca import *
transform(["请明天上午到办公室进行生日聚会。 在毕节市"])

运行结果:

     区     市    省                  地址
0  毕节市  毕节地区  贵州省  请明天上午到办公室进行生日聚会。 在

我在自己电脑上试了一下没问题,你试试呢?

lovingers commented 5 years ago
location_str = ["11月15日早上9点到11月18日下班前王大猫。在观山湖区"]
from cpca import *

df = transform(location_str,cut=False)

运行结果:

  区 市 省                             地址
0        11月15日早上9点到11月18日下班前王大猫。在观山湖区

其实对于这里,我希望提取这个“观山湖区”,这个区是属于贵阳市,这种方式貌似不行的哈,但对于某个市、某个区应该是可以的

lovingers commented 5 years ago
location_str = ["11月15日早上9点到11月18日下班前王大猫。在贵阳市观山湖区"]
from cpca import *

myumap = {'观山湖区': '贵阳市'}

df = transform(location_str,myumap)

print(df)

运行结果:

  区    市    省                             地址
0    贵阳市  贵州省  11月15日早上9点到11月18日下班前王大猫。在观山湖区
lovingers commented 5 years ago

如果只有单纯的区域,没有市县,是不行的哈

DQinYuan commented 5 years ago

你之前那个例子使用cut=False参数可以解决

import cpca
cpca.transform(["11月15日早上9点到11月18日下班前王大猫。在观山湖区"], cut=False)

输出:

     省         市         区              地址
0  贵州省  贵阳市  观山湖区  11月15日早上9点到11月18日下班前王大猫。在观山湖区