GiNZA NLP Library

GiNZA: 日本語自然言語処理オープンソースライブラリ

Megagon Labsでは、全世界のエンジニアおよびデータサイエンティストが目的に応じて日本語の自然言語処理技術を他の言語とシームレスに利用するための取り組みを行っています。私たちはこの取り組みの最初の一歩として、国立国語研究所とのUniversal Dependencies for Japaneseに関する共同研究成果をGiNZA version 1.0として2019年春にGitHubで公開しました。GiNZAはオープンソースの日本語自然言語処理ライブラリです。ワンステップでの導入、高速かつ高精度な日本語の解析処理、依存構造(係り受け)解析や固有表現抽出などの高度なNLP技術を国際化されたフレームワーク上で利用可能などの特徴を備えています。

Githubを見る

論文を読む 

GiNZAはなぜ必要か

人が会話をしたり、読み書きする時に使う人間の言語をコンピュータで分析する技術を自然言語処理と呼びます。 自然言語処理技術は検索エンジン、機械翻訳、対話エージェント、お客様の声(VOC)分析など、日常生活やビジネスにおけるさまざまなシーンで広く応用されています。 

近代的な自然言語処理技術は言語により異なる語彙や文法規則を、高度な機械学習技術を駆使して学習しています。分かち書きされない日本語のテキストに対しては、品詞タグ付けと単語分割を同時に行う形態素解析器が広く利用されています。文中での語と語の間の関係(主語・述語などの修飾・被修飾の関係)を分析するためには依存構造解析器を、地名・人名・組織名などの固有表現の区間と種別をラベル付けするためには固有表現抽出器を使用します。

英語・中国語などの言語では、近年、様々な自然言語処理機能を統合し、容易に言語を切り替えられるよう自然言語処理フレームワークの利用が世界的に広まっています。しかし、これらのフレームワークで動作可能な日本語解析モデルの提供は、その学習データが商用利用を禁じているため、遅れていました。

日本語の自然言語処理モデルの学習・評価用データセットは、英語に比べて非常に種類が少なくデータ量も限られています。さらに、これらのデータセットから学習したモデルの商用利用を制限している場合が多くあります。

このように日本語を解析するための共通化されたツールやデータセットが市場に提供されない状況は、日本語を扱うサービスを提供する多くのデベロッパーに余分なコストと労力を要求します。こうした技術障壁に立ち向かうために、私たちは「GiNZA」の取り組みを始めました。

GiNZAはどう実装されているか?

GiNZAは2つの基盤技術を利用しています:

  • spaCy: 最先端の機械学習技術を組み込んだ自然言語処理フレームワーク
  • SudachiPy: トークン化処理に利用するオープンソースの形態素解析器

GiNZAはこれらの基盤技術の特長を活かした独自のパイプライン設計を行うことで、産業利用に耐える十分な処理速度と解析精度を実現しています。 

GiNZAを利用するには

GiNZAはMITライセンスのもとでソースコードを公開しており、商業利用目的の利用も可能です。GiNZAのインストールは非常に容易で、ワンステップで完了します。Python version 3.6以上を導入済みの環境では、次のコマンドを実行するだけです。 

    $ pip install ginza

GiNZAは日本語テキストに対して“Universal Dependencies”に基づく依存構造解析を高速かつ高精度に実行します。文を改行で区切ったテキストファイル input.txtを解析し、結果を”CoNLL-UFormat”でouttput.txtに保存するには次のようにコマンドを実行します。

    $ ginza < input.txt > output.txt

GiNZAの解析モデルはspaCyのAPIを使用して学習されています。従って、 GiNZAの解析モデルはspaCyが提供する英語やドイツ語など日本語以外の解析モデルと互換性があり、GiNZAをインストール済みの環境であれば言語指定を変更するだけでspaCy APIから日本語解析モデルを利用できます。 

    import spacy
    nlp = spacy.load(“ja_ginza”)
    doc = nlp(“銀座でランチをご一緒しましょう。”)

GiNZAの利用方法を詳しく知る

今後の展望

GiNZAはオープンソースソフトウエアとして既に多くの開発者・研究者・データサイエンティストに利用されています。しかし、GiNZAの解析モデルの訓練に使用しているデータセット”UD Japanese BCCWJ”は有償のデータセットであるため一般には公開されていません。そのため、利用者はGiNZAの解析モデルを直接改良することができません。そこで、Megagon Labsは国立国語研究所が進めている“UD Japanese GSD”再構築プロジェクトに参画することを決めました。GiNZAの日本語解析モデルの改良をオープンかつ効率的に進めるためのデータセットを広く提供することを目標として、現在、固有表現ラベルのアノテーション作業を進めています。

このプロジェクトの成果として、商用利用可能なCC BY-SAライセンスのもとで、再構築後のUD Japanese GSDデータセットとその学習済み解析モデル、および、spaCyで日本語を扱うために最適化されたパイプラインをパッケージ化して公開する予定です。

(by Megagon Labs Tokyo

Other Projects: