アラビア語のルールベース形態素解析ライブラリ

以前、iPhoneアラビア語辞書を作成しようとした時に、アラビア語形態素解析ライブラリを調査したのでその時の知見を簡単にまとめておきます。
 
Xerox社の技術者であるTim Buckwalter氏が公開している Arabic Morphological Analyzer (以下AMA) です。AraMorph.pl というファイルが本体で、2種6件の辞書ファイルを読み込んで動作します。ただし、入力ファイルエンコーディングcp1256でなければならないという変な仕様です。Jave, JavaScript他、スクリプト言語にもライブラリが移植されているので、実用的には別の言語版を使うのが良いと思います。(単純なアルゴリズムなので辞書データのフォーマットさえ分かれば移植は容易です)
 
AMAで使用されるファイルは2種類あり、1種が語彙辞書ファイル、もう1種類が接頭辞、語幹、接尾辞の正しい組み合わせを表現するテーブルです。

語彙辞書ファイル

まず、語彙辞書ファイルは “dictprefix.txt", “dictstem.txt", “dictsuffix.txt” の3つが存在し、それぞれが接頭辞、語幹、接尾辞を表現しています。なお、通常のアラビア語辞書では語幹(stem)ではなく語根(root)で語彙を分類しますが、このライブラリの辞書では語幹、つまり接中辞 (transfix) を含み、屈折や派生形で変化した形によって語彙を分類しています。
 
語彙辞書ファイルのそれぞれの行は、「見出し」、「母音ありのアラビア語綴り」、「文法的分類」、「語の意味」がタブ区切りで表わされています。(; で始まる行はコメント行)たとえば、ktb (كتب) のエントリは以下のようになっています。
;--- ktb
;; katab-u_1
ktb     katab     PV     write
ktb     kotub     IV     write
ktb     kutib     PV_Pass     be written;be fated;be destined
ktb     kotab     IV_Pass_yu     be written;be fated;be destined

なお、接頭辞の辞書においては、単独の接頭辞 ( ف، و ) などだけではなく、正しい接頭辞の組み合わせ (فال، وال) などの形でも記載されています。

組み合わせテーブル

組み合わせテーブルファイルは、”tableab.txt”, “tableac.txt”, “tablebc.txt” の3つ存在しています。それぞれが順に「接頭辞と語幹」、「接頭辞と接尾辞」、「語幹と接尾辞」の正しい組み合わせを表現するテーブルです。
テーブルファイルの中身は以下の通りになっており、辞書ファイルにおける3番目の「文法的分類」の正しい組み合わせがスペース区切りで記載されています。
NPref-BiAl N
NPref-BiAl N-ap
NPref-BiAl N-ap_L
NPref-BiAl N/At
(正直なところ、文法的分類の各項目が何を指しているのかはあまり分かりません。)

アルゴリズム

AMAのアルゴリズムは比較的単純です。アルゴリズムでは、アラビア語の単語について以下の仮定が置かれています。
 
  • アラビア語の単語は、接頭辞、語幹、接尾辞からなる
  • 接頭辞は0〜4文字である
  • 語幹は1〜無限個の文字である
  • 接尾辞は0〜6文字である
このルールに従い、与えられた文字列を接頭辞、語幹、接尾辞の3つに分割します。部分文字列を、それぞれの辞書語彙ファイルで検索します。3つの辞書全てにおいて、接頭辞、語幹、接尾辞が発見された場合、その分割は正しい解釈の候補となります。
 
次に、発見された接頭辞、語幹、接尾辞の組み合わせが、文法的に適切であるか否かを、組み合わせテーブルを用いて確認します。接頭辞、語幹、接尾辞の部分文字列の文法的分類が、”tableab.txt”, “tableac.txt”, “tablebc.txt” に正しい組み合わせとして記載されている場合は、入力の部分文字列の組み合わせは適切な分割であることが分かります。

以前iPhoneアラビア語辞書を作りかけた時の例。いちおうكتب (KTB)と入力すると、KaTaBa (彼/それは書いた)、KuTiBa (彼/それは書かれた)、KuTuBun (本(複数形)) が検索できることが分かる。
 

f:id:tencube:20170608013314p:plain

 
UIを作り込んでリリースしたいですが إن شاء الله

Hans Wehrのアラビア語辞書について知っておいたほうが良いこと

 ハンスヴェーアという愛称で呼ばれているこの亜英辞書「現代文語アラビア語辞典」は、日本中のみならずおそらく世界中のアラビア語学習者に使われていると言っても過言ではないほど広く普及した辞書です。日本で出版されている英和辞書などの品質と比べると、決して「最高の」辞書ではありませんが、しかしこれを超えるアラビア語辞書は存在しません。この辞書が無ければアラビア語の学習は不可能ですし、現代アラビア語のみならず古典の語彙もある程度カバーできます。

 

Arabic English Dictionary of Modern Written Arabic

Arabic English Dictionary of Modern Written Arabic

 

 

優れた辞書ではあるものの若干クセがあるので、辞書を使う前に知っておいたほうが良いことをまとめました。

続きを読む

アラビア語学習オンラインリソース

Web上で無償公開されているアラビア語関連の学習素材をまとめます。これさえあればノート、ペンと印刷代だけでアラビア語を学べます。随時更新予定。

続きを読む