自然言語処理の基本と技術(1)
1章 自然言語処理の概要
自然言語処理とは
自然言語は、日常書いたり話したりしている日本語や英語などの言語です。そして、自然言語処理とは、自然言語を処理する技術や学術分野の総称です。
- マークアップ言語:HTMLやXML
- プログラミング言語:CやObjective-C, Pythonなど
上記の2つは、コンピュータ言語や形式言語などと総称され、自然言語と区別される。
自然言語とコンピュータ言語や形式言語との最も大きな違いは、その曖昧性です。ここでいう曖昧性とは、文の構造や意味の解釈が複数考えられること、つまり一つの意味にはっきりと決まらないことを指しています。
自然言語処理の応用例と利用技術
日本語入力
日本語入力ソフトは、最も身近で馴染み深い自然言語処理の応用例です。これに用いられている自然言語処理技術は、かな漢字変換です。
かな漢字変換では、仮名で入力された単語や文を受け取り、それを適切なかな漢字交じりの単語や文に変換するというタスクを実行します。
日本語入力ソフトには、Windows標準付属のMS-IMEやMac OS標準付属のJapaneseIMのほか、ATOKやGoogle日本語入力があります。
機械翻訳
日本語入力と同様に、機械翻訳は身近な自然言語処理の応用例です。
機械翻訳とは、「ある言語の文章を受け取り、それを別の言語の文章に自動的に翻訳する」処理です。特に、入力と出力が音声の場合は、音声翻訳と言います。
現在では、機械翻訳の多くが、外国語で書かれた文章を自分の理解できる言語へと翻訳し、その大意を確認する(ジスティング:gisting)ためによく使われています。
また人手による業務翻訳の分野では、機械翻訳が下訳作業に利用されるほか、自然言語処理の技術が翻訳支援に活用されています。例えば、翻訳メモリと呼ばれる仕組みでは、翻訳者が過去に翻訳した文章を対訳としてデータベースに保存しておくことで、翻訳者の負荷を削減しています。
検索エンジン
日常生活に欠かせない検索するためのツールに、検索エンジンがあります。GoogleやMicrosoft Bing、Yahoo!といったWeb検索エンジン以外にも、図書館の蔵書検索、ショッピングサイトの商品検索、レストラン検索などあらゆる場面で活用されています。
クエリ(検索要求とも呼ばれるキーワード)を入力し、クエリに適合するモノをデータベースから取り出す検索は、大量の情報を処理する上で最も基本的な技術です。検索の結果、取り出されるモノは文書と呼ばれます。
Web検索エンジンは、下記の多くの問題があります。これらの問題は、自然言語処理の技術を使うことで解決できます。
- 機械的に生成されたページ、重複ページ、スパムページの存在
- 文書をどのように並び替えて、検索のトップページに持ってくるか
また、検索エンジンには、スペル訂正(「もしかして〜」)や、クエリ提示(サジェスチョン)、検索結果の工夫など、「文書を検索する」基本機能以外にも様々な付加機能が追加されています。
対話システム
自然言語を用いたロボットとの対話は、自然言語処理の大きな目標の一つです。これを実現しようとするシステムは対話システムと呼ばれています。
例えば、Apple社のSiriや、NTTドコモ社のしゃべってコンシェルなど、検索以外の様々なタスクをサポートする、いわゆるコンシェルジュシステムが普及しています。
対話システムにおける処理の流れは、下記の通りです。
質問応答
質問応答システムとは一般に、特定の情報に関する自然言語で書かれた質問に対して、その回答を返すコンピュータシステムのことである。
例えば、Apple社のSiriも、質問応答システムの一種である。回答の種類にはファクトイド型質問応答と非ファクトイド型質問応答がある。
- ファクトイド型質問応答:「誰、何、どこ」などの単純な固有名詞などを答えられるもの
- 非ファクトイド型質問応答:「どうやって」「なぜ」などの単純な名詞などで答えることができないもの
質問応答システムは、回答のための知識源として大量の文章からなるデータベースをバックエンドに保持している。一般に、下記のステップを通して回答する。
- 質問解析
- 情報検索
- 情報抽出
- 回答選択
日本における自然言語処理の発展過程
用例ベース翻訳システム
用例ベース翻訳システムでは、数多くの例文と翻訳をデータベースとして集めておく。そして、新規の文を翻訳する際には、データベース中の類似した文や部分的な構造を組み合わせることで訳文を生成する。
これは、前述の翻訳メモリと非常に類似した考え方である。
●メリット
- 正しい訳文を追加することで翻訳の質を向上させることができる
●デメリット
- 大量な記憶容量を必要とする
- 例文の検索を工夫しなければいけない
日本語形態素解析
日本語形態素解析とは、日本語の文を単語に分割し、品詞や活用などの解析をするシステムである。
1. 初期の形態素解析システム:JUMAN
⇨人手により作られた辞書や規則をベースに開発された
2. 形態素解析器:ChaSen
⇨人手によらず統計的な手法により、自動的にコスト推定する
3. 日本語の係り受け解析器:KNP
4. 日本語形態素解析エンジン:MeCab
⇨CRF(条件付き確率場)によってコスト推定をする汎用テキスト処理エンジン
⇨汎用性の高さと解析速度の速さ、高い解析精度が特徴
統計的手法・機械学習の発展
確率・統計モデルを用いた統計的自然言語処理は、下記の二つの要因から可能になった。
- ウェブの発展で扱う言語データが膨大な量になったこと
- コンピュータの記憶容量や性能が向上したこと
また、SVM(サポートベクターマシン)やCRFなど、主要な機械学習のアルゴリズムを実装したライブラリやツールが手軽に利用できるようになった。
機械翻訳においても、原言語とその翻訳の目的言語の対訳文書からなるコーパスから、対訳辞書翻訳規則を統計的に抽出し、新たな入力の翻訳に用いる統計的機械翻訳**のアプローチが発展した。
自然言語処理の関連分野
人工知能・言語学・テキストマイニング
人工知能:
コンピュータを用いて、人間のような知能を実現することに関する学問である。
言語学:
人間の言語そのもの、もしくはそれに付随する仕組みを明らかにする学問である。
計算言語(Computational Linguistics):
統計や論理など計算的手法を利用して自然言語をモデリングする言語学の一分野である。
テキストマイニング:
確率・統計的な手法を用いて大量のテキストから有用な情報を引き出す技術の総称である。言語自体の処理よりも「役に立つ情報を引き出すこと」に重点が置かれた分野である。
例えば、企業が収集したレビューを形態素解析し、そこに含まれる単語から、肯定的・否定的な意見を抽出・分類する評判分析がある。
統計学・機械学習
機械学習:
実際のデータを参照し、傾向や規則などを自動的に抽出することにより、コンピュータのアルゴリズムを構築・改善する技術の総称である。人間の学習能力をコンピュータを用いて実現する技術である機械学習は、人工知能の一分野である。
規則や基準などを明示的にプログラムすることなく、入力から出力を予測するアルゴリズムなどが作成可能である。
統計学:
データの数値的な傾向や特徴を取り扱う学問である。
音声認識・音声合成
音声認識:
人間の話す言語(音声言語)をコンピュータによって解析し、文字や文章などに変換する技術である。
携帯デバイスに搭載されたSiriやGoogle Voice Search、人的コスト削減に向けた企業のコールセンターの自動応答システムなど、用途が広がっている。
音声認識システムでは、一般的に二つのモデルから構成されている。 - 音響モデル:どのような音素がどのような音(周波数成分)と対応しているかを規定する - 言語モデル:どのような音素の並びが言語として自然かを規定する
音声合成:
文字や文章などの書かれた言葉(テキスト)を音声に変換する技術である。
テキストを音声に変換することから、テキスト読み上げシステムと呼ばれることもある。
自然言語処理に関するキーワード
- EMアルゴリズム
- 確率的潜在意味インデクシング法(Probabilistic Latent Semantic Indexing:PLSI)
- サポートベクターマシン(Support Vector Machine:SVM)
- 確率論
- 最大エントロピー法
- EMアルゴリズムからスムージング
- Nグラム言語モデル
- 確率文法
- 線形回帰
- ロジスティック回帰
- ダブル配列
- LOUDSなどのデータ構造
- 機械学習アルゴリズム:条件付き確率場や構造化SVM
- 句や木構造
参考書籍
- 「言語処理のための機械学習入門」(高村 大智 著、奥村 学 監修)⇨キーワード1~3
- 「言語と計算(4)確率的言語モデル」(北 研二、辻井 潤一 著)⇨キーワード4~8
- 「日本語入力を支える技術」(徳永 拓之 著)⇨キーワード11~13
- 「機械翻訳」(渡辺 太郎、今村 賢治、賀沢 秀人、Graham Neubig、中澤 敏明 著、奥村 学 監修)⇨キーワード14