21
Mapping and Geocoding Historical Chinese Placenames ——CBDB 工作报告 袁钰莹 2019.2.21

Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

Mapping and Geocoding

Historical Chinese Placenames

——CBDB 工作报告

袁钰莹

2019.2.21

Page 2: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

提纲

WorldMap

1350-1900年50年间隔的政区图

唐代地名的Geocoding

1)在线数据:TGAZ

2)本地数据:DDBC

3)现代地图:高德

其他辅助工作

1)郭书地名和CBDB的对比

2)全宋诗目录整理

Page 3: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

开始时间:1350年

截止时间:1900年+1911年

时间间隔:50年

数据来源:CHGIS V6

地图内容:府州级&县级行政单位分布县级(county):点府州级(prefecture):点&面

网页链接:http://worldmap.harvard.edu/ma

ps/chgis

一、WorldMap

Page 4: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

样例

Page 5: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

制图工具:QGIS

制图方法:1)下载CHGIS Version 6 的数据2)在QGIS中利用“属性表”(attribute

table)中的利用公式筛选功能,选出对应年份存在的行政区数据举例: "BEG_YR" <= 1350 and "END_YR" >= 1350

3)将选出的数据另存为shp文件4)在“属性”(Properties)中调整样式

QGIS的用途:制图空间分析打开编码问题的csv、txt、xls文件

Page 6: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

二、唐代地名Geocoding邢云唐代地名的地理坐标查补

Page 7: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

TGAZ(在线数据)

网址:http://maps.cga.harvard.edu/tgaz/

界面:

Page 8: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

TGAZ(在线数据)

举例:朔州

Page 9: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

TGAZ(在线数据)

特点:可以直接获得json或xml格式的文件——便于程序调用检索

举例:朔州-json

网址形式:http://maps.cga.harvard.edu/tgaz/placename?fmt

=json&n=朔州&yr=&ftyp=&src=

结果:

Page 10: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

TGAZ(在线数据)检索逻辑:

1)地名匹配

2)年份上有交叉或者是包含关系

3)只保留point类型的结果

储存信息:1)原始数据的信息

2)TGAZ中获得的数据

多个检索结果的保存——使用id_x的方式,显示是检索结果的第几条

开始年 结束年

时间轴

Page 11: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

DDBC(本地文件/数据) DDBC(Dharma Drum Buddhist College)——网址:http://authority.dila.edu.tw/place/

——法鼓文理學院

Page 12: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

DDBC(本地文件/数据)数据提取:从htm文件提取数据到csv

htm文件:

Page 13: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

DDBC(本地文件/数据)

提取数据到CSV文件

用Python和regex识别提取

1)语句的容错性

——举例:拼音、缺失内容

2)对同一栏目多个内容的区别(便于后续处理)

① 别名:字符格式,以 $分隔

——举例:於越$大越$越

② 引用位置和URL单独划行存放

3)批量处理,个别例外的修改调整

Page 14: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

DDBC(本地文件/数据)

经纬度获取

检索逻辑(类TGAZ)

① 年代筛选:只在DDBC唐代的数据中检索

② 名称对应:使用纯字符包含关系

——“地名”VS“地名”&“别名”

③ 从属关系(道)对比

结果保存

——形式类似TGAZ

Page 15: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

高德地图(现代地图)数据特点:现代地址的检索

前提:知道对应的现代地址

检索方式

1)结构化数据:国家-省-市-区县-街道号码

2)利用高德地图API,批量输入地址,获取

地址的经纬度信息

其他同类数据源

Google Map、百度地图等

Page 16: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

检索结果

TGAZ:1780

Page 17: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

检索结果

DDBC:1118

Page 18: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

检索结果

≥1054条无匹配

Page 19: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

三、辅助工作

1)唐代地名匹配(郭书 VS CBDB)

筛选逻辑:① 层级一致

② 名称匹配

③ 所属道相同

——“關內道”&“關内道”

④ 最佳年代匹配

——起止年相差的绝对值之和最小

人工判断、数据导入

2)全宋诗目录整理

使用regex对“册”、“卷”、“作者”、“诗题”进行分别标注

人工检查,修正错误

Page 20: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

总结文本录入规范化

①统一繁简体、编码(文件名注明GBK, UTF-8)

②英文大小写一致

③统一体例

举例:①多个别名用$区分;②无内容单元格,都空着

或都填blank——不影响文本含义&编程识别的符号

资料录入时标明data来源,便于反查

说明文件

——录入者对数据特殊之处/数据特点/数据格式的说明

——数据修正的记录

编程的使用

1)有逻辑性、重复性工作(regex)

2)大批量数据的分析:整体性分析、具体问题的辅助分析

Page 21: Mapping and Geocoding Historical Chinese Placenames...2019/02/21  · 用Python和regex识别提取 1)语句的容错性 ——举例:拼音、缺失内容 2)对同一栏目多个内容的区别(便于后续处理)

谢谢