【语言处理与Python】11.1语料库结构:一个案例研究\11.2语料库生命周期
TIMIT的结构
NLTK包括TIMIT语料库的一个样本,可以使用help(nltk.corpus.timit)访问他的文档;
nltk.corpus.timit.fileids()可以查看语料样本中160个录制的话语列表;
每个文件名如图所示:
TIMIT的结构如下:
基本数据类型
TIMIT语料库只包含两种基本数据类型:词典和文本。
语料库创建的三种方案
1、
语料库的一种类型是设计在创作者的探索过程中逐步展现。这是典型的传统“领域语言学”模式,即来自会话的材料在它被收集的时候就被分析,明天的想法往往基于今天的分析中产生的问题。
2、
另一种语料库创建方案是典型的实验研究,其中一些精心设计的材料被从一定范围的人类受试者中收集,然后进行分析来评估一个假设或开发一种技术。此类数据库在实验室或公司内被共享和重用已很常见,经常被更广泛的发布。
3、
最后,还有努力为一个特定的语言收集“参考语料”,如美国国家语料库(AmericanNational Corpus,ANC)和英国国家语料库(BritishNationalCorpus,BNC)。
质量控制
一个高质量的语料库的建立很大程度取决于文档、培训和工作流程等平凡的东西。
Kappa系数k测量两个人判断类别和修正预期的期望一致性的一致性。(详情参阅help(nltk.metrics.agreement))
我们还可以测量语言输入的两个独立分割的一致性,例如:分词、句子分割、命名实体识别。
我们可以使用windowdiff打分器:
>>>s1= "00000010000000001000000" >>>s2= "00000001000000010000000" >>>s3= "00010000000000000001000" >>>nltk.windowdiff(s1,s1, 3) 0 >>>nltk.windowdiff(s1,s2, 3) 4 >>>nltk.windowdiff(s2,s3, 3) 16
维护与演变
随着大型语料库的发布,研究人员立足于均衡的从为完全不同的目的而创建的语料库中派生出的子集进行调查的可能性越来越大。
除了选择语料库的适当的子集,这个新的工作可能包括重新格式化文本文件(如转换为XML),重命名文件,重新为文本分词,选择数据的一个子集来充实等等。
原始语料库的出版的一个中间过程是要有一个能识别其中任何一部分的规范。每个句子、树、或词条都有一个全局的唯一标识符,每个标识符、节点或字段(分别)都有一个相对偏移。标注,包括分割,可以使用规范的标识符(一个被称为对峙注释的方法)引用源材料。