1

人工知能ユニットを構築しようとしています。私はまず感覚入力 (「観察」) を短期作業記憶リストに収集し、このリスト (「アイデア」) で見つかったパターンを継続的に形成し、それらのアイデアを長期保存メモリにコミットすることでこれを行う予定です。それらはかなりのサイズに達し、おそらく 7 つの連鎖した観測になります。ロックの「人間理解に関するエッセイ」に似た哲学者にとって、これは「タブラ・ラサ」ではありません。エンコードされた基本構造が必要です。

したがって、私の質問は次のとおりです。

この絶えず成長する観測文字列の最大の部分文字列を動的に統合または「パターン化」するための優れたアルゴリズムはありますか? たとえば、これまでに ABCDABCABC を与えられた場合、ABC のアイデア D と、他の 2 つの ABC のアイデアが必要です。次に、別の D が観察され、短期記憶に追加された場合、ABCD トークン、ABC トークン、および別の ABCD トークンが必要になります。任意の数の文字を追加した後に再実行する必要があるため、Shortest Common Substring は使用したくありません。簡単に検索/変更できるツリー構造を好むと思います。

これはまともな解決策のように見えますか? http://www.cs.ucsb.edu/~foschini/files/licenza_spec_thesis.pdf . 少なくとも、他のデータマイナーは楽しめると思います。

4

1 に答える 1

1

最初のステップ: トークナイザー。{A,B,C,D} と考えるものとそうでないものを定義します。

  • ガベージ/その他のもののために少なくとも1つの余分なトークンが必要です(良いニュースは、このトークンが発生すると、それに続くステートマシンが常に開始状態にリセットされるということです)
  • 空白を保持したい場合としない場合があります (これにより、余分なトークンが発生し、後で DFA または NFA レコグナイザーで多くの余分な状態が発生します)。
  • ある種の等価クラスが必要かもしれません。たとえば、すべての数値文字列を 1 つのトークン型にラップします。小文字/大文字を折ります。ある程度のスペルミスを受け入れる (難しい!)
  • 行頭/行末などに特別なダミートークンタイプが必要になる場合があります。
  • 許容する偽陽性の量と偽陰性の量について、何らかの選択を行う必要があります。
  • 関連するテキストがある場合は、すべてのソースが同じ正規エンコーディングであることを確認するか、それらを前処理して同じエンコーディングにします。

トークナイザーを構築することは、コーパスを調査するための優れた方法です。それが外界からの実際のデータである場合、開始時には存在すら知らなかったファンキーなケースに驚かれることでしょう!

2 番目のステップ (レコグナイザー) は、適切なトークン化があれば、おそらくはるかに簡単になります。通常の決定論的ステートマシン (認識するシーケンスが事前に定義されている) の場合、Dragon Book または Crochemore の標準アルゴリズムを使用できます。

ファジー自己学習マッチャーの場合、マルコフ チェーンまたはマルコフ ツリーを構築することから始めます。(おそらくベイズツリー、私はこれについての専門家ではありません) . 標準のステートマシンから始めて、ノードとエッジに重みとカウントを追加するのはそれほど難しくないと思います。そして、エッジをグラフに動的に追加します。またはそれらを削除します。(これは私が難しくなり始めると私が予想するところです)

戦略的決定: データベースが必要ですか? モデルがコアに収まる場合、そうはなりませんし、そうすべきではありません。(データベースは、1 つの行を取得して処理し、それを格納してから次の行を取得するなどの目的ではありません) データがコアに収まらない場合は、データ モデリングの問題以上の問題が発生します。ところで: 私が知っているすべての DNA アセンブラー/マッチャーは、コアとフラットファイルで動作します。(管理と検査を容易にするために、データベースによってバックアップされる場合があります)

于 2013-02-28T23:26:56.597 に答える