1

私がよく遭遇する問題があります (データ分析または AI の幅広い分野で)。しかし、おそらく私は正式な CS のバックグラウンドを持っていないため、名前を付けることはできません。ご容赦ください。2 つの例を挙げます。

自然言語の構文解析を想像してください:

The flower eats the cow.

各単語を取得し、そのタイプとそれらの間の関係を判断するプログラムがあります。この文を解釈するには、次の 2 つの方法があります。

1) flower (substantive) -- eats (verb) --> cow (object)

通常の SVO 語順を使用する、または

2) cow (substantive) -- eats (verb) --> flower (object)

より詩的な世界秩序を使用しています。プログラムは、動詞としての "flower" など、"the" の後に続くため、他の可能性を除外します。次に、残りの可能性をランク付けします。1) 2) よりも自然な語順であるため、より多くのポイントを獲得します。しかし、花は牛を食べられないという世界の知識を含めて、2) はまだ勝ちます。したがって、両方の仮説が返され、1) 30 のスコアと 2) 70 のスコアが返される場合があります。

次に、両方の仮説を記憶し、テキストの解析を続けて分岐します。1 つのブランチは 1)、1 つの 2) を想定しています。分岐が矛盾に達した場合、またはランキングが ~0 になった場合、その分岐は破棄されます。最後に、ランク付けされた仮説を再び提示しますが、テキスト全体に対してです。


別の例として、光学式文字認識を想像してください。

   **      **
   **      **  *****
   **   *******
 *******   **
*  **      **
   **      **

ストロークを見て、確かにこれは「H」だと言えます。H を特定した後、その周りに汚れがあることに気付き、少し低いスコアを付けました。

または、最初に汚れ認識を実行して、水平線がアーティファクトのように見えることに気付くこともできます。ll削除後、これがまたはであると認識し、Ilランク付けします。

画像全体を処理するとHlumination、 、llluminationまたはになりIlluminationます。辞書と総合ランキングを使って、これが最後だと判断します。


  • 一般的な問題は、常にある種の解析/理解です。例:
    • 自然言語または曖昧言語
    • OCR
    • 経路探索
    • あいまいまたは不完全なユーザー入力への対処 - どの解釈が理にかなっており、最も妥当な解釈はどれか?
  • 私は再帰的です。
  • 早期に救済できます (分岐/解釈が意味をなさない場合、または確実にスコアが 0 になる場合)。だから、それはおそらくある種のバックトラックです。
  • あいまいさを考慮して、すべてのオプションを念頭に置いています。
  • 下部の簡単なルールに基づいていますcan_eat(cow, flower) = true
  • 解釈の妥当性ランキングを保持します。
  • メタ レベルで再帰的です。データの次の部分を処理するときに、さまざまな仮説を想定するさまざまな「世界」に分岐/分岐できます。
  • おそらくベイジアン確率を使用して、個々のランキングを従属仮説に転送します。
  • 実際には、これをトレーニングし、ランキング係数を決定する方法があり、ツリーが大きくなりすぎるとカットオフが発生します。

これが何と呼ばれているのかわかりません。「決定木」または「再帰的降下」を推測する人もいるかもしれませんが、これらの用語が異なる意味を持っていることは知っています。

家系図や誰が誰のおじなのかを調べるなど、Prolog がこのような単純なケースを解決できることは知っています。しかし、すべてのデータをコードで提供する必要があり、私の実際のケースでこれを行うのに十分なほど便利でも強力でもないようです。

この問題は何と呼ばれているのか知りたいのですが、これに対処するための一般的な戦略はありますか? このトピックに関する優れた文献はありますか? 理想的には C(++)、Python 用のライブラリはありますか?一連のルールを定義するだけで、すべてのランキングと仮説を解決できますか?

4

1 に答える 1

0

あなたが持っているすべての箇条書きに当てはまる答えは1つではないと思います。しかし、私のリンクがあなたを答えに近づけるか、別の質問を与えるかもしれないことを願っています.

私が理解しているように、お互いに影響を与える可能性があるため、最も近い答えはベイジアンネットワークだと思います。これは、条件付き確率ファジーロジックにも関連しています。

また、遺伝的プログラミングと人工ニューラルネットワークについても少し説明しています

関連する可能性のあるトピックをいくつか挙げることができます。

http://en.wikipedia.org/wiki/Rule-based_programming

http://en.wikipedia.org/wiki/Expert_system

http://en.wikipedia.org/wiki/Knowledge_engineering

http://en.wikipedia.org/wiki/Fuzzy_system

http://en.wikipedia.org/wiki/Bayesian_inference

于 2012-07-17T11:57:32.123 に答える