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

熱線電話:13121318867

登錄
首頁精彩閱讀python數(shù)據(jù)挖掘——文本分析
python數(shù)據(jù)挖掘——文本分析
2020-04-20
收藏
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

作者 | zhouyue65

來源 | 君泉計量

文本挖掘:從大量文本數(shù)據(jù)中抽取出有價值的知識,并且利用這些知識重新組織信息的過程。

一、語料庫(Corpus)

語料庫是我們要分析的所有文檔的集合。

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

二、中文分詞

2.1 概念:

中文分詞(Chinese Word Segmentation):將一個漢字序列切分成一個一個單獨的詞。

eg:我的家鄉(xiāng)是廣東省湛江市-->我/的/家鄉(xiāng)/是/廣東省/湛江市

停用詞(Stop Words):

數(shù)據(jù)處理時,需要過濾掉某些字或詞

√泛濫的詞,如web、網(wǎng)站等。

√語氣助詞、副詞、介詞、連接詞等,如 的,地,得;

2.2 安裝Jieba分詞包:

最簡單的方法是用CMD直接安裝:輸入pip install jieba,但是我的電腦上好像不行。

后來在這里:https://pypi.org/project/jieba/#files下載了jieba0.39解壓縮后 放在Python36\Lib\site-packages里面,然后在用cmd,pip install jieba 就下載成功了,不知道是是什么原因。

然后我再anaconda 環(huán)境下也安裝了jieba,先在Anaconda3\Lib這個目錄下將jieba0.39的解壓縮文件放在里面,然后在Anaconda propt下輸入 pip install jieba,如下圖:

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

2.3 代碼實戰(zhàn):

jieba最主要的方法是cut方法:

jieba.cut方法接受兩個輸入?yún)?shù):

1) 第一個參數(shù)為需要分詞的字符串

2)cut_all參數(shù)用來控制是否采用全模式

jieba.cut_for_search方法接受一個參數(shù):需要分詞的字符串,該方法適合用于搜索引擎構(gòu)建倒排索引的分詞,粒度比較細

注意:待分詞的字符串可以是gbk字符串、utf-8字符串或者unicode

jieba.cut以及jieba.cut_for_search返回的結(jié)構(gòu)都是一個可迭代的generator,可以使用for循環(huán)來獲得分詞后得到的每一個詞語(unicode),也可以用list(jieba.cut(...))轉(zhuǎn)化為list代碼示例( 分詞 )

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

輸出結(jié)果為: 我 愛

Python

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

工信處

女干事

每月 經(jīng)過 下屬 科室 都 要 親口

交代

24 口 交換機 等 技術性 器件 的 安裝

工作

分詞功能用于專業(yè)的場景:

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

會出現(xiàn)真武七截陣和天罡北斗陣被分成幾個詞。為了改善這個現(xiàn)象,我們用導入詞庫的方法。

但是,如果需要導入的單詞很多,jieba.add_word()這樣的添加詞庫的方法就不高效了。

我們可以用jieba.load_userdict(‘D:\\PDM\\2.2\\金庸武功招式.txt’)方法一次性導入整個詞庫,txt文件中為每行一個特定的詞。

2.3.1 對大量文章進行分詞

先搭建語料庫:

分詞后我們需要對信息處理,就是這個分詞來源于哪個文章。

四、詞頻統(tǒng)計

3.1詞頻(Term Frequency):

某個詞在該文檔中出現(xiàn)的次數(shù)。

3.2利用Python進行詞頻統(tǒng)計

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

3.2.1 移除停用詞的另一種方法,加if判斷

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

代碼中用到的一些常用方法:

分組統(tǒng)計:

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

判斷一個數(shù)據(jù)框中的某一列的值是否包含一個數(shù)組中的任意一個值:

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

取反:(對布爾值)

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

四、詞云繪制

詞云(Word Cloud):是對文本中詞頻較高的分詞,給與視覺上的突出,形成“關鍵詞渲染”,從而國旅掉大量的文本信息,使瀏覽者一眼掃過就可以領略文本的主旨。

4.1 安裝詞云工具包

這個地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ ,可以搜到基本上所有的Python庫,進去根據(jù)自己的系統(tǒng)和Python的版本進行下載即可。

python下安裝很方便,在anaconda下安裝費了點勁,最終將詞云的文件放在C:\Users\Administrator 這個目錄下才安裝成功。

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

五、美化詞云(詞云放入某圖片形象中)

六、關鍵詞提取

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析
Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

結(jié)果如下:

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

七、關鍵詞提取實現(xiàn)

詞頻(Term Frequency):指的是某一個給定的詞在該文檔中出現(xiàn)的次數(shù)。

計算公式: TF = 該次在文檔中出現(xiàn)的次數(shù)

逆文檔頻率(Inverse Document Frequency):IDF就是每個詞的權重,它的大小與一個詞的常見程度成反比

計算公式:IDF = log(文檔總數(shù)/(包含該詞的文檔數(shù) - 1))

TF-IDF(Term Frequency-Inverse Document Frequency):權衡某個分詞是否關鍵詞的指標,該值越大,是關鍵詞的可能性就越大。

計算公式:TF - IDF = TF * IDF

7.1文檔向量化

Python<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>——文本分析

7.2代碼實戰(zhàn)

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

若不方便掃碼,搜微信號: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(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 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){ //倒計時完成 $(".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); }