自然言語処理

自然言語処理(NLP)は、コンピュータと人間(自然)言語との相互作用、特に大量の自然言語データを処理および分析するためのコンピュータのプログラミング方法に関するコンピュータサイエンス、情報工学、および人工知能のサブフィールドです。

自然言語処理における課題は、音声認識、自然言語理解、および自然言語生成を伴うことが多い。

歴史
自然言語処理の歴史は、一般に1950年代に始まりましたが、以前の作業から作業を見つけることができます。 1950年、Alan Turingは「知能」というタイトルの論文を発表しました。この記事では現在、知能の基準としてチューリング・テストと呼ばれるものが提案されています。

1954年のジョージタウン実験では、60字以上のロシア語の文章を英語に完全自動翻訳しました。 著者らは、3〜5年以内に機械翻訳が解決されると主張した。 しかし、実際の進歩ははるかに遅く、1966年のALPAC報告書によれば、10年にわたる研究が期待を達成できなかったことが判明したため、機械翻訳の資金が劇的に削減されました。 最初の統計的機械翻訳システムが開発された1980年代後半まで、機械翻訳の研究はほとんど行われなかった。

1960年代に成功した自然言語処理システムの中には、制限されたボキャブラリを持つ制限されたブロック世界で働く自然言語システムであるSHRDLUと、1964年から1966年にジョセフ・ワイズンバウムによって書かれたロジェリア心理療法士のシミュレーションであるELIZAがあります。エリザは人間の思考や感情に関する情報がなく、時には驚くほど人間関係のような相互作用をもたらしました。 「患者」が非常に小さな知識ベースを超えた場合、ELIZAは「頭が痛いと言っているのはなぜですか?」と「私の頭が痛い」と応答するなど、一般的な対応を提供する可能性があります。

1970年代には、多くのプログラマが、実世界の情報をコンピュータで理解可能なデータに構造化した「概念上のオントロジー」を作成し始めました。 その例としては、MARGIE(Schank、1975)、SAM(Cullingford、1978)、PAM(Wilensky、1978)、TaleSpin(Meehan、1976)、QUALM(Lehnert、1977)、Politics(Carbonell、1979)、Plot Units )。 この間、PARRY、Racter、Jabberwackyを含む多くのチャプターロボットが書かれました。

1980年代まで、ほとんどの自然言語処理システムは複雑な手書きルールに基づいていました。 しかし、1980年代後半から、言語処理のための機械学習アルゴリズムが導入され、自然言語処理に革命が起こった。 これは、計算力の恒常的な増加(ムーアの法則を参照)と、言語学の理論(例えば、変形文法)のチョムスキー理論の支配の漸進的な減少の両方によるものであった。その理論的根拠は機械学習アプローチの基礎をなすコーパス言語学言語処理。 意思決定ツリーのような、初期に使用された機械学習アルゴリズムの中には、既存の手書きルールと同様のハードif-thenルールのシステムがありました。 しかし、品詞タグ付けは、自然言語処理に隠れマルコフモデルの使用を導入し、ますます、入力を構成するフィーチャに実値ウェイトを付けることに基づいて、ソフトで確率的な決定を行う統計モデルに焦点を当てた研究データ。 多くの音声認識システムがここに依存するキャッシュ言語モデルは、このような統計モデルの例である。 そのようなモデルは、一般に、馴染みのない入力、特に誤差を含む入力(実世界のデータでは非常に一般的です)でより堅牢で、複数のサブタスクを含むより大きいシステムに統合された場合により信頼性の高い結果をもたらします。

特に複雑な統計モデルが開発されたIBM Researchで働いていたため、初期の成功例の多くは機械翻訳分野で発生しました。 これらのシステムは、すべての政府手続を対応する政府制度のすべての公用語に翻訳することを要求する法律の結果として、カナダ議会および欧州連合によって作成された既存の多言語テキストコーパスを利用することができました。 しかし、他のほとんどのシステムは、これらのシステムによって実現されたタスク用に特別に開発されたコーパスに依存していました。 その結果、限られた量のデータからより効果的に学習する方法が研究されてきました。

最近の研究では、監督されていない学習と半教師付き学習のアルゴリズムにますます集中しています。 そのようなアルゴリズムは、所望の回答でハンドアノテートされていないデータから、または注釈付きデータと非注釈付きデータの組み合わせを使用して学習することができる。 一般に、このタスクは教師あり学習よりはるかに困難であり、一般に与えられた量の入力データに対してより正確でない結果を生成する。 しかし、使用されているアルゴリズムが十分に時間の複雑さが低い場合、劣った結果を補うことができる非注釈付きデータ(World Wide Webの全内容を含む)が膨大な量である実用的である。

2010年代には、表現学習と深いニューラルネットワークスタイルの機械学習方法が、自然言語処理で広く普及しました。これは、そのような技術が多くの自然言語タスクで最先端の結果を達成でき、例えば、言語モデリング、構文解析、および多くの他のものにおいて。 一般的な手法には、単語の意味属性を捕捉するための単語埋め込みの使用や、別々の中間的なタスク(例:質問応答)のパイプラインに頼るのではなく、より高いレベルのタスク品詞タグ付けおよび依存性解析)。 いくつかの分野では、この移行により、NLPシステムの設計方法が大幅に変更され、深いニューラルネットワークベースのアプローチは、統計的自然言語処理とは異なる新しいパラダイムとみなされる可能性があります。 例えば、神経機械翻訳(NMT)という用語は、深い学習ベースの機械翻訳へのアプローチがシーケンス間変換を直接学習し、統計的に使用された単語アラインメントや言語モデリングなどの中間ステップの必要性を排除するという事実を強調している機械翻訳(SMT)。

ルールベース統計NLP
初期の段階では、多くの言語処理システムは、一連のルールを手書きでコーディングすることによって設計されました。例えば、文法を書くことや、ステミングのヒューリスティックなルールを工夫することによって設計されました。 しかしながら、これは一般的に自然言語の変化に強くない。

1980年代後半と1990年代半ばのいわゆる「統計的革命」以来、多くの自然言語処理研究は機械学習に大きく依存していました。

機械学習のパラダイムでは、代わりに統計的推論を使用して、典型的な実世界の例の大規模なコーパスの分析を通じてそのようなルールを自動的に学習するよう呼びかけている(コーパス(複数の「コーパス」)は、おそらく人間またはコンピュータの注釈)。

多くの異なるクラスの機械学習アルゴリズムが自然言語処理タスクに適用されてきました。 これらのアルゴリズムは、入力データから生成された大きなセットの「フィーチャ」を入力として受け取ります。 デシジョンツリーなどの最も初期に使用されたアルゴリズムの一部は、一般的な手書きルールのシステムと同様のハードif-thenルールのシステムを生成しました。 しかし、研究はますます統計的モデルに焦点を当てており、実際の重み付けを各入力フィーチャに付けることに基づいて、ソフトで確率的な決定を行います。 そのようなモデルは、より大きいシステムの構成要素としてそのモデルが含まれている場合に、より信頼性の高い結果を生成するだけでなく、多くの異なる可能な解答の相対的確実性を表すことができるという利点を有する。

機械学習アルゴリズムに基づくシステムは、手作業によるルールよりも多くの利点を有する。

機械学習中に使用される学習手順は、最も一般的な場合に自動的に焦点を合わせますが、手作業でルールを書くときには、その努力がどこで指示されるべきかはまったく明らかではありません。
自動学習手順では、統計的推論アルゴリズムを使用して、未知の入力(以前には見られなかった単語や構造を含む)や誤った入力(誤って省略された単語や誤った単語など)に対して堅牢なモデルを生成できます。 一般的に、手書きルールでそのような入力を適切に処理するか、より一般的には、柔らかい意思決定を行う手書きルールのシステムを作成することは、非常に困難でエラーが発生しやすく時間がかかります。
規則を自動的に学習することに基づくシステムは、より多くの入力データを供給することによって、より正確にすることができる。 しかし、手書きルールに基づくシステムは、ルールの複雑さを増やすことによってのみより正確にすることができます。これははるかに難しい作業です。 特に、手作業のルールに基づくシステムの複雑さには限界があります。それを超えると、システムはますます管理できなくなります。 しかし、機械学習システムに入力するためにより多くのデータを作成するには、一般に注釈プロセスの複雑さを大幅に増加させることなく、作業工数の増加が必要になります。

主な評価と課題
以下は、自然言語処理における最も一般的に研究されているタスクのリストです。 これらのタスクの中には、実際のアプリケーションに直接的なものがある一方で、より大きなタスクを解決するのに役立つサブタスクとして機能するものがあります。

自然言語処理タスクは密接に絡み合っていますが、便宜のために頻繁にカテゴリに細分されています。 粗い分割が以下に与えられます。

構文

文法誘導
言語の構文を記述する正式な文法を生成する。

レミメーション

形態学的セグメンテーション
単語を個々の形態素に分離し、形態素のクラスを識別する。 この作業の難しさは、考慮されている言語の形態学(すなわち、単語の構造)の複雑さに大きく依存する。 英語はかなり単純な形態、特に屈折形態学を持っているので、この作業を完全に無視して、単語の可能なすべての形を別々の単語として単純にモデリングすることができます(例:「開く、開く、開いた、開く」)。 しかし、トルコ語やMeiteiのような高度に統合されたインド語のような言語では、そのようなアプローチは可能ではありません。

品詞タグ付け
文があれば、各単語の品詞を決定する。 多くの単語、特に一般的な単語は、複数の品詞として使用できます。 たとえば、「book」は名詞(「テーブル上の本」)または動詞(「飛行機を予約する」)にすることができます。 “set”は名詞、動詞または形容詞です。 「out」は、少なくとも5つの異なる品詞のいずれかであり得る。 言語の中には、他の言語よりもあいまいさがあるものもあります。[反論 – 議論]英語のように、屈折率の低い形態を持つ言語は、あいまいさに特に悩まされます。 中国語はあいまいさになりがちです。なぜなら、それは言葉遣い中の音色ですから。 そのような変容は意図された意味を伝えるために正書法内で用いられる実体を介して容易に伝達されない。

解析
与えられた文の解析木(文法解析)を決定する。 自然言語の文法はあいまいであり、典型的な文章は複数の可能な分析を有する。 実際、おそらく驚くべきことに、典型的な文では、数千もの構文解析があります(そのほとんどは人間にとって完全に無意味に見えるでしょう)。 主な構文解析には、Dependency ParsingとConstituency Parsingの2種類があります。 依存関係解析では、文中の単語間の関係(主オブジェクトや述語などのマーク付け)に焦点を当てていますが、Constituency ParsingではPCFG(Probabilistic Context-Free Grammar)を使用して構文解析ツリーを構築することに焦点を当てています。

センテンスの崩壊(文境界の曖昧さ除去とも呼ばれる)
与えられたテキストの塊で、文の境界を見つけます。 文境界にはピリオドやその他の句読記号が付いていることがよくありますが、これらの文字は他の目的に使用できます(例:略語のマーキング)。

ステミング
ワードセグメンテーション
連続するテキストの塊を別々の単語に分けます。 英語のような言語では、単語は通常スペースで区切られるので、これはかなり簡単です。 しかし、中国語、日本語、タイ語などの書かれた言語の中には、そのような方法で単語の境界を記入するものはなく、これらの言語では、テキストのセグメンテーションは言語の語彙や形態の知識を必要とする重要な作業です。 場合によっては、このプロセスは、データマイニングのBag of Words(BOW)作成のようなケースでも使用されます。

用語抽出
用語抽出の目的は、特定のコーパスから関連用語を自動的に抽出することです。

セマンティクス

レキシカルセマンティクス
コンテキスト内の個々の単語の計算上の意味は何ですか?

機械翻訳
テキストをある人間の言語から別の言語に自動的に翻訳します。 これは最も困難な問題の1つであり、「AI完成」と呼ばれる問題のクラスのメンバーです。つまり、人間が持っているさまざまな種類の知識(文法、意味、現実に関する事実など)を必要とするものです。 。)適切に解決するために。

名前付きエンティティ認識(NER)
テキストのストリームが与えられた場合、人や場所などの適切な名前と、そのような名前の種類(人、場所、組織など)をテキストマップのどの項目で判断しますか。 大文字小文字は、英語などの言語で名前付きエンティティを認識するのに役立ちますが、この情報は名前付きエンティティのタイプを判断するのに役立つものではなく、いずれの場合も不正確または不十分であることが多いことに注意してください。 たとえば、文の最初の単語も大文字にし、名前付きのエンティティは複数の単語にまたがることが多く、そのうちのいくつかだけが大文字になります。 さらに、非西洋のスクリプト(中国語やアラビア語など)の他の多くの言語では、大文字と小文字の区別がありません。 たとえば、ドイツ語は名前であるかどうかに関係なく、すべての名詞を大文字に変換し、フランス語とスペイン語では形容詞となる名前を大文字に変換しません。

自然言語の生成
情報をコンピュータのデータベースや意味のインテントから読みやすい人間言語に変換する。

自然言語理解
テキストのチャンクを、コンピュータプログラムが操作しやすい一次論理構造など、より正式な表現に変換します。 自然言語の理解は、自然言語の概念の整理された表記の形式をとる自然言語表現から導くことができる、複数の可能な意味論から意図された意味論を識別することを含む。 言語メタモデルとオントロジーの導入と作成は実証的な解決策ではあるが効率的である。 閉じた世界の仮定(CWA)対オープンワールドの仮定、または主観的なYes / No対客観的True / Falseのような暗黙の仮定との混乱を伴わない自然言語セマンティクスの明示的公式化は、セマンティクスの形式化の基礎を構築するために期待される。

光学式文字認識(OCR)
印刷されたテキストを表す画像があれば、対応するテキストを決定する。

質問に答える
人間言語の質問があれば、その答えを決定する。 典型的な質問には特定の正解(「カナダの首都とは何ですか?」など)がありますが、「人生の意味はどういうものなのか」などの自由な質問も考慮されることがあります。 最近の研究では、より複雑な質問が検討されています。

テキストの含意を認識する
2つのテキストフラグメントが与えられた場合、真であるものが他のものを伴うか否かを決定し、他の否定を伴い、または他方を真または偽にする。

関係抽出
テキストの塊を考えると、指定されたエンティティ間の関係を特定する(例えば誰が誰と結婚しているか)。

感情分析(マルチモーダル感情分析も参照)
通常、オンラインレビューを使用して特定のオブジェクトについての「極性」を決定する、一連のドキュメントから主観的な情報を抽出します。 これは、マーケティングの目的で、ソーシャルメディアにおける世論の動向を特定するのに特に有用です。

トピックのセグメンテーションと認識
テキストの塊を考えると、それぞれのトピックを特定するセグメントに分割し、セグメントのトピックを特定します。

ワードセンスの曖昧さ回避
多くの単語には複数の意味があります。 私たちは文脈の中で最も意味をなす意味を選択しなければなりません。 この問題では、通常、辞書やWordNetなどのオンラインリソースから、単語と関連する単語のリストが表示されます。

談話

自動要約
テキストの塊の可読な要約を作成します。 新聞の財務セクションの記事など、既知のタイプのテキストの要約を提供するためによく使用されます。
コアレファレンス解決

文またはそれ以上のテキストがあれば、どの単語(「言及」)が同じオブジェクト(「エンティティ」)を参照するかを決定します。 照応解答はこのタスクの具体的な例であり、具体的には代名詞をそれらが参照する名詞または名前と照合することに関係する。 また、より一般的なコリレーション解決のタスクには、参照式を含むいわゆる「ブリッジング関係」の特定も含まれます。 例えば、「彼は玄関を通ってジョンの家に入った」などの文章では、「正面玄関」は参照する表現であり、識別されるべき橋渡し関係は、参照される扉がジョンの正面扉であるという事実である(参照される可能性のある他の構造ではなく)

談話分析
このルーブリックには多数の関連タスクが含まれています。 1つのタスクは、接続されたテキストの談話構造、すなわちセンテンス間の談話関係の性質(例えば、精緻化、説明、コントラスト)を特定することである。 別の可能なタスクは、テキストの塊(例えば、イエス – 質問無し、内容質問、ステートメント、アサーションなど)内のスピーチ行為を認識し、分類することである。

スピーチ

音声認識
人または話す人々の健全なクリップを与えられたら、スピーチのテキスト表現を決定する。 これは音声対話の反対であり、「AI完成」(上記参照)と呼ばれる非常に困難な問題の1つです。 自然な音声では、連続する単語の間に一時停止はほとんどなく、したがって音声のセグメンテーションは音声認識の必要なサブタスクである(下記参照)。 また、ほとんどの音声言語では、連続する文字を表す音が、補間と呼ばれる処理で互いに混ざり合っているため、アナログ信号の離散文字への変換は非常に困難なプロセスになります。

音声セグメンテーション
人や話す人の音声クリップを考えて、それを単語に分けてください。 音声認識のサブタスクで、通常はそれにグループ化されます。

テキスト読み上げ
テキストが与えられた場合、それらの単位を変換して音声表現を生成する。 視覚障害者を支援するためにテキスト読み上げを使用することができます。