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

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀數(shù)據(jù)處理-分詞技術(shù)_數(shù)據(jù)處理技術(shù)_中文分詞技術(shù)
數(shù)據(jù)處理-分詞技術(shù)_數(shù)據(jù)處理技術(shù)_中文分詞技術(shù)
2017-01-03
收藏

數(shù)據(jù)處理-分詞技術(shù)_數(shù)據(jù)處理技術(shù)_中文分詞技術(shù)

第一章:基礎(chǔ)介紹

定義:分詞技術(shù)就是搜索引擎針對(duì)用戶(hù)提交查詢(xún)的關(guān)鍵詞串進(jìn)行的查詢(xún)處理后根據(jù)用戶(hù)的關(guān)鍵詞串用各種匹配方法進(jìn)行的一種技術(shù)。

概述

我們要理解分詞技術(shù)先要理解一個(gè)概念。那就是查詢(xún)處理,當(dāng)用戶(hù)向搜索引擎提交查詢(xún)后,搜索引擎接收到用戶(hù)的信息要做一系列的處理。步驟如下所示:

1.首先是到數(shù)據(jù)庫(kù)里面索引相關(guān)的信息,這就是查詢(xún)處理。

那么查詢(xún)處理又是如何工作的呢?很簡(jiǎn)單,把用戶(hù)提交的字符串沒(méi)有超過(guò)3個(gè)的中文字,就會(huì)直接到數(shù)據(jù)庫(kù)索引詞匯。超過(guò)4個(gè)中文字的,首先用分隔符比如空格,標(biāo)點(diǎn)符號(hào),將查詢(xún)串分割成若干子查詢(xún)串。

舉個(gè)例子?!笆裁词前俣确衷~技術(shù)” 我們就會(huì)把這個(gè)詞分割成“ 什么是,百度,分詞技術(shù)。”這種分詞方法叫做反向匹配法。

2.然后再看用戶(hù)提供的這個(gè)詞有沒(méi)有重復(fù)詞匯

如果有的話,會(huì)丟棄掉,默認(rèn)為一個(gè)詞匯。接下來(lái)檢查用戶(hù)提交的字符串,有沒(méi)有字母和數(shù)字。如果有的話,就把字母和數(shù)字認(rèn)為一個(gè)詞。

這就是搜索引擎的查詢(xún)處理。

分詞的原理

百度是如何來(lái)分詞的呢?分詞技術(shù)現(xiàn)今非常成熟了。分為3種技術(shù)。

字符串匹配的分詞方法

這是種常用的分詞法,百度就是用此類(lèi)分詞。字符串匹配的分詞方法,又分為3種分詞方法。

(1).正向最大匹配法
就是把一個(gè)詞從左至右來(lái)分詞。
舉個(gè)例子:”不知道你在說(shuō)什么”
這句話采用正向最大匹配法是如何分的呢?“不知道,你,在,說(shuō)什么”。

(2).反向最大匹配法
“不知道你在說(shuō)什么”反向最大匹配法來(lái)分上面這段是如何分的?!安唬?,你在,說(shuō),什么”,這個(gè)就分的比較多了,反向最大匹配法就是從右至左。

(3).就是最短路徑分詞法。
就是說(shuō)一段話里面要求切出的詞數(shù)是最少的。
“不知道你在說(shuō)什么”最短路徑分詞法就是指,把上面那句話分成的詞要是最少的?!安恢?,你在,說(shuō)什么”,這就是最短路徑分詞法,分出來(lái)就只有3個(gè)詞了。

(4).雙向最大匹配法。
而有一種特殊的情況,就是關(guān)鍵詞前后組合內(nèi)容被認(rèn)為粘性相差不大,而搜索結(jié)果中也同時(shí)包含這兩組詞的話,百度會(huì)進(jìn)行正反向同時(shí)進(jìn)行分詞匹配。

詞義分詞法

就是一種機(jī)器語(yǔ)音判斷的分詞方法。很簡(jiǎn)單,進(jìn)行句法、語(yǔ)義分析,利用句法信息和語(yǔ)義信息來(lái)處理歧義現(xiàn)象來(lái)分詞,這種分詞方法,現(xiàn)在還不成熟,處在測(cè)試階段。
統(tǒng)計(jì)分詞法

根據(jù)詞組的統(tǒng)計(jì),就會(huì)發(fā)現(xiàn)兩個(gè)相鄰的字出現(xiàn)的頻率最多,那么這個(gè)詞就很重要。就可以作為用戶(hù)提供字符串中的分隔符,這樣來(lái)分詞。

比如,“我的,你的,許多的,這里,這一,那里”等等,這些詞出現(xiàn)的比較多,就從這些詞里面分開(kāi)來(lái)。

第二章:中文分詞技術(shù)

一、為什么要進(jìn)行中文分詞?

詞是最小的能夠獨(dú)立活動(dòng)的有意義的語(yǔ)言成分,英文單詞之間是以空格作為自然分界符的,而漢語(yǔ)是以字為基本的書(shū)寫(xiě)單位,詞語(yǔ)之間沒(méi)有明顯的區(qū)分標(biāo)記,因此,中文詞語(yǔ)分析是中文信息處理的基礎(chǔ)與關(guān)鍵。

Lucene中對(duì)中文的處理是基于自動(dòng)切分的單字切分,或者二元切分。除此之外,還有最大切分(包括向前、向后、以及前后相結(jié)合)、最少切分、全切分等等。

二、中文分詞技術(shù)的分類(lèi)

我們討論的分詞算法可分為三大類(lèi):基于字典、詞庫(kù)匹配的分詞方法;基于詞頻度統(tǒng)計(jì)的分詞方法和基于知識(shí)理解的分詞方法。

第一類(lèi)方法應(yīng)用詞典匹配、漢語(yǔ)詞法或其它漢語(yǔ)語(yǔ)言知識(shí)進(jìn)行分詞,如:最大匹配法、最小分詞方法等。這類(lèi)方法簡(jiǎn)單、分詞效率較高,但漢語(yǔ)語(yǔ)言現(xiàn)象復(fù)雜豐富,詞典的完備性、規(guī)則的一致性等問(wèn)題使其難以適應(yīng)開(kāi)放的大規(guī)模文本的分詞處理。第二類(lèi)基于統(tǒng)計(jì)的分詞方法則基于字和詞的統(tǒng)計(jì)信息,如把相鄰字間的信息、詞頻及相應(yīng)的共現(xiàn)信息等應(yīng)用于分詞,由于這些信息是通過(guò)調(diào)查真實(shí)語(yǔ)料而取得的,因而基于統(tǒng)計(jì)的分詞方法具有較好的實(shí)用性。

下面簡(jiǎn)要介紹幾種常用方法:

1)逐詞遍歷法。

逐詞遍歷法將詞典中的所有詞按由長(zhǎng)到短的順序在文章中逐字搜索,直至文章結(jié)束。也就是說(shuō),不管文章有多短,詞典有多大,都要將詞典遍歷一遍。這種方法效率比較低,大一點(diǎn)的系統(tǒng)一般都不使用。

2)基于字典、詞庫(kù)匹配的分詞方法(機(jī)械分詞法)

這種方法按照一定策略將待分析的漢字串與一個(gè)“充分大的”機(jī)器詞典中的詞條進(jìn)行匹配,若在詞典中找到某個(gè)字符串,則匹配成功。識(shí)別出一個(gè)詞,根據(jù)掃描方向的不同分為正向匹配和逆向匹配。根據(jù)不同長(zhǎng)度優(yōu)先匹配的情況,分為最大(最長(zhǎng))匹配和最?。ㄗ疃蹋┢ヅ洹8鶕?jù)與詞性標(biāo)注過(guò)程是否相結(jié)合,又可以分為單純分詞方法和分詞與標(biāo)注相結(jié)合的一體化方法。常用的方法如下:

a、最大正向匹配法 (MaximumMatchingMethod)通常簡(jiǎn)稱(chēng)為MM法。其基本思想為:假定分詞詞典中的最長(zhǎng)詞有i個(gè)漢字字符,則用被處理文檔的當(dāng)前字串中的前i個(gè)字作為匹配字段,查找字典。若字典中存在這樣的一個(gè)i字詞,則匹配成功,匹配字段被作為一個(gè)詞切分出來(lái)。如果詞典中找不到這樣的一個(gè)i字詞,則匹配失敗,將匹配字段中的最后一個(gè)字去掉,對(duì)剩下的字串重新進(jìn)行匹配處理…… 如此進(jìn)行下去,直到匹配成功,即切分出一個(gè)詞或剩余字串的長(zhǎng)度為零為止。這樣就完成了一輪匹配,然后取下一個(gè)i字字串進(jìn)行匹配處理,直到文檔被掃描完為止。

其算法描述如下:
(1)初始化當(dāng)前位置計(jì)數(shù)器,置為0;
(2)從當(dāng)前計(jì)數(shù)器開(kāi)始,取前2i個(gè)字符作為匹配字段,直到文檔結(jié)束;
(3)如果匹配字段長(zhǎng)度不為0,則查找詞典中與之等長(zhǎng)的作匹配處理。
如果匹配成功,
則,
a)把這個(gè)匹配字段作為一個(gè)詞切分出來(lái),放入分詞統(tǒng)計(jì)表中;
b)把當(dāng)前位置計(jì)數(shù)器的值加上匹配字段的長(zhǎng)度;
c)跳轉(zhuǎn)到步驟2);
否則
a) 如果匹配字段的最后一個(gè)字符為漢字字符,

①把匹配字段的最后一個(gè)字去掉;
②匹配字段長(zhǎng)度減2;
否則
①把匹配字段的最后一個(gè)字節(jié)去掉;
②匹配字段長(zhǎng)度減1;
b)跳轉(zhuǎn)至步驟3);
否則
a)如果匹配字段的最后一個(gè)字符為漢字字符,
則 當(dāng)前位置計(jì)數(shù)器的值加2;
否則當(dāng)前位置計(jì)數(shù)器的值加1;
b)跳轉(zhuǎn)到步驟2)。

b、逆向最大匹配法 (ReverseMaximumMatcingMethod)通常簡(jiǎn)稱(chēng)為RMM法。RMM法的基本原理與MM法相同 ,不同的是分詞切分的方向與MM法相反,而且使用的分詞辭典也不同。逆向最大匹配法從被處理文檔的末端開(kāi)始匹配掃描,每次取最末端的2i個(gè)字符(i字字串)作為匹配字段,若匹配失敗,則去掉匹配字段最前面的一個(gè)字,繼續(xù)匹配。相應(yīng)地,它使用的分詞詞典是逆序詞典,其中的每個(gè)詞條都將按逆序方式存放。在實(shí)際處理時(shí),先將文檔進(jìn)行倒排處理,生成逆序文檔。然后,根據(jù)逆序詞典,對(duì)逆序文檔用正向最大匹配法處理即可。

由于漢語(yǔ)中偏正結(jié)構(gòu)較多,若從后向前匹配,可以適當(dāng)提高精確度。所以,逆向最大匹配法比正向最大匹配法的誤差要小。統(tǒng)計(jì)結(jié)果表明 ,單純使用正向最大匹配的錯(cuò)誤率為 1/16 9,單純使用逆向最大匹配的錯(cuò)誤率為 1/245。例如切分字段“碩士研究生產(chǎn)”,正向最大匹配法的結(jié)果會(huì)是“碩士研究生 / 產(chǎn)”,而逆向最大匹配法利用逆向掃描,可得到正確的分詞結(jié)果“碩士 / 研究 / 生產(chǎn)”。

當(dāng)然,最大匹配算法是一種基于分詞詞典的機(jī)械分詞法,不能根據(jù)文檔上下文的語(yǔ)義特征來(lái)切分詞語(yǔ),對(duì)詞典的依賴(lài)性較大,所以在實(shí)際使用時(shí),難免會(huì)造成一些分詞錯(cuò)誤,為了提高系統(tǒng)分詞的準(zhǔn)確度,可以采用正向最大匹配法和逆向最大匹配法相結(jié)合的分詞方案(即雙向匹配法,見(jiàn)(四)。)

C、最少切分法:使每一句中切出的詞數(shù)最小。

D、雙向匹配法:將正向最大匹配法與逆向最大匹配法組合。先根據(jù)標(biāo)點(diǎn)對(duì)文檔進(jìn)行粗切分,把文檔分解成若干個(gè)句子,然后再對(duì)這些句子用正向最大匹配法和逆向最大匹配法進(jìn)行掃描切分。如果兩種分詞方法得到的匹配結(jié)果相同,則認(rèn)為分詞正確,否則,按最小集處理。

3). 全切分和基于詞的頻度統(tǒng)計(jì)的分詞方法

基于詞的頻度統(tǒng)計(jì)的分詞方法是一種全切分方法。在討論這個(gè)方法之前我們先要明白有關(guān)全切分的相關(guān)內(nèi)容。

全切分

全切分要求獲得輸入序列的所有可接受的切分形式,而部分切分只取得一種或幾種可接受的切分形式,由于部分切分忽略了可能的其他切分形式,所以建立在部分切分基礎(chǔ)上的分詞方法不管采取何種歧義糾正策略,都可能會(huì)遺漏正確的切分,造成分詞錯(cuò)誤或失敗。而建立在全切分基礎(chǔ)上的分詞方法,由于全切分取得了所有可能的切分形式,因而從根本上避免了可能切分形式的遺漏,克服了部分切分方法的缺陷。

全切分算法能取得所有可能的切分形式,它的句子覆蓋率和分詞覆蓋率均為100%,但全切分分詞并沒(méi)有在文本處理中廣泛地采用,原因有以下幾點(diǎn):

1)全切分算法只是能獲得正確分詞的前提,因?yàn)槿蟹植痪哂衅缌x檢測(cè)功能,最終分詞結(jié)果的正確性和完全性依賴(lài)于獨(dú)立的歧義處理方法,如果評(píng)測(cè)有誤,也會(huì)造成錯(cuò)誤的結(jié)果。

2)全切分的切分結(jié)果個(gè)數(shù)隨句子長(zhǎng)度的增長(zhǎng)呈指數(shù)增長(zhǎng),一方面將導(dǎo)致龐大的無(wú)用數(shù)據(jù)充斥于存儲(chǔ)數(shù)據(jù)庫(kù);另一方面當(dāng)句長(zhǎng)達(dá)到一定長(zhǎng)度后,由于切分形式過(guò)多,造成分詞效率嚴(yán)重下降。

基于詞的頻度統(tǒng)計(jì)的分詞方法:

這是一種全切分方法。它不依靠詞典,而是將文章中任意兩個(gè)字同時(shí)出現(xiàn)的頻率進(jìn)行統(tǒng)計(jì),次數(shù)越高的就可能是一個(gè)詞。它首先切分出與詞表匹配的所有可能的詞,運(yùn)用統(tǒng)計(jì)語(yǔ)言模型和決策算法決定最優(yōu)的切分結(jié)果。它的優(yōu)點(diǎn)在于可以發(fā)現(xiàn)所有的切分歧義并且容易將新詞提取出來(lái)。

4).基于知識(shí)理解的分詞方法。

該方法主要基于句法、語(yǔ)法分析,并結(jié)合語(yǔ)義分析,通過(guò)對(duì)上下文內(nèi)容所提供信息的分析對(duì)詞進(jìn)行定界,它通常包括三個(gè)部分:分詞子系統(tǒng)、句法語(yǔ)義子系統(tǒng)、總控部分。在總控部分的協(xié)調(diào)下,分詞子系統(tǒng)可以獲得有關(guān)詞、句子等的句法和語(yǔ)義信息來(lái)對(duì)分詞歧義進(jìn)行判斷。這類(lèi)方法試圖讓機(jī)器具有人類(lèi)的理解能力,需要使用大量的語(yǔ)言知識(shí)和信息。由于漢語(yǔ)語(yǔ)言知識(shí)的籠統(tǒng)、復(fù)雜性,難以將各種語(yǔ)言信息組織成機(jī)器可直接讀取的形式。因此目前基于知識(shí)的分詞系統(tǒng)還處在試驗(yàn)階段。

5).一種新的分詞方法

并行分詞方法:這種分詞方法借助于一個(gè)含有分詞詞庫(kù)的管道進(jìn)行 ,比較匹配過(guò)程是分步進(jìn)行的 ,每一步可以對(duì)進(jìn)入管道中的詞同時(shí)與詞庫(kù)中相應(yīng)的詞進(jìn)行比較 ,由于同時(shí)有多個(gè)詞進(jìn)行比較匹配 ,因而分詞速度可以大幅度提高。這種方法涉及到多級(jí)內(nèi)碼理論和管道的詞典數(shù)據(jù)結(jié)構(gòu)。

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

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

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

OK
客服在線
立即咨詢(xún)
客服在線
立即咨詢(xún)
') } 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, // 表示用戶(hù)后臺(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)參見(jiàn):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); }