パスワードを忘れた? アカウント作成
15001433 journal
人工知能

yasuokaの日記: 日本語係り受け解析器「2020年の総ざらえ」 1

日記 by yasuoka

自然言語処理Advent Calendar 2020を見に行ってみたところ、なぜか12月1日があいていたので、一日遅れだが書いてみることにした。日本語係り受け解析器としては、もちろんCaboChaが有名なのだが、係り受けの種類が分類されておらず使いにくい。一方、多言語係り受け解析器としてはspaCyが有名で、日本語モジュールも準備されているのだが、単語間係り受けのみで、文節間係り受けはサポートされていない。このあたりを埋めるべく、日本語係り受け解析器のうち、インターフェースがspaCy準拠となっているものを、私(安岡孝一)なりに「総ざらえ」してみよう。

  • GiNZA
    pythonのみで書かれた日本語係り受け解析器で、インストールしやすさにおいても、解析精度においても、現時点ではピカイチである(私見)。形態素解析器にSudachiPyを用いており、インターフェースはspaCy準拠の単語間係り受けだが、さらに文節間係り受けAPIを拡張している。
  • spaCy-SynCha
    CaboChaの係り受け解析を、SynChaの述語項構造解析で拡張し、さらにspaCyに繋いでいる。単語間係り受けと文節間係り受けの両方に対応している。解析精度は高いのだが、MeCabとCaboChaのインストールに手間がかかる上に、SynChaがperlで動作するため、Unixぽい環境(Linux・WSL・Cygwin・macOSコンソールなど)での使用をオススメする。
  • spaCy-ChaPAS
    CaboChaの係り受け解析を、ChaPASの述語項構造解析で拡張し、さらにspaCyに繋いでいる。単語間係り受けと文節間係り受けの両方に対応している。解析精度は高いのだが、MeCabとCaboChaのインストールに手間がかかる上に、ChaPASがJava8で動作するため、Unixぽい環境(Linux・WSL・Cygwin・macOSコンソールなど)での使用をオススメする。
  • UniDic2UD
    UniDicの形態素解析を、UDPipeの係り受け解析で拡張しており、spaCyの単語間係り受けと、CaboChaエミュレーションによる文節間係り受けを、それぞれ別々にサポートしている。現代日本語のみならず、旧字旧仮名や中古和文(古文)のUniDicもサポートしているが、解析精度はやや低い。
  • Camphr-KNP
    KNPの構文・格・照応解析を、spaCyに繋いでいる。ただ、KNPは単語長や品詞の扱いが独特でクセがあり、他のツールとは比較が難しい。また、JUMAN++とKNPのインストールは、かなり手間がかかる上に、あちこちトラップがあるため、私個人としては勧めにくい。

以上に示した日本語係り受け解析器に加えて、以下に示す多言語係り受け解析器は、それぞれ日本語モジュールを準備している。ただし、いずれも文節間係り受けはサポートしておらず、単語間係り受けだけである。

  • spaCy-Stanza"ja"モジュール
    Stanzaの係り受け解析を、spaCyに繋いでいる。現在も開発が続いており、解析精度は上がり続けている。
  • spaCy-COMBO"ja_gsd"モジュール
    COMBOの係り受け解析を、spaCyに繋いでいる。開発はCOMBO-pytorchへと移ったようだが、COMBO-pytorchの日本語モジュールは未発表。
  • spaCy-UDPipe"ja"モジュール
    UDPipeの係り受け解析を、spaCyに繋いでいる。開発はUDPipe 3へと移ったようだが、現時点では未発表。
  • spaCy-jPTDP"ja_gsd"モジュール
    jPTDPの係り受け解析を、spaCyに繋いでいる。pythonのみで書かれているが、開発は終了した模様。

これらの係り受け解析器は、いずれもインターフェースがspaCy準拠であり、その範囲において互いに取り換え可能である。なお、これらの係り受け解析器を全て比較できるよう、Google Colaboratoryのこのページにインストール・解析環境を準備した。ぜひ試してみてほしい。

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...