行为情感分析使用历史推文

这个例子显示了如何搜索,并在过去7天检索所有可用的鸣叫,并将它们导入到MATLAB®。导入数据后,您可以进行情感分析。这种分析使您能够确定主观信息,如情绪,意见或情绪反应,从文本数据。这个例子对于金融服务行业积极和消极情绪的搜索。

要运行这个例子,你需要到Twitter®证书。要获得这些证书,您必须首先登录到你的Twitter帐户。然后,填写表单创建应用程序

要访问示例代码,输入编辑TwitterExample.m在命令行。

连接至推特

请使用您的凭据Twitter的连接。(在本例中的值并不代表真正的Twitter的凭据。)

consumerkey ='abcdefghijklmnop123456789';consumersecret ='qrstuvwxyz123456789';的accessToken ='123456789abcdefghijklmnop';accesstokensecret ='123456789qrstuvwxyz';C =的twitter(consumerkey,consumersecret,的accessToken,accesstokensecret);

检查Twitter的连接。如果的StatusCode属性的值为,连接成功。

c.StatusCode
ANS = OK

检索最新的鸣叫

搜索有关使用Twitter的连接对象的金融服务行业最新的100个鸣叫。使用搜索词金融服务。进口分享Tweet®数据到MATLAB工作区。

tweetquery ='金融服务';S =搜索(C,tweetquery,'计数',100);状态= s.Body.Data.statuses;暂停(2)

状态包含鸣叫数据为100层结构的一个单元阵列。每个结构包含一个字段的推文文字,其余字段包含有关Tweet其他信息。

搜索和检索自上次请求时有发生,在未来100个鸣叫。

摘要刷新=搜索(C,tweetquery,'计数',100,...'since_id',s.Body.Data.search_metadata.max_id_str);状态= [状态; sRefresh.Body.Data.statuses];

状态除了包含最新的100个鸣叫以前的100个鸣叫。

检索所有可用的推文

检索有关金融服务行业使用所有可用的鸣叫环。检查使用的可用数据isfield功能和结构字段next_results

isfield(s.Body.Data.search_metadata,'next_results'%将结果转换为字符串nextresults =串(s.Body.Data.search_metadata.next_results);%提取最大资料Tweet标识符max_id = extractBetween(nextresults,“max_id =”“&”);%转换最大资料Tweet标识符到字符向量cmax_id = CHAR(max_id);对于鸣叫%搜索S =搜索(C,tweetquery,'计数',100,'max_id',cmax_id);%检索每个唧啾文本状态= [状态; s.Body.Data.statuses];结束

检索每个鸣叫的创建时间和文本。通过在结构中的单元阵列访问它检索创建时间非结构化数据。对于结构化数据,由结构阵列中的转置该字段访问创建时间。

如果iscell(状态)%非结构化数据numTweets =长度(状态);%确定鸣叫的总数tweetTimes =细胞(numTweets,1);%分配空间分享Tweet倍和推文文字tweetTexts = tweetTimes;对于I = 1:numTweets tweetTimes {I} =状态{I} .created_at;%检索每个资料Tweet被创建的时间tweetTexts {I} =状态{I}的.text;%检索每个鸣叫文本结束其他%的结构化数据tweetTimes = {statuses.created_at}';tweetTexts = {statuses.text}';结束

tweetTimes包含创建时间为每个Twitter消息,tweetTexts包含每个鸣叫文本。

创建时间表微博通过使用每个鸣叫文字和创建时间都推文。

鸣叫=时间表(tweetTexts,'RowTimes'...日期时间(tweetTimes,'格式''EEE MMM DD HH:MM:SS + SSSS YYYY'));

行为情感分析的推文

创建与积极情感相关词的词汇表。

poskeywords = {'快乐''大''好'...'快速''优化'“好”'有趣''惊人''最佳''奖'...'优胜者'“赢”'凉''谢谢''有用'};

poskeywords是字符向量的单元阵列。每个字符向量是代表积极情绪的一个实例,一个字。

搜索每个分享Tweet在积极情绪词汇的话。确定其含有的正情绪推文的总数。实施积极推文的总数,确定转推的总数。

%确定鸣叫的总数numTweets =高度(鸣叫);%确定积极的推文numPosTweets = 0;numPosRTs = 0;对于I = 1:numTweets%比较鸣叫的乐观情绪词汇dJobs =含有(tweets.tweetTexts {I},poskeywords,'IGNORECASE',真正);如果dJobs%提高鸣叫的总数由一个积极的情绪numPosTweets = numPosTweets + 1;%确定是否积极分享Tweet是转推RTS = STRNCMP('RT @',tweets.tweetTexts {I},4);如果即时战略由一个正转推的增加%总计数numPosRTs = numPosRTs + 1;结束结束结束

numPosTweets包含鸣叫与积极情绪的总数。

numPosRTs含有转推的与积极的情绪总数量。

创建与负面情绪有关的词的词汇表。

negkeywords = {'伤心''较差的''坏''慢''削弱''意思'“无聊”...'普通''底部''失利''失败者'“失去”“酷”...'批评''无用'};

negkeywords是字符向量的单元阵列。每个字符向量是表示负面情绪的一个实例的词。

搜索每个分享Tweet在负面情绪词汇的话。确定包含负面情绪推文的总数。摆脱了负鸣叫的总数,确定转推的总数。

%确定负鸣叫numNegTweets = 0;numNegRTs = 0;对于I = 1:numTweets%比较鸣叫负面情绪词汇dJobs =含有(tweets.tweetTexts {I},negkeywords,'IGNORECASE',真正);如果dJobs%提高鸣叫的总数由一个负面情绪numNegTweets = numNegTweets + 1;%确定是否负资料Tweet是一个转推RTS = STRNCMP('RT @',tweets.tweetTexts {I},4);如果的RT numNegRTs = numNegRTs + 1;结束结束结束

numNegTweets包含负面情绪推文的总数。

numNegRTs含有转推的与负面情绪的总数。

显示情感分析结果

创建列的表包含:

  • 推文数

  • 鸣叫与市场的乐观情绪号码

  • 正转推数

  • 鸣叫与消极情绪数

  • 负转推数

matlabTweetTable =表(numTweets,numPosTweets,numPosRTs,numNegTweets,numNegRTs,...'VariableNames'{'Number_of_Tweets''Positive_Tweets''Positive_Retweets'...'Negative_Tweets''Negative_Retweets'});

显示资料Tweet数据的表。

matlabTweetTable
matlabTweetTable = 1×5表Number_of_Tweets Positive_Tweets Positive_Retweets Negative_Tweets Negative_Retweets ________________ _______________ _________________ _______________ _________________ 11465 688 238 201 96

出11465个金融服务行业共推文在过去的7天,688个鸣叫有积极的情绪和201个鸣叫有负面情绪。出了积极的推文,238个鸣叫是转推。走出负鸣叫的,96转推。

也可以看看

功能

对象

相关话题

外部网站