NLTK日文語料庫-以NLTK使用的日文語料庫

NLTK Japanese Corpora - NLTKで使える日本語コーパス


本文由邱郁婷編輯

本文摘自Masato Hagiwara個人部落格的〈NLTK Japanese Corpora - NLTKで使える日本語コーパス(NLTK日文語料庫-以NLTK使用的日文語料庫)〉,由邱郁婷統整後撰文。


文章摘要

所謂的NLTK即是Natural Language Toolkit,中文稱自然語言處理工具包,其可用於自然語言處理及文字探勘(Text Mining)的實驗與學習,然而現下還未包含大型日文語料庫,因此較難運用日文語言資源來嘗試實驗。為此,文章中介紹了2個可自由使用的日文語料庫以及其語料庫閱讀器(Corpus Reader),於閱讀器的輔助之下,便可透過統一介面輕鬆地使用語料庫,詳細介紹如下:

一、 KNB Corpus(Annotated blog corpus)/KNB語料庫(已加註之部落格語料庫)

(一) KNB語料庫介紹

KNB語料庫是附有日文標籤的部落格語料庫,其具有可再分配性(Redistributable),並由249篇文章、4,189句文句所組成。此語料庫中包含了詞法學(Mothology)、相依性(Dependency)、格、省略、照應以及評判資訊,不過現階段KNB語料庫僅支援詞法學及相依性,其餘功能尚未開放。

(二) 使用方法

基本的使用方法可參照原始檔案的demo()函數(demo() function)。首先,透過「nltk.data.find()」取得儲存文件的資料目錄(data directory),再將所有語料庫文件列為fileids。接著將fileids依數字序進行排序,並全數置入KNB語料庫閱讀器的建構子(Constructor)中,如此便可透過「fileids()」獲取所有fileids。

完成上述步驟後,便可開始使用語料庫。使用者可透過「words()」疊代所有單字,亦可運用「parsed_sents()」存取詞語相依性的樹狀圖,而樹狀圖的呈現可藉由KNB語料庫閱讀器建構子的morphs2str參數或直接存取morphs2str變數來自行定製。

二、 JEITA Public Morphologically Tagged Corpus(in ChaSen format)/JEITA詞素分析語料庫(ChaSen形式)

(一) JEITA詞素分析語料庫(ChaSen形式)簡介

JEITA詞素分析語料庫(ChaSen形式)是一針對「Project杉田玄白」及「青空文庫」之文本執行自動詞素分析的語料庫,並可供大眾免費使用。其原先以「JEITA詞素分析語料庫」中所發布之數據為基礎,然而其中所含之檔案皆已轉換成ChaSen規格,藉此使電腦程序的訪問更加容易。

(二) 使用方法

由於此語料庫之規格為「ChaSen」,因此可藉由ChaSen語料庫閱讀器讀取散佈於此的NLTK。

使用時,首先指定語料庫路徑及欲讀取之檔案名稱作為ChaSen語料庫閱讀器之對象,而建構子的第二參數則可指定複數檔案為一串列。ChaSen語料庫閱讀器的介面與一般標準的標記語料庫閱讀器(Tagged Corpus Reader)相同,包含了以下7項支援項目:

1. raw():將原始字串(Raw String)返回

2. words():單字串列

3. sents():語句串列

4. paras():段落串列

5. taggedwords():標記單字串列

6. taggedsent():標記語句串列

7. tagged_paras():標記段落串列

值得注意的是,標記,即受taggedxxx所返回之元組(Tuple)第二要素,其自身即為元組,包含了讀數(Reading)、引理(Lemmas)、詞類1、詞類2以及其活用形(Katsuyou form,為日語動詞變化之型態)之元素。

雖然在預設值上,僅透過ChaSen所提供的“EOS”資訊進行語句的分割,不過使用者可藉由ChaSen語料庫閱讀器的建構子sent_splitter指定欲新增的語句切割函數。