テキストのコンピューター理解:それは本当に悪いですか?

ごく最近、Habréに投稿掲載されました。著者は、コンピューターはテキストを人が理解する方法では決して理解できないと著者は自信を持って述べています。 証拠として、彼は機械にとって不可能な多くのタスクを挙げ、効果的なアルゴリズムの欠如と、テキストを構築するためのすべての可能なオプションが考慮される完全なシステムのモデリングの不可能性を強調しました。 しかし、本当に悪いのでしょうか? そのような問題を解決するには、信じられないほどの計算能力が必要なのは本当ですか? そして、自然言語のワードプロセッシングの分野の一般的な状態は何ですか?



そして、「理解する」とはどういう意味ですか?



私を混乱させた最初のことは質問そのものでした-コンピュータテキストを人が理解する方法で理解できるようになります。 実際、「人として理解する」とはどういう意味ですか? それともそうでなくても、「理解する」とはどういう意味ですか? Data Mining:Practical Machine Learning Tools and Techniquesで、著者は同様の質問をします-訓練されるとはどういう意味ですか? 「インタープリター」に何らかの学習手法を適用したとします。 彼が勉強したかどうかを確認する方法は? 学生がその主題に関するすべての講義に出席した場合、それは彼がそれを学んで理解したという意味ではありません。 これをテストするために、彼らは、学生が主題トピックに関するいくつかの問題を解決するように求められる試験を入力します。 コンピューターでも同じこと-特定の適用された問題の解決方法をチェックするだけで、彼が学んだかどうか(テキストを理解したかどうか)を知ることができます-テキストを翻訳し、事実を強調し、多値単語の特定の意味を与えます、など この観点から、意味の概念は一般的に最重要事項を失います-テキストを処理する通訳者のある状態のみが意味と見なされます。



あいまいな言葉



さらに、元の記事の著者は、「ニコライがソーニャからの手紙を最初に印刷した」という文の翻訳例を示しており、「印刷」という単語をまったく異なる意味で翻訳するためのいくつかの可能なオプションを示しています。 人は危険にさらされているものを簡単に理解できますが、機械はできますか?

この質問に答えるために、この言葉が使われている意味について人がどのように決定するかを考えます。 まず、このような問題を解決するときは、 コンテキストに焦点を当てることに誰もが同意すると思います 。 コンテキストは、特定の文をフレーミングする文の形で、または暗黙的に-特定の文に関する知識の組み合わせとして表現できます(この場合、文は小説「戦争と平和」、プロットが行われる時間に関する知識から取られているという知識) 、およびその時点での進捗状況に関する知識)。



最初に、最初のオプション-文脈依存文の使用を検討してください。 2組の文があるとします。「最初に、ニコライはSonyaからの手紙を印刷しました。 トーチの観点からそれを読むことは困難でした。そして、ニコライはソーニャからの手紙を最初に印刷した人でした。 プリンターはジャンクだったので、一部の場所ですべてのキャラクターがはっきりしていなかった。 各ペアの2番目の文には、前の文の "printed out"という単語の意味を一意に識別することができるキーワードがあります。最初の場合は "splinter"、2番目の場合は "printer"です。 質問:コンピューターが問題の単語の本当の意味を見つけるために同じ操作を行うことを妨げるものは何ですか? なし。 実際、単語の意味を決定するシステムは、実際に長い間使用されてきました。 たとえば、 tf-idfインデックスは 、関連性を計算するときに検索エンジンで広く使用されています。 原則として、単語の同時発生に関する情報(「印刷」と「スプリンター」、「印刷」と「プリンター」)が収集され、それに基づいて、より関連性の高い文書または単語翻訳のより正確なバージョンが選択されます。



暗黙的なコンテキスト、つまり、状況に関する一連の知識を使用すると、すべてが多少複雑になります。 ここでの統計の単純な収集では十分ではありません-知識が必要です。 また、一般的な知識とは何ですか、どのように表現できますか? 表現の1つの方法はオントロジーです。 最も単純な場合、オントロジーは、<Subject、Predicate、Object>という形式のファクトのセットです。たとえば、<Nikolay、is、Man>です。 オントロジー自体の構築は、特定の主題分野であっても、穏やかに言えばかなり大きなビジネスです。 小さくはありませんが、不可能ではありません。 Linked Dataなど、多くのイニシアチブがあり、人々が世界中に集まり、相互接続された概念のウェブを構築します。 さらに、テキストからの事実の自動抽出に関する多くの非常に成功した開発があります。 つまり 「最初のニコライがソニアからの手紙を印刷した」という文から、事実<ニコライ、印刷、手紙>、<レター、から、ソニア>などを自動的に推測できます。 このような開発のオープンソースの例は、英語の文章の構造をよく理解しているスタンフォードパーサーです。 また、InventionMachine(広告が既に配置されているためリンクを挿入しません)などの一部の企業は、事実調査システムでビジネスを構築しています。

しかし、気が散りました。 それで、私たちはすでに主題領域に対して多かれ少なかれ完全なオントロジーを持っていると仮定します。 簡単にするために、それは人々によって収集されていると想定しているため、「印刷」という言葉はその中に数回表示されます。 「開かれた」という意味では、この言葉は事実<[誰か]、印刷された、前提>を形成できます。 「印刷」という意味では、実際には<print、what、printer>で使用できます。 最後に、状況の知識がすでにオントロジーに存在していると仮定します。 この場合、単語の正しい意味を決定するタスクは、単語「印刷」のすべての可能な値のオントロジーに関する提案のすべての事実を表示し、最もよく知られている事実(状況に関する事実と文から直接抽出された事実の両方) )



先に進む前に、いくつかの結論を導きます。



1.統計は強力なテキスト分析ツールです。

2.テキストから知識(事実)を抽出することは現実です。

3.サブジェクト領域に関する知識ベースの作成は、難しいが実行可能なタスクです。



その他のタスク



さらに、この記事の著者は、私の意見では、かなり無秩序に、コンピューターに対して完全に免疫があると思われるいくつかの特定のタスクを引用しています。 私は議論しません、いくつかのタスクは本当に非常に複雑です。 複雑ですが、影響を受けません。 以下では、前述のタスクをランダムな順序で可能な解決策とともに示しますが、最初に自然言語処理自体の規律についてもう少し説明します。



NLPの観点から見ると、テキストは一連の機能です。 これらの記号は、単語(語の語根と形、大文字小文字、大文字小文字、品詞)、句読点(特に末尾に付ける記号)、絵文字、完全な文章です。 これらの特性に基づいて、より複雑なものを構築することもできます-n-gram(単語のシーケンス)、評価グループ(評価グループ、同じシーケンスですが、「非常に良い」などのグレードの表示)、特定の辞書からの単語。 さらに複雑なもの-連想、反意語と同義語、同音異義語など これらすべては、テキスト処理の特定のタスクを解決する際の指標として、法廷であなたに対して使用できます。



したがって、タスク自体。



テキストの雰囲気を判断する


一般に、著者は完全に明確な区分ではないことを提案しました-テキストはおかしく、テキストは悲しいです。 3つの分類オプションが思い浮かびます。



1.テキストは楽観的/悲観的です。

2.正/負(フィードバックなど)。

3.ユーモラス/深刻。



いずれにせよ、これは分類タスクです。つまり、ナイーブベイズやSVMなどの標準アルゴリズムを使用できます。 唯一の質問は、最大の分類結果を達成するために、テキストからどの標識を取るかです。

テキストの楽観的および悲観的な分類を扱ったことはありませんが、すべての単語の語根を記号として使用するだけで十分だと思います。 クラスごとに辞書をコンパイルすることで、結果をさらに改善できます。 たとえば、「悲しい」、「孤独」、「悲しみ」などの単語は「悲観的」な辞書に、「クール」、「ヨー」、「楽しい」は「楽観的」な辞書に入力できます。

レビューやその他のユーザーが生成したコンテンツの分類は、特定のオブジェクト(新しいカメラ、政府の行動、Microsoft)に対するスピーカーの態度を最近示しているため、別の分野でも取り上げられています-オピニオンマイニング、別名センチメント分析)([1]、[2])。 意見を抽出するには、多くのアプローチがあります。 少なくとも5〜6個の文章からなるテキストの場合、評価グループはそれ自体をよく示しました[3](正確に定義された意見の90.2%までの結果)。 小さいテキスト(ツイートなど)の場合は、他の属性を使用する必要があります-事前定義された辞書の単語、大文字小文字、絵文字など

ユーモラスなテキストを定義するタスクはそれほど一般的ではありませんが、特定の成果があります([4])。 原則として、反意語、頭韻、および「大人のスラング」は、ユーモアを定義するために使用されます。

また、ユーモアだけでなく皮肉を込めた皮肉なことに、コンピューターは非常にうまく認識する方法を知っていることも注目に値します。 とにかく、シェルドンクーパーよりはましだ。



著者のイデオロギー


彼の能力、仕事へのアプローチ、家族関係、隠れた複合体だけでなく。 テキストに反映されているすべてのものを見つけることができます。 平均的な人が見ないものでさえ。 適切な兆候を強調し、分類器を適切にトレーニングするだけで十分です。 はい、結果はそれほど正確ではないかもしれませんが、たとえば、Wikipediaは一般に、人々の間でそのようなことを正しく判断できるのは70%だけであり、70%はそのような分類子の平均を下回っています。



比phor、ことわざ、デフォルト


これらすべてのタスクには追加情報が必要です。 サブジェクトエリアのオントロジーが用意されている場合、類似のプロパティを持つオブジェクトを見つけるのは難しくありません。このため、統計データに基づいて特定の近接度が計算され、最も関連性の高いオブジェクトが検索されます。



自動翻訳


上記で示したように、自動翻訳で多値単語の特定の意味を判断する問題は、統計分析を使用して解決できます。 したがって、唯一の本当の問題は整形式テキストの生成です。 ここには2つのサブタスクがあります。



1.単語間の関係の正しい定義。

2.新しい言語で見つかった構造の正しい表示。



単語間の関係を決定するタスクは基本的に同じ分類タスクであり、クラスはすべて単語間の可能な関係です。 スタンフォードパーサーなどのライブラリは、確率的分類器とファジーセット理論を使用して、単語間の関係の最も「正しい」バージョンを決定します。



しかし、見つかった構造を新しい言語にマッピングすると、実際に問題が発生します。 しかし、これらの問題のほとんどはコンピューターの問題ではなく、翻訳の問題です。 プロの翻訳者は、知っている言語を示すことは決してありません。代わりに、 翻訳方向を示します。 たとえば、翻訳者はイタリア語からロシア語に翻訳できますが、ロシア語からイタリア語には翻訳できません。 それはもちろん、彼らは何らかの形で逆翻訳を行うことができますが、理想からはほど遠いです。 問題は、ある言語の構成を別の言語に正確に表示することにあります。この言語では、愚かな直接的な類似物は存在しません。 この場合の対処方法は不明です。 したがって、コンピューターだけでなく、通常の理論言語学も発展を続け、ますます多くの新しい規則が導き出されています。 同時に、コンピューター実装の観点から、作成されたルールを自動翻訳プログラムに組み込むことは難しくありません。



大きな問題



そのため、コンピューターはテキストから事実を抽出する方法、著者の気分を理解する方法、皮肉などを認識する方法をすでに知っています。 それでは、問題は何ですか、なぜテキストを取り、人が実行できるすべてのタスクを解決できる普遍的な「リーダー」がまだないのですか? NLPでの長年の実践を通じて、 インテリジェントテキスト処理システムを組み合わせるのは難しいという結論に達しました。 複数のコンポーネントのシステムを作成すると、コンポーネント間の関係が組み合わせで増加するだけでなく、すべての依存関係とそれらの確率的指標を考慮する必要があります。 たとえば、機械学習または手動で作成したルールを使用して意見を抽出できます。 ただし、これらのアプローチの両方を組み合わせた場合、それぞれが結果にどの程度影響するかという問題が生じます。依存するもの、これらの依存関係の性質、数値パラメーターの計算方法などです。 自然言語処理の分野はまだ10代であるため、今のところ、人類は地域の問題を解決するためのシステムを作成することしかできません。 すべてのローカルタスクが解決されたときに何が起こるか、また、人が解決されたすべてを組み合わせるのに十分な能力(メモリ、思考速度)を持っているかどうかを予測することは困難です。



リソースリンク



[1] ボ・パン、リリアン・リー。 意見マイニングとセンチメント分析

[2] Bing Liu。 意見マイニング

[3] ケーシー・ホワイトロー。 感情分析のための評価グループの使用

[4] ラダミハルセア。 コンピュータを苦手にする:自動ユーモア認識の調査



All Articles