このシリーズでは、自然言語処理の環境構築から学習の方法までまとめます。
今回の記事ではGiNZAまとめ①として、ライブラリの概要とどんな使い方ができるのかを紹介します。
ぜひ最後までご覧ください。
今回の内容
・GiNZAとは
・GiNZAでできること(形態素解析、構文分析、固有表現抽出など)
・関係リンクの紹介
GiNZAとは
形態素解析のライブラリ
形態素解析を実行するためのライブラリはいくつか存在します。
これまで登場した代表的なものとして、「MeCab」、「JANOME」、「spacy」、「sudachi」などがあります。
詳細はこちらの記事で紹介しています。
GiNZAの概要
「GiNZA」は、2019年4月に登場したオープンソースな日本語の自然言語処理ライブラリです。
最先端の機械学習技術を取り入れた自然言語処理ライブラリ「spaCy」をフレームワークとして利用しており、トークン化処理にオープンソースな形態素解析器「SudachiPy」が使われています。
「GiNZA日本語UDモデル」にはMegagon Labsと国立国語研究所の共同研究成果が組み込まれています。
詳細は公式の実装からご確認ください。
GiNZAでできること
形態素解析
形態素解析とは、単語や文章などから言語が意味を持つ最小単位である「形態素」に分割し、それらが品詞としてどれに当たるのか分類する文字列抽出法のことです。
自然言語処理のにおいて、文の構造や意味を考えるためには、まずは文中の単語を認識する必要があります。
英語の場合にはそれぞれの単語がスペースで区切られていますが、日本語の文章では単語単位に分かち書きさせていません。
そこで、日本語や東アジアの諸言語における形態素解析の処理では、平文を形態素解析により分かち書きにした各要素を入力表現に使用します。
次の文章で形態素分割を行うと、結果は以下のようになります。
私は毎週水曜日はカフェで勉強します。
↓
私 は 毎週 水曜日 は カフェ で 勉強 し ます 。
形態素の分割
単語によっては、言語が意味を持つ最小単位である「形態素」の分割方法が複数存在する場合があります。
「GiNZA」では、3種類の形態素を切り替えて利用することができます。
次の単語で形態素分割を行うと、結果は以下のようになります。
全国高等学校野球選手権大会
↓
A:全国/高等/学校/野球/選手/権/大会
B:全国/高等/学校/野球/選手権/大会
C:全国/高等学校/野球/選手権/大会
文境界解析
「文境界解析」は、文章を文の境界を検出して文単位に分解する処理です。
次の文章で文境界分割を行うと、結果は以下のようになります。
私は毎週水曜日はカフェで勉強します。その後、ジムに寄ってから帰ります。
↓
私は毎週水曜日はカフェで勉強します。
その後、ジムに寄ってから帰ります。
構文分析と意味解析
文章を単語に分かち書きした後、文の構造を解析する処理を構文分析と言います。
構文分析の手法として、形態素解析で得られた単語間の関係性を解析する係り受け解析があります。
また、文の意味を解析する処理を意味解析と言います。
文から意味を取り出す手法に述語項構造解析があります。
係り受け解析や述語項構造解析を用いることで、以下のように文章の構造を把握することができるようになります。
品詞の抽出
形態素解析から得られたトークンから名詞や動詞といった品詞を抽出することができます。
次の文章で文境界分割を行うと、結果は以下のようになります。
私は毎週水曜日はカフェで勉強します。その後、ジムに寄ってから帰ります。
↓
私, 代名詞, PRON
は, 助詞-係助詞, ADP
毎週, 名詞-普通名詞-副詞可能, NOUN
水曜日, 名詞-普通名詞-副詞可能, NOUN
に, 助詞-格助詞, ADP
〜〜以下省略〜〜
レンマ化
レンマ(Lemma)とは、単語の基本形のことで、辞書でいうところの見出し語に相当します。
形態素解析した単語をレンマに変換することをレンマ化といいます。
次の文章でレンマ化を行うと、結果は以下のようになります。
ジムに寄ってから帰ります
↓
ジム, ジム
に, に
寄っ, 寄る
て, て
から, から
帰り, 帰る
ます, ます
固有表現抽出
地名・人名・組織名といった固有名詞に数量や日付、時間などを加えたものを「固有表現」と言い、与えられたテキストから固有表現を抜き出すタスクのことを固有表現抽出と言います。
手動で追加したり自前のデータで学習させることで、任意の固有表現を抽出することができるようになります。
私は毎週水曜日に山田さんと原宿のカフェで勉強します。その後、代々木上原のジムに寄ってから帰ります。
↓
毎週水曜日,Frequency,2,7
山田,Person,8,10
さん,Title_Other,10,12
原宿,City,13,15
代々木上原,City,30,35
ユーザー辞書の登録
任意の単語を登録して、形態素解析などに使用することができます。
ルールベースマッチング
トークンベースの条件で、大量の文書から特定の情報を抽出する機能です。
トークンの「テキスト」だけでなく、「品詞」「レンマ」「係り受け」「固有表現」といった属性も条件として利用できます。
フィラーの削除
「フィラー」とは、会話やスピーチなどの合間に挟み込まれる「えー」「あー」「えーと」などの不要な言葉のことです。
GiNZAを使用することで、フィラーを削除することができます。
関係リンクの紹介
GiNZA 3.0.0 https://github.com/megagonlabs/ginza/releases/tag/v3.0.0
GiNZA 4.0.0 https://github.com/megagonlabs/ginza/releases/tag/v4.0.0
GiNZA 5.0.0 https://github.com/megagonlabs/ginza/releases/tag/v5.0.0
まとめ
最後までご覧いただきありがとうございました。
今回の記事では、GiNZAまとめ①として、ライブラリの概要とどんな使い方ができるのかを紹介しました。
次回は今回紹介した内容を実装していきます。
このシリーズでは、自然言語処理全般に関するより詳細な実装や学習の方法を紹介しておりますので、是非ご覧ください。