组块(chunk)简介
组块这一概念最早由Steven Abney在Parsing by chunks一文中提出。
CoNLL-2000正式把组块分析作为共享任务,把组块定义为:句子是由一些短语构成,而每一个短语内是由句法相关的词构成,这些短语彼此不重叠、无交集,不含嵌套关系。
国内组块分析现状
荷兰蒂尔堡大学的Sabine Buchholz开发了机器自动程序Chunklink,对宾州大学英文句法分析树库(Upenn English Treebank)进行组块数据自动抽取,生成出一个大规模的英语组块语料库,为英语组块分析方法提供了一个统一的训练和测试语料库。
国内学者仿照英文组块的概念,提出对汉语进行组块分析。目前,对于汉语组块的研究并不完备,还没有一个对汉语组块的标准定义,也没有统一的训练和测试语料库。研究者根据自己的研究目的提出了各自的组块定义,并各自生成了自己的汉语组块语料库。这些语料库大多不公开,无法获取。
获取汉语组块语料库
我的毕业设计题目是《基于深度学习的汉语组块分析研究》。为此我查阅资料,发现了一种获取汉语组块语料库的方法。
1、CTB(宾州中文树库)简介及获取方法
首先需要获取CTB(宾州中文树库)。
CTB建设开始于1998年,目的是为了建立一个具有句法标记的中文句法语料库。该树库是经过自动分词、词性标注和句法标注的精加工文本,为从中抽取组块提供了方便。对于该语料的切分、词性标注和句法标注都形成了一个完整的规范。语料库中每一个语句都形成了一个以词语为叶子节点,以整句为根的树状图。
CTB是收费的,并且在不断更新。几个老版本的获取地址:
CTB2.0:Chinese Treebank 2.0 - Linguistic Data Consortium
CTB4.0:Chinese Treebank 4.0 - Linguistic Data Consortium
CTB5.0:Chinese Treebank 5.0 - Linguistic Data Consortium
CTB6.0:Chinese Treebank 6.0 - Linguistic Data Consortium
我使用的是CTB7.0,是从研究组学长那里要到的。
data中包括bracketed(句法标注)、postagged(POS词性标注)、segmented(分词)、raw四个文件夹。
bracketed包含文件:
chtb_0001.nw~chtb_0325.nw(.nw代表来源于newswire)
chtb_0400.nw~chtb_0454.nw
chtb_0500.nw~chtb_0554.nw
chtb_0590.nw~chtb_0596.nw
chtb_0600.nw~chtb_0885.nw
chtb_0900.nw~chtb_0931.nw
chtb_1001.mz~chtb_1078.mz(.mz代表来源于magazine articles)
chtb_1100.mz~chtb_1151.mz
chtb_2000.bn~chtb_3145.bn(.bn代表来源于broadcast news)
chtb_4000.nw~chtb_4050.nw
chtb_4051.bn~chtb_4111.bn
chtb_4112.bc~chtb_4197.bc(.bc代表来源于broadcast conversations)
chtb_4198.wb~chtb_4411.wb(.wb代表来源于weblogs)
2、使用ChunkLinkCTB处理CTB
ChunkLinkCTB是从CTB中抽取汉语组块的工具,运行在Perl环境下,由Wenliang Chen, Yujie Zhang, Hitoshi Isahara开发。他们定义了12种组块类型,具体见文献An Empirical Study of Chinese Chunking。他们使用该工具构建汉语组块语料库,并进行了汉语组块识别研究。
ChunkLinkCTB下载地址:GitHub - rainarch/ChunkLinkCTB: A tool for extracting chunks from Penn Chinese Treebank
安装Perl环境
ChunkLinkCTB运行在Perl环境下,所以我们需要先安装Perl。
Perl下载地址:Perl Download - www.perl.org
我选择的是Windows10环境下StrawBerry版本,按照安装程序步骤直接下一步即可(可以改变安装路径,但貌似只能安装在每个盘的根目录下。我选择D:\Program\StrawBerry报错,直接选择D:\StrawBerry就可以了......我也不知道为什么)。
安装完成后在cmd中输入perl -v,产生如图输出则安装成功。
使用ChunkLinkCTB
首先打开cmd,进入需要提取的CTB文件所在的路径(我将chtb_0001.nw直接放到了E:/,所以下面截图中的路径都是E:/)。
输入perl chunklinkctb.pl,会提示操作命令:
随意输入一个命令,会报错:Can't locate getopts.pl in @INC
这是由于perl从5.16开始,移除了getopts.pl。我们需要做的是安装Perl4::CoreLibs这个模块。
可以使用cpan来安装。在cmd输入cpan,进入cpan环境:
输入install Perl4::CoreLibs,cpan就会开始自动安装Perl4::CoreLibs这个模块了。
安装完成后,输入exit退出cpan。
输入perl chunklinkctb.pl -fhHct chtb_0001.nw > tree.chunk,意思是将句法树文件chtb_0001.nw提取为组块文件tree.chunk。
得到组块语料的内容:
每一列分别是:文章id 句子id 词id IOB组块标注 POS词性标注 词