組塊(chunk)簡介
組塊這一概念最早由Steven Abney在Parsing by chunks一文中提出。
CoNLL-2000正式把組塊分析作為共享任務,把組塊定義為:句子是由一些短語構成,而每一個短語內是由句法相關的詞構成,這些短語彼此不重疊、無交集,不含嵌套關系。
國內組塊分析現狀
荷蘭蒂爾堡大學的Sabine Buchholz開發(fā)了機器自動程序Chunklink,對賓州大學英文句法分析樹庫(Upenn English Treebank)進行組塊數據自動抽取,生成出一個大規(guī)模的英語組塊語料庫,為英語組塊分析方法提供了一個統一的訓練和測試語料庫。
國內學者仿照英文組塊的概念,提出對漢語進行組塊分析。目前,對于漢語組塊的研究并不完備,還沒有一個對漢語組塊的標準定義,也沒有統一的訓練和測試語料庫。研究者根據自己的研究目的提出了各自的組塊定義,并各自生成了自己的漢語組塊語料庫。這些語料庫大多不公開,無法獲取。
獲取漢語組塊語料庫
我的畢業(yè)設計題目是《基于深度學習的漢語組塊分析研究》。為此我查閱資料,發(fā)現了一種獲取漢語組塊語料庫的方法。
1、CTB(賓州中文樹庫)簡介及獲取方法
首先需要獲取CTB(賓州中文樹庫)。
CTB建設開始于1998年,目的是為了建立一個具有句法標記的中文句法語料庫。該樹庫是經過自動分詞、詞性標注和句法標注的精加工文本,為從中抽取組塊提供了方便。對于該語料的切分、詞性標注和句法標注都形成了一個完整的規(guī)范。語料庫中每一個語句都形成了一個以詞語為葉子節(jié)點,以整句為根的樹狀圖。
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環(huán)境下,由Wenliang Chen, Yujie Zhang, Hitoshi Isahara開發(fā)。他們定義了12種組塊類型,具體見文獻An Empirical Study of Chinese Chunking。他們使用該工具構建漢語組塊語料庫,并進行了漢語組塊識別研究。
ChunkLinkCTB下載地址:GitHub - rainarch/ChunkLinkCTB: A tool for extracting chunks from Penn Chinese Treebank
安裝Perl環(huán)境
ChunkLinkCTB運行在Perl環(huán)境下,所以我們需要先安裝Perl。
Perl下載地址:Perl Download - www.perl.org
我選擇的是Windows10環(huán)境下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環(huán)境:

輸入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詞性標注 ?? 詞