LSTMから始めるのに最適な場所は、A。Karpathy http://karpathy.github.io/2015/05/21/rnn-effectiveness/のブログ投稿です。Torch7を使用している場合(強くお勧めします)、ソースコードはgithub https://github.com/karpathy/char-rnnで入手できます。
また、モデルを少し変更してみます。多対1のアプローチを使用して、ルックアップテーブルから単語を入力し、各シーケンスの最後に特別な単語を追加します。これにより、「シーケンスの終わり」記号を入力したときにのみ分類が読み取られます。出力し、トレーニング基準に基づいてエラーを計算します。この方法では、教師付きのコンテキストで直接トレーニングします。
一方、より簡単なアプローチは、paragraph2vec(https://radimrehurek.com/gensim/models/doc2vec.html)を使用して入力テキストの機能を抽出し、機能の上で分類子を実行することです。段落ベクトルの特徴抽出は非常に簡単で、Pythonでは次のようになります。
class LabeledLineSentence(object):
def __init__(self, filename):
self.filename = filename
def __iter__(self):
for uid, line in enumerate(open(self.filename)):
yield LabeledSentence(words=line.split(), labels=['TXT_%s' % uid])
sentences = LabeledLineSentence('your_text.txt')
model = Doc2Vec(alpha=0.025, min_alpha=0.025, size=50, window=5, min_count=5, dm=1, workers=8, sample=1e-5)
model.build_vocab(sentences)
for epoch in range(epochs):
try:
model.train(sentences)
except (KeyboardInterrupt, SystemExit):
break