这个例子显示了如何搜索,并在过去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转推。