この記事は
英語版の対応するページ を翻訳することにより充実させることができます。 (2023年12月 ) 翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。
英語版記事を日本語へ機械翻訳したバージョン (Google翻訳)。 万が一翻訳の手がかりとして機械翻訳を用いた場合、翻訳者は必ず翻訳元原文を参照して機械翻訳の誤りを訂正し、正確な翻訳にしなければなりません。これが成されていない場合、記事は削除の方針G-3 に基づき、削除される可能性があります。 信頼性が低いまたは低品質な文章を翻訳しないでください。もし可能ならば、文章を他言語版記事に示された文献で正しいかどうかを確認してください。 履歴継承 を行うため、要約欄 に翻訳元となった記事のページ名・版について記述する必要があります。記述方法については、Wikipedia:翻訳のガイドライン#要約欄への記入 を参照ください。翻訳後、{{翻訳告知 |en|Natural language processing|…}}をノート に追加することもできます。 Wikipedia:翻訳のガイドライン に、より詳細な翻訳の手順・指針についての説明があります。
言語学 世界の言語分布図 基礎分野 言語の変化と変異 理論 応用分野 関連項目
自然言語処理 (しぜんげんごしょり、英語 :Natural language processing 、略称:NLP)は、人間が日常的に使っている自然言語 をコンピュータ に処理させる一連の技術であり、人工知能 と言語学 の一分野である。「計算言語学 」(computational linguistics )との類似もあるが、自然言語処理は工学 的な視点からの言語処理をさすのに対して、計算言語学 は言語学 的視点を重視する手法をさす事が多い[ 1] 。データベース 内の情報を自然言語に変換したり、自然言語の文章 をより形式的な(コンピュータが理解しやすい)表現に変換するといった処理が含まれる。応用例としては機械翻訳 や仮名漢字変換 が挙げられる。
自然言語の理解をコンピュータにさせることは、自然言語理解 とされている。自然言語理解と、自然言語処理の差は、意味を扱うか、扱わないかという説もあったが、最近は数理的な言語解析手法(統計や確率など)が広められた為、パーサ (統語解析器)などの精度や速度が一段と上がり、その意味合いは違ってきている。もともと自然言語の意味論 的側面を全く無視して達成できることは非常に限られている。このため、自然言語処理は形態素解析 と構文解析 、文脈解析、意味解析などをSyntax など表層的な観点から解析をする学問であるが、自然言語理解は、意味をどのように理解するかという個々人の理解と推論部分が主な研究の課題になってきており、両者の境界は意思や意図が含まれるかどうかになってきている。
自然言語処理の基礎技術にはさまざまなものがある。自然言語処理はその性格上、扱う言語によって大きく処理の異なる部分がある。現在のところ、日本語 を処理する基礎技術としては以下のものが主に研究されている。
現状発達している言語AI技術は、多次元のベクトルから、単語や文書の意味の近さを、その相互関係から推定しているもので、「AIの言語理解 」は「人間の言語理解」は根本的に別物である[ 2] 。
「自然言語理解 は、AI完全 問題 」と言われることがある。なぜなら、自然言語理解には世界全体についての知識とそれを操作する能力が必要と思われるためである。「理解;understanding 」の定義は、自然言語処理の大きな課題のひとつでもある。
人間とコンピュータの間のインタラクションのインタフェース(ヒューマンマシンインタフェース )として、自然言語がもし使えたら非常に魅力的である、といったこともあり、コンピュータの登場初期(1960年頃)には自然言語処理にある種の過剰な期待もあった。SHRDLU などの初期のシステムが、世界を限定することで非常にうまくいったことにより、すぐに行き過ぎた楽観主義に陥ったが、現実を相手にする曖昧さや複雑さがわかると、楽観的な見方や過剰な期待は基本的には無くなった。しかし、何が簡単で何が難しいのか、といったようなことはなかなか共有されなかった。
やがて、21世紀に入ってしばらく後に「音声認識による便利なシステム」がいくつか実用化・実運用され多くの人が利用したことで、何が簡単で、どういう事に使うのは難しいのかが理解されるようになりつつある模様である。
2013年のGoogle のWord2vec は今でも使われている[ 3] [ 4] 。
2019年、GPT-2 、BERT など、ディープラーニング を応用した手法で大きなブレークスルーがあった。
2022年以降、ChatGPT のリリースにより自然言語処理に大きな注目が集まっている。
自然言語処理(理解)における課題をいくつかの例を用いて示す。
We gave the monkeys the bananas because they were hungry. (猿が腹を空かせていたので、バナナを与えた。)
We gave the monkeys the bananas because they were over-ripe. (バナナは熟れ過ぎていたので、猿に与えた。)
は、品詞としては全く同じ順序の並びである。しかし、they が指すものは異なっていて、前者では猿、後者ではバナナとなっている。この例文の場合、they の指す内容は英語の文型 の性質によって決定することができる。すなわち、「they (主語)=hungry (補語)」の関係が成り立ち、補語には主語の性質を示すものがくるので、hungry なのはthe monkeys 、したがって、「they =the monkeys 」と決まる。後者も同様に、over-ripe というのはthe bananas の性質だから、「they =the bananas 」となる。つまり、これらの文章を区別し正しく理解するためには、意味、すなわち、猿の性質(猿は動物で空腹になる)とバナナの性質(バナナは果物で成熟する)といったことを知っていて解釈できなければならない。
Time flies like an arrow. (光陰矢の如し )
という文字列は以下のように様々に解釈できる。 典型的には、比喩 として、「時間 が矢のように素早く過ぎる」と解釈する。 「空を飛ぶ昆虫の速度を矢の速度を測るように測定せよ」つまり(You should) time flies as you would (time) an arrow. と解釈する。 「矢が空を飛ぶ昆虫の速度を測るように、あなたが空を飛ぶ昆虫の速度を測定せよ」つまりTime flies in the same way that an arrow would (time them). と解釈する。 「矢のように空を飛ぶ昆虫の速度を測定せよ」つまりTime those flies that are like arrows と解釈する。 「"time-flies" (時バエ)という種類の昆虫は1つの矢を好む」この解釈には集合的な解釈と個別的解釈がありうる。 「TIME という雑誌は、投げると直線的な軌跡を描く」 英語では特に語形変化による語彙の区別をする機能が弱いため、このような問題が大きくなる。
また、英語も含めて、形容詞と名詞の修飾関係の曖昧さもある。例えば、"pretty little girls' school" (かわいい小さな少女の学校)という文字列があるとする。
その学校は小さいだろうか? 少女たちが小さいのだろうか? 少女たちがかわいいのだろうか? 学校がかわいいのだろうか? 他にも次のような課題がある。
形態素解析 中国語 、日本語 、タイ語 といった言語は単語のわかち書き をしない。そのため、単語の区切りを特定するのにテキストの解析が必要となり、それは非常に複雑な作業となる。音声における形態素解析 音声言語において、文字を表す音は前後の音と混じっているのが普通である。従って音声から文字を切り出すのは、非常に難しい作業となる。さらに、音声言語では単語と単語の区切りも(音としてのみ見れば)定かではなく、文脈や文法や意味といった情報を考慮しないと単語を切り出せない。 語義の曖昧性 多くの単語は複数の意味を持つ。従って、特定の文脈においてもっともふさわしい意味を選択する必要がある。 構文の曖昧性 自然言語 の構文(構文規則)は曖昧 である。1つの文に対応する複数の構文木 が存在することも多い。もっとも適切な解釈(構文木)を選択するには、意味 的情報や文脈情報を必要とする。不完全な入力や間違った入力 主語の省略や代名詞の対応などの問題(照応解析 )。音声におけるアクセントのばらつき。構文上の誤りのある文の解析。光学文字認識 における誤りの認識など。 言語行為 文章は文字通りに解釈できない場合がある。例えば"Can you pass the salt?" (塩をとってもらえますか?)という問いに対する答えは、塩を相手に渡すことである。これに"Yes" とだけ答えて何もしないのはよい答えとは言えないが、"No" はむしろありうる答えで、"I'm afraid that I can't see it" はさらによい(塩がどこにあるかわからないとき)。 統計的自然言語処理は、確率論的 あるいは統計学 的手法を使って、上述の困難さに何らかの解決策を与えようとするものである。長い文になればなるほど、従来型の自然言語処理では解釈の可能性の組合せが指数関数的に増大していき、処理が困難となる。そのような場合に統計的自然言語処理が効果を発揮する。コーパス言語学 やマルコフ連鎖 といった手法が使われる。統計的自然言語処理の起源は、人工知能 の中でもデータからの学習を研究する分野である機械学習 やデータマイニング といった分野である。
一見、統計的自然言語処理は確率モデル型自然言語処理にのみ適用されるように見えるが、実は4大自然言語処理の1つである注意モデル型自然言語処理にも統計の概念が必要なのである [要説明 ] [ 5] 。
自然言語処理の応用技術として、以下のような技術が研究・実用化されている。また、言語学 への応用も考えられている。
資料 サーベイ 研究者の団体 オープン実装