ニューラルネットワーク入力用のテキスト文字列の処理
ANN入力を正規化、標準化する必要があることを理解しています。さまざまなANNの特性とモデルを別にして、{0,1}の範囲内または範囲{-1、の間でUTF-8エンコードテキストを前処理するにはどうすればよいですか。 1}それがニューラルネットワークへの入力として与えられる前に?私はこれをグーグルで検索していましたが、情報が見つかりません(間違った用語を使用している可能性があります)。
- それは理にかなっていますか?
- それはニューラルネットワークのためにテキストがどのように前処理されるのではないですか?
- 代替案はありますか?
EDIT 20-November-2013:
私は長い間、ピートの答えを正解として受け入れてきました。しかし、私は重大な疑いを抱いています。これは主に、私が象徴的な知識とANNについて行っている最近の研究によるものです。
Dario FloreanoとClaudio Mattiussi 彼らの本の中で、このような処理が実際に可能であることを、分散エンコーディング。
実際、Googleの学者の検索を試みると、記号化された知識をエンコードするために、脳によって分散エンコーディングがどのように使用されると仮定されているかについて、神経科学の記事や論文がたくさんあります。
Teuvo Kohonen、彼の論文「Self Organizing Maps」は次のように説明しています:
神経適応則をシンボルセット(ベクトル変数のセットと見なされます)に適用すると、シンボル間の「論理距離」を表示する地形図が作成されると考える人もいます。しかしながら、連続データと比較してシンボルの性質が異なるという問題が発生する。後者の場合、連続エンコーディング間のメトリックの違いとして、類似性は常に自然な形で現れます。これは、メトリックが定義されていない単語などの個別の記号項目には当てはまりません。記号の性質上、その意味とエンコードが分離されています。
ただし、KohonenはSOMのシンボリック情報をなんとか処理しました!
さらに、Alfred Ultsch教授の論文 "The Integration of Neural Networks with Symbolic Knowledge Processing" ANNでシンボリック知識(テキストなど)を処理する方法を正確に扱います。 Ultschは、シンボリック知識を処理するための次の方法論を提供しています:ニューラル近似推論、ニューラル統合、イントロスペクション、統合知識獲得。 Googleの学者やその他の場所の情報はほとんどありません。
彼の答えのピートはセマンティクスについて正しいです。 ANNのセマンティクスは通常、切り離されています。ただし、参考文献に従って、研究者がどのようにRBMを使用し、さまざまなWord入力のセマンティクスの類似性を認識するようにトレーニングされているかについて洞察を提供します。 。
サブシンボリックニューラルネットワークによる自然言語処理、Risto Miikkulainen、1997Word Observationsの制限付きボルツマンマシンのトレーニング、G.E.Dahl、Ryan.P.Adams、H.Rarochelle、2012
ここで答えとして、私たちの議論を要約します。
あなたの目標は、テキストをニューラルネットワークに組み込むことができるようにすることです。従来のANNはテキストの分析にはあまり適していないことを確認しました。これがそうである理由の根本的な説明は、ANNが一般に値の連続的な範囲である入力に作用するという考えに基づいており、入力に対する2つの値の近さは、その意味において何らかの近さを意味します。単語にはこの近さの考え方がないため、ANNへの入力として意味のある単語の実際の数値エンコーディングはありません。
一方、機能する可能性のあるソリューションは、おそらくトピックのリストの感情範囲を生成し、それらのトピックとその感情値をANNの入力として使用できる可能性がある、より伝統的なセマンティック分析を使用することです。
あなたのコメントに応じて、いいえ、あなたの提案されたスキームは全く意味がありません。その性質による人工ニューロンの出力は、連続値または少なくともバイナリ値を表します。巨大な離散列挙(UTF-8文字など)と浮動小数点値で表される連続範囲との間のマッピングは意味がありません。 ANNは必然的に0.1243573のように動作します。たとえば、これらの数値を改行文字や文字 "a"に簡単にマッピングでき、にならない場合(== --- ==)相互に適切な近似である。
率直に言って、ANNへの入力としての「一般的なUnicode文字列」のはありません合理的な表現はありません。合理的な表現は、あなたがしていることの詳細に依存します。これは、次の質問に対する回答によって異なります。
- 文字のブロックではなく、入力文字列に単語が表示されることを期待していますか?文字列に現れると予想される単語は何ですか?
- 入力文字列の長さ分布とは何ですか?
- 入力文字列の予想されるエントロピーは何ですか?
- 文字列がどのように見えるかについてドメイン固有の知識はありますか?
最も重要な
- ANNで何をしようとしているのですか。これはnot無視できるものです。
no変換が実際にdoニューラルネットワークで必要なもの。あなたがそれらの質問に答えるまで(あなたは上記のコメントでそれらを回避します)、良い答えを出すことは不可能です。
答えの例をあげることができます。これは、上記の質問に特定の答えを出した場合に機能します。たとえば、任意の長さでスペースで区切られた小さな単語の語彙で構成される文字列を読み取る場合は、語彙の各単語に1つずつ、N個の入力を作成し、反復ニューラルを使用する翻訳スキームを提案します。対応する入力を1に設定し、その他すべてを0に設定することで、単語を1つずつフィードするネットワーク。
深い信念ネットワークにテキスト(文字レベルでエンコードされた)をフィードして、発見できる言語の特性を確認するのは魅力的だと思います。
ニューラルネットワーク言語のモデリングに関して、最近行われた多くの作業があります(主にWordレベルだけでなく、文字レベルでも)
詳細については、これらのリンクを参照してください
http://www.stanford.edu/group/pdplab/pdphandbook/handbookch8.htmlhttp://code.google.com/p/Word2vec/
単語ベクトルは、ウィキペディアの記事などの大規模なコーパスでのトレーニングによってエンコードされ、それらの間の「距離」を定義することを可能にする意味的および構文的機能を獲得することができました。
「最近、Wordのベクトルが多くの言語的規則性を取り込むことが示されました。たとえば、ベクトル演算vector( 'king')-vector( 'man')+ vector( 'woman')is vector( 'queen')に近い」
また、ランダムな文字の生成に関するIlya Sutskeverによるこの優れた研究論文を参照してください。これは、ウィキペディアで訓練された後に英語の特徴を示しています。すごい!
http://www.cs.toronto.edu/~ilya/pubs/2011/LANG-RNN.pdfhttp://www.cs.toronto.edu/~ilya/ rnn.html (オンラインテキスト生成テキストデモ-とてもクールです!)
あなたが何をしようとしているのかは明確ではありませんが、ある意味で「自然言語」と呼ばれていることに関係しているように思われます。これについてはたくさんの参考文献があります...私は専門家ではありませんが、たとえばO'Reillyによる興味深い参考文献があることは知っています。
NNの観点からは、さまざまなNNモデルがたくさんあります。あなたは一種の逆伝播アルゴリズムを備えた多層パーセプトロンとして知られている最も人気のあるものを参照していると思いますが、あなたの場合により適した連想メモリのモデルがたくさんあります。これに関する非常に良い参考文献は、サイモン・ヘイキンの本です。
しかし、このようなことを行おうとすると、英語(?)で文字、音節、単語の頻度がどのように発生するのかを理解しようとするようになります。
私が助けてくれたことを願っています。前にも言ったように、私はこの分野の専門家ではありません。
解決策1:A = Alt(65)= 65 Bin = 01000001
解決策2:辞書データベースに単語を追加し、id(int)フィールドを追加します。 idフィールドをバイナリに変換します。
NNでは、文字またはワードID(バイナリ)を使用します