我的目标是通过使用LSTM慢慢缩放来弄脏手。然而,在现阶段的初始阶段,我尝试使用Keras实现Youtube LSTM情绪分析器。在搜索可用于帮助我的资源时,我遇到了IMDB情绪分析数据集和LSTM代码。虽然它适用于较长的输入,但较短的输入不能很好地完成。代码位于https://github.com/keras-team/keras/blob/master/examples/imdb_lstm.py
保存Keras模型并使用此代码为此数据构建预测模块
model = load_model('ytsentanalysis.h5')
print("Enter text")
text=input()
list=text_to_word_sequence(text,filters='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~\t\n',lower=True,split=" ")
print(list)
word_index = imdb.get_word_index()
x_test = [[word_index[w] for w in list if w in word_index]]
prediction=model.predict(x_test)
print(prediction)
我提供各种输入,例如“坏视频”等。奇妙的惊人&#39;或者&#39;好的&#39; &#39;可怕的坏&#39;。对于同样糟糕的主题输入,输出范围从接近1开始,并且我已经看到对于良好主题输入的0.3%预测。我预计它应该接近1表示正数,接近0表示负数。
为了解决这个问题,我在训练和预测时限制了maxlen = 20,因为Youtube注释要短得多,同样的代码再次运行。这次预测期间的概率都是e ^ 插入大负功率
我无法调整和重用现有数据集吗?如果没有,因为标记为Youtube的评论数据集并不广泛,我是否应该使用像Twitter评论数据集这样的东西,而代价是在Keras中失去预先构建的IMDB输入模块的效率?有什么方法可以看到这些模块的代码吗?
提前感谢您回答所有这些问题。
答案 0 :(得分:1)
IMDb数据集和YouTube评论之间的差异是完全不同的,因为与评论和推文相比,电影评论相当长且广泛。
在公开可用的数据集上训练模型可能更有帮助(例如推文,可能更符合YT评论)。然后,您可以使用预先训练的模型并在YT注释数据集上对其进行微调。利用一些预先训练过的单词嵌入也很有用,比如GloVe和word2vec。
或者,您可以考虑使用NLTK来分析评论。