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

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)挖掘:網(wǎng)購評(píng)論是真是假?
數(shù)據(jù)挖掘:網(wǎng)購評(píng)論是真是假?
2016-01-21
收藏

來源 | 36大數(shù)據(jù)

當(dāng)你在網(wǎng)上選購商品時(shí),同類的商品成千上萬,哪些因素會(huì)影響你選購某件商品呢?商品評(píng)論一定是一個(gè)重要的參考吧。一般我們總會(huì)看看歷史銷量高不高,用戶評(píng)論好不好,然后再去下單。

過去不久的雙11、雙12網(wǎng)絡(luò)購物節(jié)中,無數(shù)網(wǎng)友在各個(gè)電商網(wǎng)站的促銷大旗下開啟了買買買模式。不過,當(dāng)你在網(wǎng)上選購商品時(shí),同類的商品成千上萬,哪些因素會(huì)影響你選購某件商品呢?商品評(píng)論一定是一個(gè)重要的參考吧。一般我們總會(huì)看看歷史銷量高不高,用戶評(píng)論好不好,然后再去下單。
然而各位一定也有所耳聞,買的不如賣的精,刷單的、刷評(píng)論的始終橫行網(wǎng)上,沒準(zhǔn)你看到的評(píng)論就是賣家自己刷出來的。事實(shí)上,許多精明的淘寶賣家會(huì)在雙十一等網(wǎng)購高峰期售賣“爆款”,“干一票就撤”,這正是虛假評(píng)論的溫床。有時(shí)我們選購商品,經(jīng)常會(huì)發(fā)現(xiàn)許多條看起來十分夸張的評(píng)論,如某女鞋的商品評(píng)論:
“超級(jí)好看的鞋,隨便搭配衣服就覺得自己像女神,又不磨腳,站一天都不會(huì)累。下次還來買,趕快上新款哦!”
“有史以來最滿意的鞋,媽媽看了說是真皮的,賣家態(tài)度又很好,發(fā)貨超快,誠信賣家,特別滿意的一次購物!”
連續(xù)幾百幾千條“真情實(shí)感”的好評(píng)這樣刷下來,恐怕會(huì)有許多顧客被洗腦:這個(gè)商品銷量真高,評(píng)論也不錯(cuò),那就買這家吧!結(jié)果網(wǎng)上的爆款買回家卻變成了廢品。我們買家真是絕對的信息弱勢方,賣家給出的描述真假尚且不知,刷好評(píng)又讓人防不勝防。那么,如何才能識(shí)別刷單評(píng)論呢?我們在此介紹一種借助文本挖掘模型的破解之道。
首先要解決數(shù)據(jù)來源問題,可以從網(wǎng)站上批量下載這些評(píng)論,也就是爬蟲。目前有兩種方法,一種是編程,可以使用python、java等編程語言去編寫爬蟲程序;還有一種是使用成熟爬蟲軟件,可以利用界面操作來爬蟲。筆者決定使用免費(fèi)的gooseeker軟件來做,這個(gè)軟件是Firefox瀏覽器的插件,避免了很多網(wǎng)站動(dòng)態(tài)渲染不好分析的問題,它借助了瀏覽器的功能,只要在瀏覽器上看到的元素就可以方便地下載。該軟件提供了詳細(xì)的教程和用戶社區(qū),可以指導(dǎo)用戶一步步設(shè)置抓取內(nèi)容、抓取路線、連續(xù)動(dòng)作、同類型網(wǎng)頁的重復(fù)抓取,大家可以自行學(xué)習(xí)使用。
筆者最終抓取了四款同類型的鞋子的評(píng)論數(shù)據(jù),包括會(huì)員名、商品描述、購買日期、購買型號(hào)、評(píng)論日期、評(píng)論文本等,共計(jì)5000多條數(shù)據(jù)。我們特意選取了具有刷單傾向的商品,可以看出,其中許多評(píng)論日期連續(xù)、會(huì)員名相似、買家等級(jí)較低;經(jīng)過人眼識(shí)別,刷單評(píng)論占比約30%。我們意在使用這些數(shù)據(jù)去構(gòu)建刷單評(píng)論識(shí)別模型,然后可以用這里得出來的規(guī)則去識(shí)別其它鞋類商品的刷單評(píng)論。
SAS Enterprise Miner 13.2是一款大家熟知的數(shù)據(jù)挖掘工具,它可以針對大型數(shù)據(jù)進(jìn)行分析,并根據(jù)分析結(jié)果建立精確的預(yù)測和描述模型,因此為我們所選用,不過使用其他軟件也是相同的分析思路。
我們把先前獲取的5000條評(píng)論一分為二,其中70%作為訓(xùn)練樣本,30%作為驗(yàn)證樣本。首先,用文本解析將訓(xùn)練樣本中的評(píng)論文本內(nèi)容拆詞,在拆詞時(shí)可以選擇忽略缺乏實(shí)際意義的代詞、感嘆詞、介詞、連詞,忽略數(shù)字與標(biāo)點(diǎn)符號(hào)。以上拆詞過程相當(dāng)于把非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)成了結(jié)構(gòu)化數(shù)據(jù),以前的一段文本如今可以用若干列來表示,每列代表一個(gè)詞,如果文本中出現(xiàn)了該詞該列取值為1,否則取值為0。

現(xiàn)在我們還不能直接拿它來建模,通過上圖我們可以發(fā)現(xiàn)很多詞只出現(xiàn)在少部分文章中,可以使用文本過濾器節(jié)點(diǎn)來去除詞頻很低的詞。
在文本過濾器中可以設(shè)置最小文檔數(shù),指定排除小于該文檔出現(xiàn)數(shù)目的詞條,同時(shí)也要排除像“就”、“這”、“是”、“有”這樣詞頻高卻意義不大的詞。除此之外,還可以進(jìn)行同義詞處理,我們可以手動(dòng)添加同義詞,也可以導(dǎo)入外部的同義詞庫。比如,“暖和”與“保暖”是同義詞,“好看”與“漂亮”可以互相替代……

在軟件中還可以查看詞與詞之間的鏈接關(guān)系:

接下來,我們可以使用文本規(guī)則生成器節(jié)點(diǎn)來建模,發(fā)現(xiàn)哪些詞組組合與刷單有直接的關(guān)系:

我們將訓(xùn)練樣本中的真實(shí)評(píng)論設(shè)置為0(藍(lán)色),刷單虛假好評(píng)設(shè)置為1(紅色)。上圖中可以看出,提到“暖和”(包括同義詞“保暖”)這樣的詞時(shí),評(píng)論極可能是真實(shí)的;而寫著“鞋子很時(shí)尚哦”“做工精細(xì),還會(huì)再買”而沒有提到暖和與否的,則多半是虛假好評(píng)。
說到這里,你可能會(huì)好奇:為什么“暖和”這樣一個(gè)普通的詞,倒成了真假評(píng)論的試金石?
我們不妨回想一下自己作為普通買家的購物經(jīng)歷:在收到貨品并試用之后,通常只會(huì)簡單描述一下自己的使用感受,這些感受一定。而水軍則不然,他們從來沒有真正收到商品,更談不上試穿啦,為了完成業(yè)務(wù)指標(biāo),只好按照賣家提供的商品描述,盡量從質(zhì)量、物流、服務(wù)態(tài)度甚至搭配等多方面強(qiáng)調(diào)商品本身的特性。從我們所做的案例來講,“暖和”自然屬于親身感受,而“真皮”“做工”之類,恐怕不是普通買家最想反饋的性質(zhì)。
那么這個(gè)模型的總體效果如何呢?我們可以用累積提升度這個(gè)指標(biāo)來評(píng)價(jià):

我們還留下了30%的驗(yàn)證樣本,現(xiàn)在它們可以現(xiàn)身來驗(yàn)證成果了。請看上圖中的粉紅色曲線:如果用這個(gè)模型去對評(píng)論進(jìn)行打分,按照疑似為虛假評(píng)論(“1”)的概率去排名,取前5%的評(píng)論時(shí),提升度為3倍;我們已知虛假評(píng)論約占總體的30%,也就是說,概率排名前5%的評(píng)論中有九成都是刷的,從而證明我們的模型相當(dāng)精準(zhǔn)地捕捉了刷單評(píng)論。
最后,我們要為賣家說句公道話:淘寶刷單惡性競爭嚴(yán)重,完全不刷好評(píng)的店家恐怕不多,不能說有刷評(píng)論的店就完全不能下手,90%刷單的商品實(shí)在駭人聽聞,10%刷單的店則或許質(zhì)量尚可接受。這也進(jìn)一步說明了我們的模型的作用:判斷商品的刷單比例,比逐條判斷評(píng)論是否虛假更加實(shí)用。
如今網(wǎng)絡(luò)水軍也在持續(xù)進(jìn)化中,寫出的評(píng)論越來越真情實(shí)感、具有極強(qiáng)的誤導(dǎo)性,單憑肉眼分辨既浪費(fèi)時(shí)間、又易被迷惑;但虛假評(píng)論可以推陳出新,我們的模型更可以隨時(shí)跟進(jìn)“學(xué)習(xí)”。如果將本文中的方法進(jìn)行推廣,則可以形成一個(gè)捕捉評(píng)論——文本解析——建立模型——判斷虛假評(píng)論比例的標(biāo)準(zhǔn)過程,這樣的方法無疑相當(dāng)具有實(shí)用性。
end

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

若不方便掃碼,搜微信號(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)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(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ù)說明請參見: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 = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+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); }