LSTM으로 시작하기에 가장 좋은 곳은 A. Karpathy의 블로그 게시물 http://karpathy.github.io/2015/05/21/rnn-effectiveness/ 입니다. Torch7을 사용하는 경우 (강력하게 제안 할 것입니다) 소스 코드는 github https://github.com/karpathy/char-rnn 에서 사용할 수 있습니다 .
또한 모델을 약간 변경하려고합니다. 룩업 테이블을 통해 단어를 입력하고 각 시퀀스의 끝에 특수 단어를 추가 할 수 있도록 다 대일 접근 방식을 사용하므로 "시퀀스의 끝"기호를 입력 할 때만 분류를 읽을 수 있습니다. 훈련 기준에 따라 오류를 출력하고 계산합니다. 이렇게하면 감독되는 상황에서 직접 훈련 할 수 있습니다.
반면에보다 간단한 방법은 단락 2vec ( https://radimrehurek.com/gensim/models/doc2vec.html )를 사용하여 입력 텍스트의 기능을 추출한 다음 기능 위에 분류기를 실행하는 것입니다. 단락 벡터 기능 추출은 매우 간단하며 파이썬에서는 다음과 같습니다.
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