问题:一条语句中含有地理信息,如:“泉州石化库内油罐起火爆炸”,怎么提取到省份?
问题:一条语句中含有地理信息,如:“泉州石化库内油罐起火爆炸”,怎么提取到省份?
解决方法
主要用到一个Python库--cpca,安装方法:pip install cpca
-
cpca具体用法参考--cpca
由于是需要批量处理,因此我也自己编写了一套代码。原始数据如下:
批量处理代码
import pandas as pd
import cpca
import os
import json
file_folder = './case'
excel_files = os.listdir(file_folder)
contents = []
for file in excel_files:
df = pd.read_excel((os.path.join(file_folder, file)),usecols=[0, 1], names=None)
df_list = df.values.tolist()
#print (df_list)
for item in df_list:
out_region = cpca.transform([item[0]])
out_region = out_region.values.tolist()
if out_region[0][0] is not None:
contents.append(
{'事件名称': item[0],
'类型': file[:-5],
'发生地': out_region[0][0],
'详情': item[1]
}
)
else:
contents.append(
{'事件名称': item[0],
'类型': file[:-5],
'发生地': '其他',
'详情': item[1]
}
)
new_contents = sorted(contents,key = lambda e:e.__getitem__('发生地'))
with open("./class.json","w",encoding="utf-8") as f:
json.dump(new_contents,f,indent=4,ensure_ascii=False)
文章评论