【自然言語処理シリーズ】形態素解析についてわかりやすく解説!理論編

【自然言語処理シリーズ】 形態素解析について わかりやすく解説! 理論編

キカガク機械学習講師の船蔵颯です!本記事は、自然言語処理の基礎技術である形態素解析の理論編です!

形態素解析は、自然言語のテキストをいくつかの単位に分け、品詞や活用形などの情報を取り出す処理です。

まずは、そもそも形態素解析はどのような場面で必要な技術なのかをご説明します。その後に、形態素解析とは何かについてのより踏み込んだ解説を行い、最後に形態素解析研究のトピックスをご紹介します。

形態素解析はどこで使われている?

形態素解析の主な使用例として、次の二つが挙げられます。

形態素解析の主な使用例
  • 解析結果をデータ分析に利用する
  • 解析結果を他の自然言語処理モデルへの入力として利用する

一点目は、形態素解析の結果を用いてテキストデータの分析を行う、という使い方です。例として、2020 年以降の人工知能のホットトピックを把握したいというケースを考えましょう。形態素解析を使うと、自然言語テキストを意味のある単位(単語など)に分割し、品詞を特定することができます。そのため、人工知能に関する文献や SNS 投稿などを形態素解析して、名詞を抽出・集計することができます。これにより、頻繁に言及されているモデルや手法などをある程度把握することができます。

二点目は、形態素解析の結果を他のモデルへの入力として利用する、という使い方です。自然言語処理モデルのほとんどは、入力テキストが分かち書きされていることを前提として設計されています。

特に構文解析など、文法の理解と関係が深い問題設定においては、分かち書きされたテキストに加えて品詞情報も入力として利用することで、解析精度が向上する場合もあります [Clark 2021]。

このように形態素解析が必要になる場面は多岐にわたっています。自然言語処理で何かする際には必ずといって良いほど必要になる技術なので、この記事を読んで入門しましょう!

形態素解析の基礎知識

前節でも述べた通り、次の二つの処理をまとめて、形態素解析と呼びます。

形態素解析
  • テキストを形態素に分割する
  • 各形態素について品詞や活用形を特定する

本節では、これらふたつの処理について解説します。

分かち書き

テキストを形態素に分割する処理は分かち書き(tokenization)と呼ばれます。分かち書きだけを行う解析器も多く存在し、それらはトークナイザ (tokenizer) と呼ばれます。

テキストをどのような単位で分割するかは解析器によって様々で、大きく単語分割サブワード分割文字分割の三つの手法が存在します。

BERT や GPT など、ニューラル自然言語処理モデルの多くは、サブワード分割を仮定しています。

サブワード分割を行うトークナイザ構築の代表的な手法として、バイトペア符号化 (Byte Pair Encoding, Sennrich+ 2016)ユニグラム言語モデル (unigram language model, Kudo 2018) があります。これらの手法は教師なし学習を採用していて、テキストデータさえあればトークナイザを構築することができます

一方で、単語ベースのトークナイザを作るには、「単語とは何か」に対する何らかの仮定に従い、教師データを作成する必要があります。この作業は、対象とする言語についての十分な知識が必要で、高コストな作業です。また、文字ベースの手法はテキストを一文字づつ分割すれば良いため非常に簡単ですが、分かち書き後の情報量が不足しがちです。このような背景もあって、サブワード分割が広く採用されています。

補足

教師なしトークナイザは文字列の出現頻度をもとにサブワードを形成するため、サブワードと形態素は厳密には異なります(実際、先の例では「深層学習」が「深/層/学習」と分割されています)。サブワード分割後の各単位は、形態素ではなくトークン (token) と呼ばれることが多いです。

品詞や活用形の特定

品詞や活用形の特定は辞書 (dictionary) を活用して行うのが一般的です。ここでの辞書とは紙の辞書ではなく、品詞や活用形などの情報をデータとして整理したものです。辞書の種類も様々で、使用可能な辞書は解析器によって異なります。辞書の中では各単語に対して品詞や活用形が定義されています。各辞書はそれぞれ、背後に仮定している文法体系が異なります

代表的な形態素解析器である JUMANChaSenMeCab を例に挙げて、具体的にご説明します。JUMAN 用の辞書である JUMAN 辞書益岡・田窪文法 [益岡+ 1992]をベースに設計されており、国語学の知見が濃く反映されています。ChaSen 用に開発され、初期の MeCab が準拠していた ipadic は、IPA 品詞体系をもとに設計されています。ChaSen や MeCab はその後、特定の辞書だけでなくユーザが独自に作成した辞書でも動作するようになりました。

形態素解析の性能や、出力から得られる情報は辞書に左右されます。そのため、目的に沿った辞書を選んだり、作成する必要があります。

発展: 教師なしトークナイザの利点

先ほど、教師なしのトークナイザ学習手法としてバイトペア符号化とユニグラム言語モデルをご紹介しました。これらの手法は、あらかじめテキストを分割して作成した教師データを必要としません。テキストデータさえあれば、そのテキストに出現する文字列の頻度情報をもとに、高頻出なサブワードを割り出してくれます。

教師なしトークナイザの利点は、上記に加えて以下のようなものがあります。

未知語に対応しやすい

教師なしトークナイザは、訓練時に見たことのない単語に対しても柔軟に対応できます。教師あり手法だと、学習データに含まれない形態素は未知語として処理されるのが一般的です。

一方で、教師なし手法は学習データに含まれない文字列もサブワードの組み合わせとして分割するため、比較的柔軟に対応することができます。また、日々生まれる新語にも対応しやすいため、トークナイザの長期的な保守性にも繋がります。

補足

教師ありの解析器には未知語に対応するための様々な工夫が込められています。そのため、未知語に遭遇すると解析失敗してしまうわけではなく、教師なし手法に比べると未知語対策のコストが大きい、というのがフェアな見方だと思われます。

多言語対応がしやすい

教師なしトークナイザは、言語に依存せず適用することができます。教師あり手法の場合、日本語ならば日本語の知識、中国語ならば中国語の知識を使って、単語に分割した教師データが必要です。教師なし手法の場合は、テキストデータさえあればトークナイザを構築できるため、多言語への対応が容易です。

発展: その後の展開

ここでは、形態素解析に関連する近年の研究の一部をピックアップしてご紹介します。

より高速な解析

形態素解析器の性能は、解析結果の正しさだけでなく、学習・解析の速度でも評価されます。より効率的な解析を目指したアルゴリズムの追求は、現在でも盛んに取り組まれています [Tay+ 2021, Yoshinaga 2023, etc.]。

分割方法による性能差

本記事では単語ベース、サブワードベース、文字ベースの分かち書き手法をご紹介しました。自然言語処理では、分かち書きされたテキストがモデルの入力として使われるのが一般的です。そのため、分かち書き手法の違いがモデルの性能にどの程度影響するかは非常に興味深いトピックです。このような観点から、それぞれの分かち書き手法がどのようなタスクに適しているかを調査した研究 [Durrani+ 2019] や、取り組むタスクに応じてトークナイザを最適化する研究 [Hiraoka+ 2023] などが行われています。

新たな解析要素の創出

はじめのセクションで、品詞情報を構文解析に利用する例をご紹介しました。それとは別のケースとして、自然言語の意味的な構造を解析するタスク(意味解析)でも、品詞固有表現ラベルが活用されてきました。ここでは深入りしませんが、固有表現ラベルの例を以下に示します。

[Abzianidze+ 2017] は、品詞や固有表現ラベルだけでは意味の解析に十分でないとして、新たに意味タグ (semantic tag) という概念を提案しています。論理に基づく自然言語の解析システムは個別の言語ごとに設計される傾向がありましたが、意味タグによって言語依存性が解消されるのではないかと期待されています

さらに学ぶために

本記事の最後に、さらに深掘りしたい方におすすめの文献をご紹介します。

参考書籍
  • 工藤拓『形態素解析の理論と実装』近代科学社
    MeCab や、教師なしトークナイザ SentencePiece など多くの形態素解析器の開発に関わっている著者によって、形態素解析の歴史・理論・実装が非常に詳しく説明されています。
  • 山田育矢 他『ディープラーニングによる自然言語処理』 共立出版
    深層学習を用いた自然言語処理周りの理論・実装が平易に解説されています。実装には AllenNLP を使用しており、自然言語処理に特化した効率的な開発手法を学ぶことができます。サブワード分割手法の中でも、バイトペア符号化についてより具体的な説明がなされています。

最後に、本記事中で言及した文献のリストを以下に示します。リストには筆頭著者名と発行年、タイトルのみを掲載しています。より詳細な書誌情報はリンク先をご確認ください。

参照文献
  • S. Clark. (2021). Something old, something new: Grammar-based CCG parsing with transformer models. [link]
  • R. Sennrich et al. (2016). Neural Machine Translation of Rare Words with Subword Units. [link]
  • T. Kudo. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. [link]
  • 益岡 隆志 他. (1992). 基礎日本語文法・改訂版. [link]
  • Y. Tayet al. (2021). Charformer: Fast character transformers via gradient-based subword tokenization. [link]
  • N. Yoshinaga. (2023). Back to Patterns: Efficient Japanese Morphological Analysis with Feature-Sequence Trie. [link]
  • N. Durrani et al. (2019). One size does not fit all: Comparing NMT representations of different granularities. [link]
  • T. Hiraoka et al. (2023). Downstream Task-Oriented Neural Tokenizer Optimization with Vocabulary Restriction as Post Processing. [link]
  • L. Abzianidze et al. (2017). Towards universal semantic tagging. [link]

こちらの記事もオススメ

まずは無料で学びたい方・最速で学びたい方へ

まずは無料で学びたい方: Python&機械学習入門コースがおすすめ

Python&機械学習入門コース

AI・機械学習を学び始めるならまずはここから!経産省の Web サイトでも紹介されているわかりやすいと評判の Python&機械学習入門コースが無料で受けられます!
さらにステップアップした脱ブラックボックスコースや、IT パスポートをはじめとした資格取得を目指すコースもなんと無料です!

無料で学ぶ

最速で学びたい方:キカガクの長期コースがおすすめ

一生学び放題

続々と転職・キャリアアップに成功中!受講生ファーストのサポートが人気のポイントです!

AI・機械学習・データサイエンスといえばキカガク!
非常に需要が高まっている最先端スキルを「今のうちに」習得しませんか?

無料説明会を週 2 開催しています。毎月受講生の定員がございますので確認はお早めに!

説明会ではこんなことをお話します!
  • 国も企業も育成に力を入れている先端 IT 人材とは
  • キカガクの研修実績
  • 長期コースでの学び方、できるようになること
  • 料金・給付金について
  • 質疑応答