深度学习

理解和使用深度学习网络

行动中的深度学习——第2部分

大家好!它是约翰娜而且史蒂夫让我不时接管博客,谈论深度学习。
我回来了另一章:

“深入学习行动:在MathWorks创建的酷项目

这旨在让您了解我们在MathWorks工作的内容:我会展示一些演示,并让您访问代码,也许甚至发布视频或两者。 今天的演示被称为“情绪分析“这是一系列文章中的第二篇,包括:
  • 使用CNN的3D点云分割
  • GPU编码器
  • 年龄检测
  • pictionary.
演示的开发者是希瑟·戈尔,谁最近做了很多深入学习的工作。她是演示创造者和礼仪Aredrordinaire。她创造了我们向客户提供的演示,但对于那些无法参加这些演示文稿的演示,我们想向您展示其中一个演示。此示例基于文本分析工具箱中的新功能,并证明了此博客中的图像并不总是图像。
演示:情绪分析
想象一下键入一个术语,立即了解该术语的感觉如何?这就是我们今天要做的事情。 在谈论情绪时,还有什么比Twitter更好的起点呢?推特上充斥着正反两方面的言论,公司总是希望不必阅读每一条推特就能洞察公司的形象。情绪分析可以有许多实际应用,例如品牌、政治竞选和广告。
在此示例中,我们将分析Twitter数据,以查看特定项或短语周围的情绪是否通常为正或负数。
机器学习是(仍然是)常用于情感分析。它经常用于分析单个词,而深度学习可以应用于完整的句子,大大提高了其准确性。 以下是Heather建立在Matlab中的情感分析的应用程序。它进入Live Twitter数据,显示了与术语关联的流行词语的词云,以及整体情感分数:
实时推特分析应用程序


在我们进入演示之前,我有两个无耻的插头:
  • 如果你正在做任何类型的文本分析,你真的应该看看新的文本分析工具箱.我不是文本分析专家,我认为需要碰巧将自然语言转化为计算机可以理解的东西的所有处理。在这个例子中,有功能可以从处理文本中取出所有努力,这将节省数百小时。
  • 其次,我刚刚发现,如果要插入Live Twitter Feed数据,我们也有一个工具箱!这是数据输入工具箱.它允许您访问像Twitter等实时源,以及来自领先的财务数据提供商的实时市场数据。任何日间交易者吗?可能值得考虑这个工具箱!

培训数据
使用的原始数据集包含160万条预分类推文。该子集包含100000条推文。原始数据集可在以下位置找到:http://thinknook.com/twitter-sentiment-analysis-training-corpus-dataset-2012-09-22/
以下是培训推文的示例:
推特 情绪
“我爱@Health4UandPets,你们是最棒的!!” 肯定的
“@nicolerichie:你的照片很甜美” 肯定的
“在PJS的房间里跳舞,猛扑到我的iPod。晕眩。Twitter,你问道!” 肯定的
“回去工作! ” 消极的
“累了但睡不着” 消极的
“只有有史以来最糟糕的演讲!” 消极的
“所以昨晚下雪了。不过,这还不足以在下雪天上班。” 消极的
这些如何归类为正和/或负面?伟大的问题!毕竟,我们可以有一个关于“返回工作的辩论!”也可能是一个积极的推文。
事实上,即使在与培训数据的链接中,提交人建议:
......人类的10%的情绪分类可以辩论......
训练数据的类别可以通过手动标记、使用表情符号标记情绪、使用机器学习或深度学习模型获得确定情绪或这些的组合来确定。
我建议验证您是否同意数据集类别,具体取决于您想要的结果。例如:移动“返回工作!”如果您认为这是一个积极的声明,则进入正类别;由您确定您的模型如何应对。
数据准备
我们首先通过删除标点和URL来清理数据:
%preprocess推文推文=较低(推文);推文= eraseulls(推文);Tweets = removehashtags(推文);推文=侵蚀(推文);t = tokenizeddocument(推文);
我们还可以删除“停止单词”,例如“”,“和”,这不会添加有助于帮助算法的有用信息。
%编辑停止单词列表取出可以对Tweet Newstopwords = stops的情绪进行重要意义的单词;notstopwords = [“是”,“不是”,“不”,“可以”,“不能”,“不能”,......“不能”,“可以”,“不能”,“不能”,“做”,“,”没有“,”没有“,”做“,”做“,......”没有“,”不“,”不要“,”不要“,”不要“,”不要“,”不是“,”不是“,”不是“,”不是“,“不是”,“不”,“不是”,......“”不是“,”不是“,”不是“,”与“,”没有“,”没有“,”不会“,”不会“,”会“,”不会“,”不会“T“];newstopwords(ismember(newstopwords,notstopwords))= [];t = rememwords(t,newstopwords);t = rememwords(t,{'rt'、'retweet'、'amp'、'http'、'https'、…'股票','股票','公司'});t = removeshortwords(t,1);
然后执行“单词嵌入”,这已经向我解释为将单词转化为要用作培训的载体。更正式的是,它可以用来创建一个基于文本中无监督学习的单词矢量。单词嵌入通常是无监督的模型,可以在MATLAB中培训,或者有几个预先训练的单词矢量模型,具有不同尺寸的词汇和尺寸,距离Wikipedia和Twitter等许多来源。另一个无耻的文本分析工具箱插件,使这一步非常简单。
嵌入尺寸=100;嵌入年代=50;emb=trainWordEmbedding(tweet文档。。。'尺寸',EmbeddingDimension,...'numepochs',embeddingochs,...'verbose',0)
然后我们可以设置网络的结构。在本例中,我们将使用长短时记忆(LSTM)网络,这是一种可以随时间学习依赖关系的递归神经网络(RNN)。在高层次上,LSTM有利于对序列和时间序列数据进行分类。对于文本分析,这意味着LSTM不仅要考虑句子中的单词,还要考虑单词的结构和组合。
网络本身非常简单:
图层= [sequenceInputLayer(InputSize)LSTMLAYER(OutputSize,“OutputMode”,“last”)fullyConnectedLayer(NumClass)softmaxLayer classificationLayer]
当在GPU上运行时,它的训练速度非常快,只需6分钟就可以完成30个历元(完全通过数据)。
在Matlab中培训情节进展工具

这是我们着名的培训情节。如果您尚未尝试过此操作,请在培训选项中:设置'Plots','培训 - 进展'

测试模型
一旦我们训练了该模型,它可以用来看看它在新数据上预测的程度。
[ypred,scores] =分类(net,xtest);精度= sum(ypred == ytest)/ numel(ypred)
精度=0.6606
Heatmap(表(Ypred,Ytest,'VariaBlenames',{'预测','实际'}),...'预测','实际');
我与Heather谈到了这个模型的结果:有很多方法可以解释结果,你可以花很多时间改善这些模型。例如,这些是非常通用的推文的结果,如果您希望向这些结果偏向数据,则可以使其更具体地应用。此外,使用斯坦福单词嵌入将模型精度提高到75%。
在判断结果之前,尝试在您希望模型成功的数据上常常会有帮助。我们可以采取一些样本推文,或制作自己的!这些是我决定尝试的少数人。
tw=[“我今天真的很伤心。昨天我伤心过”,“这是超级真棒!最好的!”“每个人都应该买这个!”“用培根更好的一切”“没有更多的培根。”];s = preprocesstweets(tw);c = doc2sequence(emb,s);[pred,score] =分类(net,c)
pred=5x1分类数组
中立的
积极的
积极的
积极的
消极的
分数=5×3个单一矩阵
0.4123 0.5021. 0.0856
0.0206 0.0370. 0.9424
0.2423 0.0526 0.7052
0.1280 0.0180 0.8540.
0.9696. 0.0278 0.0027
totalscore = calculatescore(得分)
totalscore = 5×1单列向量
-0.0043
0.9259
0.8949.
0.9641
0.9444
带有石南花的问答
1.在选择培训数据时,您是否选择了所有推文的随机样本,或者您是否捕获了某种类别的推文,例如政治,科学,名人等?
如果我正在使用金融数据,我挑选股票价格讨论,以确保我们得到正确的内容和背景。但是,包括一些通用文本也是良好的做法,因为它的模型也有很好的型号也有“正常”语言的样本。
这就像其他任何深度学习的例子一样——如果你真的想在图片中识别猫和狗,请确保你有很多猫和狗的图片。您可能还想加入一些容易混淆模型的图像图片,以便它了解这些差异。
2.此代码是否可用?
我会有演示fileexchange.(大约一到两周后),但是live Twitter部分已经被禁用,因为您需要Datafeed工具箱和您自己的Twitter凭据才能工作。如果你对那部分很认真,你可以看看数据源工具箱这将走过这些步骤。
3.计算核函数,是您创建的东西吗?你如何确定得分?
是我编的!有很多更复杂的评分方法,但由于它会带回3个类的概率,我将中性设置为零,并将正分数和负分数标准化以创建最终分数。
4.为什么要进行文本分析?
文本分析是一个非常有趣和丰富的研究区。还有新的研究出来了,它起来了。预处理文本真的不同,提供完全不同的挑战,而不是图像。数字更加可预测,并且在某些方面更容易。如何预处理文本可能对模型的结果产生巨大影响。
你能否真正预测股票的信息?
Tweets真的与财务数据进行追踪,并可以让您了解某些股票。Bloomberg提供社会情绪分析,并为该主题写了一些文章。所以你可以使用这个分数,但你没有控制模型和数据。此外,我们已经提到了预处理可以对得分的结果产生巨大影响。如果您实际上自己这样做,还有很多洞察力。
感谢Heather为演示,并花时间走过它!我希望你也喜欢它。还有什么你想问Heather?你想看到什么类型的演示?留下评论!
|
  • 打印
  • 发送电子邮件

评论

如需留言,请点击这里登录到您的MathWorks帐户或创建新帐户。