下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)用標(biāo)準(zhǔn)文案分詞技術(shù)文檔說明一.基本介紹1 .分詞技術(shù) 就是搜索引擎針對用戶提交查詢的關(guān)鍵詞串進(jìn)行的查詢處理后根據(jù)用戶的關(guān)鍵詞串用各種匹配方法進(jìn)行分詞的一種技術(shù)。2 .數(shù)據(jù)處理我們要理解分詞技術(shù)先要理解一個概念。那就是查詢處理,當(dāng)用戶向搜索引擎提交查詢后,搜索引擎接收到用戶的信息要做一系列的處理。步驟如下所示:(1) .首先是到數(shù)據(jù)庫里面索引相關(guān)的信息,這就是查詢處理。那么查詢處理又是如何工作的呢?很簡單,把用戶提交的字符串沒有超過3個的中文字,就會直接到數(shù)據(jù)庫索引詞匯。超過 4個中文字的,首先用分隔符比如空格,標(biāo)點(diǎn)符號,將查詢 串分割成若干子查詢串。舉個例子?!笆裁词前俣确衷~技術(shù)”我們就會把
2、這個詞分割成 “什么是,百度,分詞技術(shù)?!边@種分詞方法叫做反向匹配法。(2) .然后再看用戶提供的這個詞有沒有重復(fù)詞匯如果有的話,會丟棄掉, 默認(rèn)為一個詞匯。接下來檢查用戶提交的字符串,有沒有字母和數(shù)字。如果有的話,就把字母和數(shù)字認(rèn)為一個詞。這就是搜索引擎的查詢處理。3.分詞原理(1) .正向最大匹配法就是把一個詞從左至右來分詞。舉個例子:”不知道你在說什么”這句話采用正向最大匹配法是如何分的呢? “不知道,你,在,說什么”。(2) .反向最大匹配法"不知道你在說什么"反向最大匹配法來分上面這段是如何分的?!安?,知道,你在,說,什么",這個就分的比較多了,反向最大
3、匹配法就是從右至左。(3) .就是最短路徑分詞法。就是說一段話里面要求切出的詞數(shù)是最少的?!安恢滥阍谡f什么"最短路徑分詞法就是指,把上面那句話分成的詞要是最少的?!安恢?,你在,說什么",這就是最短路徑分詞法,分出來就只有3個詞了。(4) .雙向最大匹配法。而有一種特殊的情況,就是關(guān)鍵詞前后組合內(nèi)容被認(rèn)為粘性相差不大,而搜索結(jié)果中也同時包含這兩組詞的話,百度會進(jìn)行正反向同時進(jìn)行分詞匹配。二.技術(shù)說明Lucene是一個開放源代碼的全文檢索引擎工具包,但它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎ik :采用了特有
4、的“正向迭代最細(xì)粒度切分算法“,多子處理器分析模式。paoding : Lucene中文分詞"庖丁解牛"Paoding Analysis 。主要優(yōu)勢在于原生支持詞庫更新檢測。主要劣勢為作者已經(jīng)不更新甚至不維護(hù)了。mmseg4j :用 MMSeg算法實(shí)現(xiàn)的中文分詞器。在 complex基礎(chǔ)上實(shí)現(xiàn)了最多分詞 (max-word),但是還不成熟,還有很多需要改進(jìn)的地方。Smartcn :從自定義詞庫的角度考慮,因?yàn)?smartcn在Lucene4.6中的版本,目前不支持自 定義詞庫,成為致命缺陷,只能放棄。(一):ik Analyzer說明:在IKAnalyzer2012 中分詞
5、器有兩個:一個是IKAnalyzer,另外一個是IKSegmenter。 前者繼承Lucene,而后者是可以獨(dú)立。IK2012具有160萬字/秒(3000KB/S)IK Analyzer是一個開源的,基于 java語言開發(fā)的輕量級的中文分詞工具包。從 2006年12月推出1.0版開始,IKAnalyzer已經(jīng)推出了 4個大版本。最初,它是以開源項(xiàng)目Luence 為應(yīng)用主體的,結(jié)合詞典分詞和文法分析算法的中文分詞組件。從 3.0版本開始,IK發(fā)展 為面向Java的公用分詞組件,獨(dú)立于Lucene項(xiàng)目,同時提供了對Lucene的默認(rèn)優(yōu)化實(shí)現(xiàn)。 在2012版本中,IK實(shí)現(xiàn)了簡單的分詞歧義排除算法,標(biāo)
6、志著 IK分詞器從單純的詞典分詞 向模擬語義分詞衍化。IK Analyzer 2012 特性: 優(yōu)點(diǎn):1 .采用了特有的“正向迭代最細(xì)粒度切分算法”,具有 60萬字/秒的高速處理能力。2 .采用了多子處理器分析模式,支持:英文字母( IP地址、Email、URD、數(shù)字(日期, 常用中文數(shù)量詞,羅馬數(shù)字,科學(xué)計(jì)數(shù)法),中文詞匯(姓名、地名處理)等分詞處理。3 .優(yōu)化的詞典存儲,更小的內(nèi)存占用。支持用戶詞典擴(kuò)展定義。(1) .基于 Lucene 實(shí)現(xiàn) 需要 IKAnalyzer-5.0.1.jar 和 lucene 相關(guān) jar 包/,區(qū)于工口£巨n巳羽見IKAnalyzer-5.0.1
7、.1己工和工。口曰113相關(guān)工a1:包public void setlucene(String text)I try (/創(chuàng)建分i酬費(fèi) Analyzer anal=new iRAnalyzer(true) ;/true智能切分stringReader readei:=new stringReadler (text);Tokenstream ts=ania 1 e tokenstreamreader);ts. reset () ; /必須先調(diào)用工會與邑七方法Ch a r T e rrnAt t r i bu t e term=t s a get At tribute (Cha rTerrnAt
8、tribute - class); /苣歷分詞翱據(jù) while (t.s . increm&ntToken () ) System, out .print (term. toString O |) reader . close (); t;s close ();System.out pzintln(); ) catch (lOException e) eprintStackTrace () ;|(2) .獨(dú)立Lucene實(shí)現(xiàn)只需要引用IKAnalyzer-5.0.1.jar 即可獨(dú)立工口心白幾白實(shí)現(xiàn) .只率1!引用工KAnmlywQE-S ,0.1.33匕即可 puibllo void
9、 setlEAnalyaers (String text)( try Conf i gu r a t ion cfg = De fault Config - gretZzi stance ();Systeni. out. print In. (af g a getExtStopWardDictionarys ();擴(kuò)愍停止直亨明System, out. printin. (cfg . getExtDict-icinarys () )/ 獷縣手曲System- out. println (cfg. getMainDictionar y () ) ; / 生洞3S使System. out.prin
10、tin (cfg.getQuantifieroicionary () ) ; /里句向典路tl Dictionary, iziitlsl (cfg);Dietionary dg = Dietionary - getSingrletoin ();Liet<St.ring> list=new ArrayList<Stringi> ();list B add (5) ?dg.addwosds(list);StringReadler sr=new stringReader ;,/!1幅設(shè)置為1:口1曰則褰示智能力河«。睞設(shè)置為則表示力細(xì)粒度分割I(lǐng)KSegmenter
11、ik=new IKSegmenter (srr false) ;/加果不設(shè)置乳也為工己工閂用 也我是妞粗營外甥Lexeme lex=nul1 *while ( (lex=ik.n&3ic (.) !=tiull Sys tern. out. print (lex T getLeKemeText () 4-'11r,) ; ) caitGh (IOE xcept i on e) e - print Stack.Trace ();)(二).paodingAnalyzer說明:支持不限制個數(shù)的用戶自定義詞庫,純文本格式,一行一詞,使用后臺線程檢測詞庫的更新,自動編譯更新過的詞庫到二進(jìn)
12、制版本,并加載,在PIII 1G內(nèi)存?zhèn)€人機(jī)器上,1秒 可準(zhǔn)確分詞 100萬漢字。(2000KB/S) 優(yōu)點(diǎn):1 .高擴(kuò)展性:能非常方便的擴(kuò)充字典,也可以非常方便的添加停用詞。2 .效率極高-極高效率的字典查找算法;盡量避免無謂試探查找。3 .算法簡練-簡單易理解的算法,但效率卻是非常高效的。4 .輕松支持最大/最小切詞。缺點(diǎn):1.分詞精確度不好,涉及了漢語語義的問題,幾乎不可完全解決。如:“和服”實(shí)例。安裝步驟:1 .需要 jar 包 paoding-analysis.jar , lucene-analyzers-2.2.0.jar , lucene-core-2.2.0.jar , luce
13、ne-highlighter-2.2.0.jar , commons-logging.jar2 .配置環(huán)境變量 PAODING DIC HOM變量名:PAODING DIC HOM豉量值: F:WorkspacesSearchEngineByPaodingWebRootdic (此路徑根據(jù)實(shí)際情況而定),dic文件夾下面全部是定義的字典信息 修改paoding .dic .home .config-fisrt=this ,使得程序知道該配置文件修改paoding .dic .home =classpath:dic ,指定字典的所在路徑。絕對路徑也可以,但 是不好3 .新建文件 paoding-
14、perties 在 src 文件夾 下面,然 后添加 paoding.dic.home=F:WorkspacesSearchEngineByPaodingWebRootdic ( 此路徑根據(jù)實(shí) 際情況而定)4 .x-noise-charactor.dic 和 x-noise-word.dic 存放忽略的字典庖丁有兩種分詞模式:most-words :最大詞量分詞方式,此模式對應(yīng)的詞典編譯類為MostWordsModeDictionariesCompilermax-word-length :按詞在詞典中的原序來進(jìn)行編譯,基本不再做其他處理,此模式對應(yīng)的詞典編譯類為 Sor
15、tingDictionariesCompiler most-words是默認(rèn)的分詞模式。一種是 MOST_WORDS,中是 MAX_WORD_LENGTH者表示盡可能多的分詞,即華中科 技大學(xué)大學(xué)將被分為“華中、華中科技、華中科技大學(xué)、科技、大學(xué)”,在 CJKKnife中, 當(dāng)它遇到“華中”的時候,就會開始collect,然后把它移到結(jié)尾,在分出“華中科技”和“華中科技大學(xué)”后,“華”字開頭的就切玩了,然后跳出小循環(huán),進(jìn)行下一輪的大循環(huán), 移動開始位置,即“中”字,繼續(xù)采用這個策略來切詞,這樣就會把詞盡可能的多切,這種 方式在索引的時候最好,可以保證盡可能多的關(guān)鍵字,這樣找到的機(jī)會就比較大。如
16、果采用后者模式,它直接將上面分出“華中,華中科技,華中科技大學(xué),科技,大學(xué)”只講最長的 一個 collect 。5 .(1).獨(dú)立于 lucene/m “庖丁第?!敝形姆衷~器的分詞效果public void setPaodlnqAnalysis()StringReader reader = null;Tokenstream ts = null; try ( Analyzer analyzer = new PaodingAnalyzer(); String indexStr ="大家好! T,; reader = new StringReader(indexStr); ts = ana
17、lyzer.tokenStream(indexStr, reader); Token t = ts * next(); while (t != null) System.print ft - termText () 4-M;t = ts »next (); ) catch (lOException e) e.printStackTrace(); finally try ( if(reader J = null) reader “ close(); if(reader J null) tsclose(); catch (lOException e) e.printStackTrace(
18、); )l(3) .mmseg4j說明:自帶sogou詞庫,支持名為 wordsxxx.dic , utf8文本格式的用戶自定義詞庫,一行一詞。不支持自動檢測。complex 1200kb/s 左右,simple 1900kb/s 左右1、sogou詞庫,不是用官方的文件,因?yàn)楣俜降奈募性~頻等信息,加載比較慢。就把這些信息去了,轉(zhuǎn)換了下,一行一詞,并且轉(zhuǎn)換為UTF-8的文件,目前sogou詞庫有15W多。2、mmseg4j-1.5 版的分詞速度 simple 算法是 1900kb/s 左右、complex 算法是 1200kb/s 左右,complex 比 IK 要快,沒 paoding 快
19、(2000KB/S 左右),simple 方式比 paoding 快。 配置:1 .需要引用 mmseg4j-1.9.2.jar 和 lucene-core-5.1.0.jar/I. complex public void setMniseg4jComplex ) try (String txt = O1" txt =' ”武漢理工大學(xué)”;File file = new File (11F: /Workspaces/SearchEn.gineBymmseg4j/WebRoot/dicia) j / Dictionary die = Dietionazy, getlnstanc
20、ef file) ;與滕老的柝事中不相加不能亙接口日叫£eg seg - new Cornpl exSe(die);MMSag mmSeg = new MMSeg(new StringReader(txt), seg); Word word = null;while ( (word = nim£eg.m&x:t(j ) ! =null ( if(wod 1= null) Systeni- out.print (word + lp i|11); i )catch (lOException e) eprirttfilLaEkTrace (|); (4) .Smarten
21、 分詞Smarten 是ICTCLAS(漢語詞法分析系統(tǒng))簡化后的版本;沒有詞性標(biāo)注;沒有人名、地 名識別;采用的動態(tài)規(guī)劃計(jì)算最短路徑。精彩文檔特性:1.從自定義詞庫的角度考慮,因?yàn)閟marten在Lucene4.6中的版本,目前不支持自定義詞庫,成為致命缺陷2.smarten為Lucene4.6版本自帶(之前版本也有),中文分詞不錯,英文分詞有問題,Lucene 分詞后變成了 Luncn3.對中文支持稍好,但擴(kuò)展性差 /smarten public void setSmartcn O!try ( / 9 19 String text ="到lit蜩眄黜同行性"; /String test = 目前去已身:用了工uesn日4Q.星區(qū)是mlphaJS'怛是也是未來的第一歲口但是工KAnwly蕓101不支持。后可?如果作,在, / S義倬用誨 String: self_stop_words = ”的 喳* * 工隰*、"尸,,;、"是' .流” ;CharArzaySet
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024適用復(fù)雜情況磚渣產(chǎn)品采購合同2篇
- 2025年南京市共有產(chǎn)權(quán)住房買賣合同(公平共享版)3篇
- 2024高端裝備制造技術(shù)轉(zhuǎn)讓合同標(biāo)的及技術(shù)培訓(xùn)協(xié)議
- 2024綠化工程節(jié)水灌溉系統(tǒng)安裝與維護(hù)勞務(wù)分包合同書2篇
- 多媒體技術(shù)基礎(chǔ)(山東聯(lián)盟)知到智慧樹章節(jié)測試課后答案2024年秋青島恒星科技學(xué)院
- 2024男方離婚協(xié)議書:包含贍養(yǎng)費(fèi)及子女教育金支付合同3篇
- 2024甲乙雙方汽車租賃保險責(zé)任劃分合同
- 稅務(wù)知識培訓(xùn)課件
- 博物館管道網(wǎng)絡(luò)協(xié)議
- 軍事基地礦山開采施工合同
- 銷售人員十大軍規(guī)課件
- 搞笑詩朗誦《生活》4人
- 2022-2023學(xué)年浙江省杭州市上城區(qū)三上數(shù)學(xué)期末含解析
- 公務(wù)員第二批
- 數(shù)獨(dú)題目難度系數(shù)3級共100題后附參考答案
- GB∕T 7588.1-2020 電梯制造與安裝安全規(guī)范 第1部分:乘客電梯和載貨電梯
- 2022年高一班主任工作總結(jié)班主任會議記錄.doc
- (完整word版)學(xué)校就讀證明
- 第六章傳質(zhì)基本概念
- 空調(diào)工程竣工驗(yàn)收單(共1頁)
- API-685-中文_
評論
0/150
提交評論