【英語】 Natural Language Processing

【読み】 シゼンゲンゴショリ

用語解説

日本語や英語などの人間が使用する言語データの処理のこと。UNICODEなどの単なる文字コード処理ではなく、意味的な解釈も含めた処理のことを指す。IMEによる「ひらがな漢字変換」も自然言語処理の一つである。自然言語処理の処理結果自体が最終的にビジネスに活用されること(例:機械翻訳の結果)もあるが、多くの事例では、データ分析の前処理の一つとして利用される。

自然言語処理とは
データ分析で取り扱うデータには、数値以外に文字も存在する。データ分析を機械で処理するためには、内部的に文字情報も数値へ変換して処理を行っている。ただし、自然言語処理でいう文字から数値への変換は、単なるUNICODEなどの文字コードへの変換を意味するものではない。例えば、「男」と「女」という2つの文字は文字コードの違いだけでなく、性別を区別する属性の意味も含んでいる。この意味的な解釈情報も考慮するため、自然言語処理と呼ばれる。
ここで、自然言語処理でいう「自然言語」とは、「日本語や英語など、人間が使用する言語」のことを指す。対比の用語として「形式言語」があるが、これはプログラミング言語などを示すときに使用する。データ分析ではプログラミングすることが多いため、「言語処理」だけでは、「人間が使用する言語の処理」のことなのか「プログラム言語での処理」なのか不明になる。そのため、誤解を避けるためにあえて「自然」という言葉を付与している。
 自然言語処理は、「英語の文章を単語や文に分割する」という比較的シンプルな処理から、「機械翻訳」、「機械文章生成」処理など高度かつ発展途上の処理まで幅広い領域を含む。身近なところでは、IMEによる「ひらがな漢字変換」や「スペルチェッカー」、「誤字脱字修正機能」も自然言語処理の一つである。
 データ分析において、自然言語処理の処理結果自体が最終的にビジネスに活用されること(例:機械翻訳の結果)もあるが、多くの事例では、データ分析の前処理の一つとして利用される。例えば、顧客ごとのアンケート調査における自由記載の回答欄に記載された文章から説明変数を作成したいとする。このとき、顧客ごとに記載内容が異なるため、記載されたテキストそのままの状態では、説明変数として利用できない。少なくとも、「頻度が高く、かつ分析で重要と思われる単語が含まれているかどうかを判断した変数を作成する」などの自然言語処理は必要である。より複雑な具体例としては、自由記載項目に出現する形態素を自然言語処理により抽出し、形態素ごとの出現回数を集計し、文書行列と呼ばれる説明変数を作成することができる。このような前処理として説明変数を作成した後は、数値データでも使用される手法(例:クラスタリング)で分析可能となる。(実際には、文書行列のスパース性などを考慮した特殊な手法が使用されることが多い。)
 
自然言語データの処理方法
自然言語処理では、文字の意味情報を含むため、文字情報と計算ルールだけですべての処理を行うことは一般的に困難である。既存の学習済の機械学習データを利用することが多い。日本語を単語ごとに分割する処理だけでも、単語ごとの、原形・変化形・品詞・読みなどのデータを予め準備する必要がある。このような単語辞書の作成には、大量の文字データ、大量の計算時間、複雑なアルゴリズムなどが必要であるため、一般公開されているライブラリなどを活用して自然言語処理を実施するのが普通である。ただし、自然言語処理ライブラリを用いた出力は、汎用的に作成されていることが多いため、分析で使用できるように、別途、前処理を実行するプログラムなどの作成が必要となる。例えば、単語ごとに分割にする処理にMeCabライブラリを使用する場合、「文章」を入力とすると、出力結果として「形態素ごとの単語一覧」が出力される。この「単語一覧」には、入力に使用した「文章」を分割しただけの状態の文字列と、その他の付加的な情報(例:品詞情報、原形など)が対応付くように格納されている。そのため、この「単語一覧」データから必要となる部分(例:「原形」部分のみ)を抽出する処理を行うプログラムを作成する。このように、分析の初心者が容易に使用できるものではないため、使いやすい形で設計されたプログラムやソフトを使用するほうが簡便であることが多い。
 
自然言語処理の事例: 
自然言語処理における処理内容は様々である。下記にいくつかの事例を記載する。
基礎的分析: 
・文字解析 : 1文字ごとに分割する (例:「日本語」→「日」「本」「語」)
  ・形態素解析 :意味上での最小単位に文字列を分割する(例:「日本語」→「日本」「語」)
  ・複合語解析:形態素解析での過剰な分割を修正する (例:「日本語」→「日本語」)
  ・格変化解析 : 記載文字列を原形に戻す(例:「走った」→「走る」)
  ・オントロジー解析:意味上での含有関係の単語を抽出する (例:「日本語」→「言語」)
  ・係り受け解析:主語・形容詞・動詞などの係り受け方を解析する(例:「私は走っている犬を見た。」→「私は見た」「走っている犬」)
  ・共起解析:同時に出現しやすい単語を抽出する (例:「日本」→「桜」)

応用的分析:
 ・ポジネガ分析:文章がポジティブな意味かネガティブな意味かを判断する(例:「私は悲しいわけではない。」→「中立」)
 ・感情分析:文章が意味する感情を判断する(例:「私は嬉しい」→「喜び」)
 ・主文章抽出:長文の中からエッセンスとなる重要な文を抽出する(例:「ニュース記事文面」→「XX氏がノーベル賞を受賞しました」)
 ・チャットbot: 入力された文から回答に関する重要単語を抽出し、質問に自動回答する(例:「新宿駅西口でおいしいイタリア料理店はどこ?」→「XXX店がおすすめです。」)

まとめ: 
 自然言語処理の活用は1960年代に開発されたイライザというシンプルなチャットボットから、近年の大規模な深層学習を用いたGPT-3による文章自動生成まで、長い歴史がある。高度な自然言語処理が可能になった背景には、技術の発展とともに、大量のテキストデータが蓄積されるようになったことも大きい。DXを推進するには、まず、データを電子化するデジタイゼーションから始まる。大量のテキストデータが電子化された恩恵により、現在の高度な自然言語処理が可能になった時代へ変化・革新したといえる。

関連キーワード

関連事例


運営会社へのお問い合わせは、下記ボタンよりお問い合わせください。

運営会社へのお問い合わせはこちら 

bodais

bodais

DX総合支援サイト

運営会社