toricago

The world is changing, boys. It's time we change too.

『自然言語処理の基本と技術』が面白い!

スマートスピーカーが日本で急速な普及を迎えている。Amazon EchoGoogle Home、LINE WAVEなどを購入し、スマートスピーカーの様々可能性を楽しんでいる読者も多いかもしれない。何かを話しかけることで、アラーム・ストップウォッチ設定やLINEメッセージの読み上げなど、何らかのタスクを実行してくれたり、天気や時間、さらにはニュースなどの情報を提供してくれたり、簡単な会話を楽しむこともできる。

今まで慣れ親しんできたPCのキーボードやスマホのタッチインターフェースとは異なる「音声インターフェース」は新鮮に感じるが、背景では様々な技術が動いている。入り口は声を認識する音声認識だが、その次のステップでは認識した文字列を文章として理解し、スピーカー側として何を実行すればよいのか判断しなければならない。何かを聞かれているのであれば、どのように返答すべきかを考えなければならない。この段階でのコアテクノロジーは自然言語処理と呼ばれる。

ということで、今回はこの自然言語処理を理解するための良書『自然言語処理の基本と技術』という本をレビューしていきたい。タイトルは硬く感じる方もいるかもしれないが、本書の「おわりに」から引用すると、

これまでの自然言語処理の入門書は、主に情報系の学生やエンジニアを対象にしていて、大学の教員が書いたものばかりでしたが、自然言語処理に関する仕事をするのはエンジニアだけではないので、マーケティング、セールス、デザイナーなど、自然言語処理に興味をもつどんな人でも読めるような本を作りたかったのです。

「いま自然言語処理に興味のある人が知りたい技術やアプリケーションは何か」から逆算して、「その理解のために必要な基本について解説する」というスタイルで書かれています。

とのことで、実際に読んでみると数式やプログラミングはあまり出てこない。代わりに、基礎的知識の理解、タスクの問題設定、解法の考え方やアルゴリズムの流れの解説が多くありがたい。「自然言語処理」はスマートスピーカーに限らず、あらゆるところで威力を発揮している基盤技術であり、その全体像、それぞれのタスク・研究されてきた技術の簡単な内容が知れる本となっているのは非常に貴重だ。本書はスマートスピーカーブーム以前に出版されたものだが、どのような歴史を経て分野が発展してきたのかも頭に叩き込まれるので、関心がある方には広くお勧めできる。

本の構成としては、1.自然言語処理の概要、2.自然言語処理の基礎知識、3.日本語入力と自然言語処理、4.機械翻訳、5.情報検索、6.Webと自然言語処理、7.自然言語処理のこれから、の7章から成っており、以下、それぞれの章の簡単な内容を紹介していきたい。

1.自然言語処理の概要

  • 自然言語は日常話すような日本語や英語の言葉そのもの。JavaPythonなどの機械言語と区別するために「自然」言語と呼ばれる。
  • 2つの最も大きな違いとして、自然言語には「曖昧性」があるが、機械言語にはないこと。例えば「警察は自転車で逃げる泥棒を追いかけた。」という文章では、自転車に乗っているのが警察なのか泥棒なのか、曖昧である。このような曖昧性を含む自然言語を処理していく分野を自然言語処理と呼ぶ。
  • かな漢字変換などの「日本語入力」(ATOKGoogle日本語入力)が有名。ユーザー辞書、学習、予測入力、入力支援など様々な付属機能の背後にも自然言語処理が動いている。
  • 他にも、「機械翻訳」や「検索エンジン」、クイズ番組AIの「質問応答」、銀行ATMや自動車ナビ、さらにはAppleのSiriなどの「対話システム」でも大活躍。音声認識形態素解析構文解析、意味解析、意図理解、応答生成などの様々な技術が必要。
  • 機械翻訳の歴史は1947年に遡る。「翻訳」を「暗号」の問題として捉えた手紙が発掘されている。例えば「ロシア語は暗号で書かれており、英語は復号化されているもの」と捉えることで研究が進んだ。当時の「解読可能な言語に雑音が加わり別の言語になった」という考え方が、雑音のある通信路モデル、さらには現代の統計的機械翻訳につながっていった。
  • 60年代に非常に研究が盛んに行われ、LISPBASEBALL、ELIZAもこの年代。80年代には日本でも研究が活発に行われ、特に機械翻訳の分野の研究が多かった。78年に東芝が商業化に成功し、ワープロが普及。
  • 90年代〜00年代には文の分割、品詞や活用などの解析まで踏み込む形態素解析の研究も本格化した。JUMAN、ChaSen、KNP、MeCab、KyTea、Kuromojiなどのソフトウェアへと繋がっていく。この時期のパラダイム転換は「統計的自然言語処理」。言語現象を人手によって整備するのではなく、ウェブ上の大量のテキスト情報を用いて、統計的に対話辞書や翻訳規則を抽出できるようにもなったことも特徴。
  • 関連分野は色々とある。例えば、人工知能機械学習言語学テキストマイニング統計学音声認識音声合成。それぞれの違いも解説あり。
  • 具体的に勉強する場合のお勧めの教科書やウェブサイト、ソフトウェアの説明も素晴らしい。さらに勉強してみたい!

2.自然言語処理の基礎知識

  • コーパス:言語の使用方法を記録・蓄積した文書集合のことで、BCCWJやBrown Corpusが代表的。これらのコーパスを利用して、統計的分析や機械学習モデルの訓練などが行われるのが最近は一般的。
  • 辞書:一般的な「辞書」とは意味が異なる。何らかの目的を持って集められた語句のリストを辞書と総称。「表層形」「原形」「品詞」「読み」などを付与し、文章を単語に分割し、形態論情報を付与するための形態素解析用辞書はその一例。これによってコンピュータによる処理が可能となる。辞書はMachine Readable Dictionary(MRD)である必要がある。
  • 自然言語の解析をコンピュータが正しく行うためには、「同義語」「類似語」「上位・下位関係」「句・文などの関係性」などの、予め獲得していなければならない知識が存在する。人間が一つ一つ教えるのも手だが、自動的に獲得するような手法も存在する。分布類似度、単語のベクトル表現、オントロジー、知識ベースなどの解説が勉強になる。
  • 情報抽出:自然言語から構造化された情報を抽出する技術。技術としては「固有表現抽出」「関係抽出」「イベント抽出」などがある。例えば新製品発売ニュース記事から、メーカーや価格、日付などの情報を抽出するのはイベント情報抽出の一例。特有の課題(分野適応の問題)も存在する。
  • テキストマイニング:確率・統計的な手法を用いて大量のテキストから有用な情報を引き出す技術の総称。いかに役立つ情報を引き出すか。お客様の声を分析する例が典型例。技術としては検索、クラスタリング、分類などが用いられる。
  • 形態素解析:文章を単語毎に分割し、同時に品詞を付与する処理。MeCabが有名な形態素解析オープンソース・ソフトウェア。新しい人名やビジネス用語などの未知語に弱い。未知語の難しさに対応するための研究も現在進行系で行われている。
  • 構造解析の技術:形態素解析により単語の区切りと品詞がわかったとしても、曖昧性が残ることが多々ある。「白い表紙の新しい本」は3通りの解釈方法がある。(3通りもわからない人は本を買ってみよう笑)ここで、文の構造を解析する構文解析、特に係り受け解析と句構造解析が用いられる。

3.日本語入力と自然言語処理

4.機械翻訳

  • フレーズベース機械翻訳、文の構造を利用する機械翻訳機械翻訳のシステムをどのように評価するか、機械翻訳システムの構築方法(データの準備、翻訳ルール抽出、チューニング)、現在の機械翻訳がどこまで可能となったか、まだ不得意なこととは。

5.情報検索

  • Web検索エンジン、画像・動画検索、レストラン検索、ショッピングサイト、図書館での蔵書検索、地図アプリでの目的地検索など、応用範囲は幅広い。
  • 情報検索の基礎:索引付け(文章を素早く検索するのに欠かせないデータ構造)や語幹化(stemming)など。このあたりは「なるほど!」と思いながら読んでいて楽しかった。
  • ブーリアンモデル、ベクトル空間モデル、TF-IDFなど、自然言語処理の基礎概念が次々と解説される重要な章。
  • Web検索ではランキング技術が重要で、さらにウェブページを巡回して情報を収集するクローリングの話も詳しく出ている。ランキング学習、適合性フィードバック、PageRankなどの解説もあり。
  • 情報検索の評価方法、精度、再現率、F値、MAP(Mean Average Precision)、DCG(Discounted Cumulative Gain)などの指標の説明あり。

6.Webと自然言語処理

  • 文書分類、スパム対策、類似文書検索、k-meansクラスタリング、階層的クラスタリング、マイニング、関係抽出、評判分析、スペル訂正の解説あり。自然言語処理がいかに様々な対象に用いられているかを実感できる。
  • 「この商品を買った人はこんな商品も買っています」で見られるようなレコメンド(協調フィルタリング)や、コンテンツ自体に基づくレコメンドの紹介。
  • 記事などの文章をいかに自動的に要約するか、ユーザーの質問にいかに答えるかという質問応答なども解説あり。

7.自然言語処理のこれから

文の意味を知る技術として重要な以下のテーマが解説される。

  • 固有表現抽出:「AA国のBB首相が辞任した」といった知識を文章から抽出したときに、そこに現れる人名・地名などの固有名詞や日付・時間表現(これらを固有名詞と呼ぶ)を認識し、抽出すること(固有表現抽出)は重要なタスク。いかに自動的に行うか。
  • 述語項構造解析:名詞と動詞の関係をとらえる。「何が」「どうした・どんなだ」といった「コト」の情報。
  • 語義曖昧性解消:単語の意味を特定する。日本語の「金」はmoneyという意味と「gold」という意味がある。これを統計的に判定できるようになりたい。
  • 照応省略解析:文を超えたつながりを知る技術も重要で、例えば「ここ」「その」など、「文章中に現れるほかのことがら」を指し示すことを照応と呼ぶ。文章の意味を判断するには、指し示す対象を補うことが欠かせない。主語や目的語の省略が頻繁に起こるというのも照応現象のうちの一つで、日本語の難しさの一つ。
  • DRS:談話表示構造。長い演説スピーチや二人以上の会話歴の分析では、一つの文やその周辺の1、2文の関係から読み取れることだけでは足りない。そこで「何らかの関係のある一連の文」(発話)の関係を捉えられないか。ただ、状況を考慮に入れないといけない難しさがある。
  • 含意関係認識:ある文がもう片方の文を含意するかどうか認識するタスクのこと。質問応答や複数文書要約で必要な技術。

終わりに

ということで、今回読んでみた『自然言語処理の基本と技術』をざっくりとまとめてみた。気になる人は是非読んでみては?

滝登り道場

今回この本を読んだのは、少人数オンラインコミュニティ「滝登り道場」の宿題のため。ちなみに滝登り道場とは、

ブロックチェーンや量子コンピューティングは言うまでもなく、Brain Machine Interface、ゲノム編集・生命工学、拡張現実等のテクノロジーの凄まじい進化と激変する世の中に置いていかれてしまう危機感を持つ老害予備軍が、頑固な脳みそを酷使し、老化という重力に逆らい、滝を登るような努力をして自分の考え方・価値観・スキル・ライフスタイルを「アップデート」するためのコミュニティ。