一、工具介绍

1. 研发主体简介

国立台湾大学数位人文研究中心、资讯工程学系数位典藏与自动推论实验室规划,项洁教授主持,杜协昌博士设计开发。

2. 功能简介

figure 1

五个处理流程及相关工具

a.标记与编辑:命名实体识别、小说对话标记

b.转换文本格式:纯文本txt,表格xls/xlsx/csv,MARKUS、DocuXML互相转换

c.建库与重整:DocuXML建库/整合/段落筛选,元数据整合,相关数据库(CBETA、CTEXT、 KANRIPO)存取建库

d.探勘与分析:词夹子、度量衡转换、相关文件推荐、标记与词汇统计分析、文献集字频统计、文本风格分析

e.GIS与视觉化:文本地理资讯整合工具、DocuSky地理资讯工具、历史地名查询工具

3.资料库与相关数据库

资料库:本草经集注、DaoBudMed6D、《诸蕃志》地理资讯系统、《台湾乡镇区维基百科》地理资讯系统、历史自然灾异记录

相关数据库:CBETA、CTEXT、 KANRIPO、CBDB

二、实战目标

1. 用DocuSky做命名实体识别

2. 用DocuSky做文本风格分析

三、命名实体识别

一般来说,命名实体识别(Named Entity Recognition,NER)的任务就是识别出待处理文本中三大类(实体类、时间类和数字类)、七小类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。

当然,人文研究中涉及的实体往往不止这些,比如:官职、谥号、著作等等,对其的识别和标注都是命名实体识别任务。这种任务虽然在人文研究中是常识性的,但是对于计算机来说却是对文本进行理解的基础工作之一,因此命名实体识别往往是文本挖掘的一个基础任务。
从输入输出的角度来看,命名实体识别的任务就是讲纯文本的数据转换为命名实体标注后的数据。例如:

标注前:庆历四年春,滕子京谪守巴陵。

标注后:<Span EntityType = 'Particular year'>庆历四年</Span>春,<Span EntityType = 'PersonName'>滕子京</Span>谪守<Span EntityType = 'PlaceName'>巴陵郡</Span>。

那么我们如何使用DocuSky来实现我们的目标呢?以下介绍两种方法。

第一种,也是最常用的一种,是利用DocuSky所集成的MARKUS工具来实现MARKUS工具基于CBDB、CHGIS、DILA等数据库的人名、地名、时间等的数据,利用正则表达式对人名、地名、时间等进行自动标注,同时手动修改自动标记结果以及基于上传的关键词的标记。此外,还支持相关数据库的查询,如下图。

figure 2

由于MARKUS是基于数据库中的数据进行标记的,因此自动化程度很高,只需上传一个纯文本的文件并选择要标记的实体类型和要使用的数据库,即可生成并下载标记结果。(此处只介绍自动标记的步骤)
如下图,进入自动标记页面后,对实体类型和数据库进行选择,点击右下角的start markup按钮即可。

figure 3

等待标记完成即可见标记后的结果,不同的颜色代表不同类型的实体。

figure 5

此后,即可对导出文件进行下载(上面黑色条中export按钮),下载后是一个MARKUS格式的文件(此处用的文本与上图不一样),我们可以看到这和我们的目标结果是一致的。

figure 6

第二种,是利用DocuSky所提供的词夹子工具来实现.

既然MARKUS自动标记如此方便快捷,那么为什么还要使用词夹子工具呢?答案就是,因为MARKUS自动标记是基于数据库的,因此不在数据库中的词就标记不出来,这对于一些不常见的书籍或者虚拟的小说等进行实体标记的效果不是很好。那么我们就可以使用词夹子工具来灵活地进行我们想要的实体提取。

词夹子工具虽然比较耗时,但是有以下好处:

a.不需要基于数据库,可扩展性好

b.不需要对正则表达式等技术有深入了解,易学性强

c.提取过程有人的辨识和判断,提取准确度较高

那么,我们以《红楼梦》的部分章节为例,进行其中人名的提取。

a. 首先,我们需要一个种子词汇集,即当前已知的要提取的部分人名,这是用来生成词夹子的模具,此外还要定义词夹子两端的长度。

figure 7

此处,定义种子词汇为“黛玉”(也可以有多个种子词汇,词汇间空白或逗号隔开,种子词汇越多,之后提取的迭代次数越少),定义词夹子左端长2,右端长1。如果对这些参数的作用还不清楚,也没关系,在之后的演示中会清楚看到这些值得意义。此处我们点击确定来计算词夹。  

figure 8

 

figure 9

b. 从这里可以看到,使用种子词汇计算出了候选的词夹(即文中出现种子词汇的左右满足定义的词夹长度的“词夹”)。词夹的长度即,左边长度等于之前定义的左端长度(或可是段首),右边长度等于之前定义的右端长度(或可是段尾)。

其中符号对应如下含义

i. ┴ ~ 通配符

ii. ├  ~ 段首

此处点击候选词夹可查看其可能夹出的词汇,以确定其是否加入种子词夹集(即添加到右侧,参与下一轮的词夹子生成),此处我们分别查看“说林...自”和“将...挽”两个候选词夹,以此为例说明下词夹子的意义和操作。

我们可以看到“说林...自”只能夹出“黛玉”这个种子词汇,因此其夹词能力较差,可不加入种子词夹集。而后一个词夹“将...挽”除“黛玉”外还可以夹出“鸳鸯”这个新词汇,因此可以加入种子词夹集。

c. 点击确定计算种子词汇,通过使用“将...挽”这个种子词夹集来生成新一轮的种子词汇“黛玉”和“鸳鸯”,然后使用新的种子词汇进入新一轮的词夹子构造中。不断迭代,直到所有人名都被夹出来。

四、风格分析

风格分析是用来判断两个文本的写作风格相似度,通常可用来做作者鉴定。DocuSky提供了比较简易的风格分析工具,利用作者惯用词汇的概念,基于四种算法来对文本的风格相似度进行计算。

包括:(1)Yang's Rank-Frequency Distance(2)Tu's Term Frequency t-Test(3)Tu's Mining Function,以及(4)前后缀词分析

步骤:

1. 加入新文本(本地/DocuSky/粘贴,至少上传两个文本以便比较)

  2. 进行分析(选择分析方式和分析文本,并为分析方法设定参数)

以下是不同分析方法的结果

1. Yang's Rank-Frequency Distance

Rank-Frequency Distance使用“字频在文本间的排名差距”和“字频”计算两文本间的写作风格差异程度。使用者可以选定数份文件集进行分析,并计算任两单位之间的差距值

figure 10

                      

2. Tu's Term Frequency t-Test

使用者可以选定数份文件集进行分析,计算各文件集中文件字频或字比率的平均值,并对任两份文件集进行两样本T检验(Two Sample T-Test),结果会表列有显著差异的字数。本分析方式假定任两单位为变异数一致的两独立样本。     

figure 11

3. Tu's Mining Function

计算两文本的N-Gram章节出现率,并经由采矿公式计算后进行排序。章节出现率的差异越大会得到越前面的排序。     

figure 12

4. 前后缀词分析

找出符合条件的前后缀词,并提供依全文词频(term-frequency)的排序与文件频率(document-frequency)等资讯。

figure 13

分析结果中,对具体指标的解释还要参照相应的论文中对指标意义的说明。此处不再详述。

需要说明的是,DocuSky中提供的风格分析方法,都是比较简易而粗略的分析方法,只能作为初步的分析结果。做风格分析,尤其是用于作者鉴别时,通常采用机器学习中的分类方法(以SVM模型最为常用),相关学者已在此方面有很多探索,比如有学者使用SVM对《红楼梦》和《亨利八世》两本著作的作者的鉴定提供了量化的证据,尤其是对《亨利八世》的作者鉴定,其准确率非常之高,具有很高的可信度。其详情可参照“AI 插手!用文本分析鉴定《红楼梦》、《亨利八世》实际作者”。