1

テキスト分類問題のために、PyBrain を使用してリカレント ニューラル ネットワークを構築しています。何度も試みた後、文字列のリストをデータセットとして使用できる配列に変換する方法をまだ整理できません。私がしたこと:

import collections,re
from pybrain.datasets import SupervisedDataSet

#create the supervised dataset variable with 5 inputs and 1 output
windowSize=5
main_ds = SupervisedDataSet(windowSize,1)

with open('ltest5lg_d1.fr','r') as train_1:
        import_data_train=train_1.readlines()

train_data = []

for lines in import_data_train:
    s = lines.split()        
    for words in s:
        train_data.append(words)

bagsofwords = [collections.Counter(re.findall(r'\w+', txt)) for txt in train_data]

sumbags = sum(bagsofwords, collections.Counter())

そのため、トレーニング データの頻度表を取得しましたが、データ自体を main_ds 変数の入力として使用できる形式に変換する方法を整理できません。

4

1 に答える 1

1

学習のコンテキストで単語を表す標準的な方法は、単語埋め込みモデルです。

必要なのは (これは PyBrain のデータセット ページ [1] をざっと見ただけです)、テキストをベクター表現に変換してデータセットを構築することです。

自分で行う方法の例については、glove-python [2] を参照してください。これを行うために既存のパッケージを使用したい場合は、Google の word2vec [3] またはスタンフォードの GloVe [4] を参照してください。Python バージョンは単純な実装です。

次に、この表現を使用して NN をトレーニングできます。

[1] http://pybrain.org/docs/quickstart/dataset.html
[2] https://github.com/maciejkula/glove-python
[3] https://code.google.com/p/word2vec/
[4] http://www-nlp.stanford.edu/projects/glove/
于 2015-02-03T00:30:55.943 に答える