99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀R語(yǔ)言中的情感分析與機(jī)器學(xué)習(xí)
R語(yǔ)言中的情感分析與機(jī)器學(xué)習(xí)
2016-02-14
收藏

來(lái)源 | 雪晴數(shù)據(jù)網(wǎng)

利用機(jī)器學(xué)習(xí)可以很方便的做情感分析。本篇文章將介紹在R語(yǔ)言中如何利用機(jī)器學(xué)習(xí)方法來(lái)做情感分析。在R語(yǔ)言中,由Timothy P.Jurka開發(fā)的情感分析以及更一般的文本挖掘包已經(jīng)得到了很好的發(fā)展。你可以查看下sentiment包以及夢(mèng)幻般的RTextTools包。實(shí)際上,Timothy還寫了一個(gè)針對(duì)低內(nèi)存下多元Logistic回歸(也稱最大熵)的Rmaxtent。

 

然而,RTextTools包中不包含樸素貝葉斯方法。e1071包可以很好的執(zhí)行樸素貝葉斯方法。e1071TU Wien(維也納科技大學(xué))統(tǒng)計(jì)系的一門課程。這個(gè)包的主要開發(fā)者是David Meyer。

 

我們?nèi)匀挥斜匾私馕谋痉治龇矫娴闹R(shí)。用R語(yǔ)言來(lái)處理文本分析已經(jīng)是公認(rèn)的事實(shí)(詳見R語(yǔ)言中的自然語(yǔ)言處理)。tm包算是其中成功的一部分:它是R語(yǔ)言在文本挖掘應(yīng)用中的一個(gè)框架。它在文本清洗(詞干提取,刪除停用詞等)以及將文本轉(zhuǎn)換為詞條-文檔矩陣(dtm)方面做得很好。這里是對(duì)它的一個(gè)介紹。文本分析最重要的部分就是得到每個(gè)文檔的特征向量,其中詞語(yǔ)特征最重要的。當(dāng)然,你也可以將單個(gè)詞語(yǔ)特征擴(kuò)展為雙詞組,三連詞,n-連詞等。在本篇文章,我們以單個(gè)詞語(yǔ)特征為例做演示。

 

注意,在R中用ngram包來(lái)處理n-連詞。在過(guò)去,Rweka包提供了函數(shù)來(lái)處理它,感興趣的可以查看這個(gè)案例?,F(xiàn)在,你可以設(shè)置RTextTools包中create_matrix函數(shù)的參數(shù)ngramLength來(lái)實(shí)現(xiàn)它。

 

第一步是讀取數(shù)據(jù):

 

 

創(chuàng)建詞條-文檔矩陣:

 

 

現(xiàn)在,我們可以用這個(gè)數(shù)據(jù)集來(lái)訓(xùn)練樸素貝葉斯模型。注意,e1071要求響應(yīng)變量是數(shù)值型或因子型的。我們用下面的方法將字符串型數(shù)據(jù)轉(zhuǎn)換成因子型:

 

 

測(cè)試結(jié)果準(zhǔn)確度:

 

 

顯然,這個(gè)結(jié)果跟python得到的結(jié)果是相同的(這篇文章是用python得到的結(jié)果)。

 

其它機(jī)器學(xué)習(xí)方法怎樣呢?

 

下面我們使用RTextTools包來(lái)處理它。

 

首先,指定相應(yīng)的數(shù)據(jù):

 

 

其次,用多種機(jī)器學(xué)習(xí)算法訓(xùn)練模型:

 

 

現(xiàn)在,我們可以使用訓(xùn)練過(guò)的模型做測(cè)試集分類:

 

 

準(zhǔn)確性如何呢?

 

 

得到模型的結(jié)果摘要(特別是結(jié)果的有效性):

 

 

結(jié)果的交叉驗(yàn)證:

 

 

結(jié)果可在我的Rpub頁(yè)面找到。可以看到,maxent的準(zhǔn)確性跟樸素貝葉斯是一樣的,其它方法的結(jié)果準(zhǔn)確性更差。這是可以理解的,因?yàn)槲覀兘o的是一個(gè)非常小的數(shù)據(jù)集。擴(kuò)大訓(xùn)練集后,利用更復(fù)雜的方法我們對(duì)推文做的情感分析可以得到一個(gè)更好的結(jié)果。示例演示如下:

 

推文情感分析

 

數(shù)據(jù)來(lái)自victornepvictorneo展示的是用python對(duì)推文做情感分析。這里,我們用R來(lái)處理它:

 

讀取數(shù)據(jù):

 

 

首先,嘗試下樸素貝葉斯

 

 

然后,嘗試其他方法:

 

 

這里,我們也希望得到正式的測(cè)試結(jié)果。包括:

 

1.analytics@algorithm_summary:包括精確度,召回率,準(zhǔn)確率,F-scores的摘要

 

2.analytics@label_summary:類標(biāo)簽摘要

 

3.analytics@document_summary:所有數(shù)據(jù)和得分的原摘要

 

4.analytics@ensemble_summary:所有 精確度/覆蓋度 比值的摘要

 

現(xiàn)在讓我們看看結(jié)果:

 

 

樸素貝葉斯方法相比,其它算法的結(jié)果更好,召回精度高于0.95。結(jié)果可在Rpub查看

 

原文鏈接:http//www.xueqing.cc/cms/article/107

 

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }