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

熱線電話:13121318867

登錄
首頁精彩閱讀R語言文本挖掘之中文分詞包—Rwordseg包(原理、功能、詳解)
R語言文本挖掘之中文分詞包—Rwordseg包(原理、功能、詳解)
2017-04-20
收藏

R語言文本挖掘之中文分詞包—Rwordseg包(原理、功能、詳解)

與前面的RsowballC分詞不同的地方在于這是一個中文的分詞包,簡單易懂,分詞是一個非常重要的步驟,可以通過一些字典,進行特定分詞。大致分析步驟如下:

數(shù)據(jù)導入——選擇分詞字典——分詞

但是下載步驟比較繁瑣,可參考之前的博客: R語言·文本挖掘︱Rwordseg/rJava兩包的安裝(安到吐血)

——————————————————————————————————

Rwordseg與jiebaR分詞之間的區(qū)別

中文分詞比較有名的包非`Rwordseg`和`jieba`莫屬,他們采用的算法大同小異,這里不再贅述,我主要講一講他們的另外一個小的不同:

`Rwordseg`在分詞之前會去掉文本中所有的符號,這樣就會造成原本分開的句子前后相連,本來是分開的兩個字也許連在一起就是一個詞了,

而`jieba`分詞包不會去掉任何符號,而且返回的結果里面也會有符號。

所以在小文本準確性上可能`Rwordseg`就會有“可以忽視”的誤差,但是文本挖掘都是大規(guī)模的文本處理,由此造成的差異又能掀起多大的漣漪,與其分詞后要整理去除各種符號,倒不如提前把符號去掉了,所以我們才選擇了`Rwordseg`。

來看一下這篇論文一些中文分詞工具的性能比較《開源中文分詞器的比較研究_黃翼彪,2013》

8款中文分詞器的綜合性能排名:
Paoding(準確率、分詞速度、新詞識別等,最棒)
mmseg4j(切分速度、準確率較高)
IKAnalyzer
Imdict-chinese-analyzer
Ansj
盤古分詞
Httpcws
jieba

——————————————————————————————————

Rwordseg分詞原理以及功能詳情

Rwordseg 是一個R環(huán)境下的中文分詞工具,使用 rJava 調(diào)用 Java 分詞工具 Ansj。

Ansj 也是一個開源的 Java 中文分詞工具,基于中科院的 ictclas 中文分詞算法, 采用隱馬爾科夫模型(Hidden Markov Model, HMM)。作者孫健重寫了一個Java版本, 并且全部開源,使得 Ansi 可用于人名識別、地名識別、組織機構名識別、多級詞性標注、 關鍵詞提取、指紋提取等領域,支持行業(yè)詞典、 用戶自定義詞典。

1、分詞原理

n-Gram+CRF+HMM的中文分詞的java實現(xiàn).

分詞速度達到每秒鐘大約200萬字左右(mac air下測試),準確率能達到96%以上

目前實現(xiàn)了.中文分詞. 中文姓名識別 . 用戶自定義詞典,關鍵字提取,自動摘要,關鍵字標記等功能

可以應用到自然語言處理等方面,適用于對分詞效果要求高的各種項目.

該算法實現(xiàn)分詞有以下幾個步驟:

1、全切分,原子切分;

2、 N最短路徑的粗切分,根據(jù)隱馬爾科夫模型和viterbi算法,達到最優(yōu)路徑的規(guī)劃;

3、人名識別;

4、 系統(tǒng)詞典補充;
5、 用戶自定義詞典的補充;
6、 詞性標注(可選) 

2、Ansj分詞的準確率

這是我采用人民日報1998年1月語料庫的一個測試結果,首先要說明的是這份人工標注的語料庫本身就有錯誤。
    P(準確率):0.984887218571267

  R(召回率):0.9626488103178712

    F(綜合指標F值):0.9736410471396494

3、歧義詞、未登錄詞的表現(xiàn)

歧異方面的處理方式自我感覺還可以,基于“最佳實踐規(guī)則+統(tǒng)計”的方式,雖然還有一部分歧異無法識別,但是已經(jīng)完全能滿足工程應用了。

至于未登錄詞的識別,目前重點做了中文人名的識別,效果還算滿意,識別方式用的“字體+前后監(jiān)督”的方式,也算是目前我所知道的效果最好的一種識別方式了。

4、算法效率

在我的測試中,Ansj的效率已經(jīng)遠超ictclas的其他開源實現(xiàn)版本。
核心詞典利用雙數(shù)組規(guī)劃,每秒鐘能達到千萬級別的粗分。在我的MacBookAir上面,分詞速度大約在300w/字/秒,在酷睿i5+4G內(nèi)存組裝機器上,更是達到了400w+/字/秒的速度。數(shù)據(jù)分析師培訓


數(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); }