資源描述:
《站內(nèi)全文檢索》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、站內(nèi)全文檢索Like模糊程度太低無法匹配幾個關(guān)鍵詞不在一起的造成全表掃描效率低下數(shù)據(jù)庫全文檢索:比較快的全文本檢索規(guī)范要選作是開啟全文檢索字段會對搜索字段進(jìn)行一定的分詞處理但是只能是比較常用的分詞方法數(shù)據(jù)表字段加索引Lucene.Net全文檢索開發(fā)包文檔性的可以指定分詞工具和詞庫搜數(shù)據(jù)從lucene中查找更新數(shù)據(jù)庫就要更新lucene1只能搜索文本2要把數(shù)據(jù)寫到lucene中然后通過lucene搜索3lucene首先把文章進(jìn)行分詞挑選出關(guān)鍵詞進(jìn)行存儲和加索引文章分詞算法????搜索引擎內(nèi)部保存的就是一個個的詞一元分詞:英文的比較好用。Standar
2、dAnalyzer低二元分詞:每兩個字算一個詞。CJKAnalyzer高Xxccbbl中國天氣基于詞庫的分詞算法:基于一個詞庫進(jìn)行分詞可以提高分詞的成功率和可讀性。詞庫里面有的則可以分出來,沒有的分不出來。比如庖丁解牛,盤古分詞。效率比較低。詞庫根據(jù)需要還需要更新。一個優(yōu)秀的分詞算法很重要。網(wǎng)上擇優(yōu)選擇一個最好的分詞算法。分詞算法的演示:一元分詞:lucene.net3.0.3自身測試是一元分詞Pangu分詞不支持lucenne.net3.0.3Lucene.net版本2.9.2.2Pangu版本2.3.0具體解決方案在demo內(nèi)測試數(shù)據(jù)無最多測試
3、2千數(shù)據(jù)其他解決方案:1elasticsearch2solrEasyNet.solr3sphinxphp常用(看樣子是不太好局限性太強(qiáng)了N年不更新)4mysql全文檢索方案可以配合3使用二:mysql使用方法三:mysql全文檢索方法分詞算法介紹:正向最大匹配法逆向最大匹配法最小切分雙向最大匹配法綜合分詞特征/標(biāo)志切分-斷點(diǎn)切分現(xiàn)有的分詞算法可分為三大類:基于字符串匹配的分詞方法、基于理解的分詞方法和基于統(tǒng)計的分詞方法。文本挖掘分詞作用語義識別基于字符串機(jī)器人擬人/語法語義判斷:分詞系統(tǒng)句法系統(tǒng)總控部分中文分詞詳解:分詞算法基于理解1,詞的出現(xiàn)頻率
4、2,文本統(tǒng)計/文本詞庫基于統(tǒng)計新詞識別分詞難題歧義識別1基于詞典的方法(字符串匹配,機(jī)械分詞方法)定義:按照一定策略將待分析的漢字串和一個“大機(jī)器詞典”中的詞條進(jìn)行匹配,或是在詞典中找到某個字符串,則匹配成功。1.1正向最大匹配思想:MM1>從左到右取待切分的語句的m個字段作為匹配字段,m為大機(jī)器詞典中最長詞條個數(shù)。2>查找大機(jī)器詞典并進(jìn)行匹配,若匹配成功,則將這個匹配字段作為一個詞切分出來。若匹配不成功,則將這個匹配字段的最后一個字去掉,剩下的字符串作為新的匹配字段在此匹配,重復(fù)上過程,直到切分出所有的詞。1.2逆向最大匹配算法RMM該算法是正向
5、最大匹配的逆向思維,匹配不成功,將匹配字段最前面的一個字去掉,實(shí)驗(yàn)表明逆向算法要優(yōu)于正向算法。1.3雙向最大匹配法(BM)該算法是在正向最大匹配和逆向最大匹配中的結(jié)果進(jìn)行比較從而決定正確的分詞方法。1.4設(shè)立切分標(biāo)志法收集切分標(biāo)志,在自動分詞前處理切分標(biāo)志,再用M,RMM等進(jìn)行細(xì)加工。2基于統(tǒng)計的分詞(無字典分詞)主要思想:上下文中,相鄰的字同時出現(xiàn)的次數(shù)越多,就越可能構(gòu)成一個詞。N元文法模型(N-gram)隱馬爾科夫模型(HMM)分詞工具(C#下能用的):1:IKAnalyzer正向迭代最細(xì)粒度切分法2:CJKAnalyzer正向迭代二元切分不需
6、要詞典不根據(jù)語義EXP:我們的祖國---->我們
7、們的
8、的祖
9、祖國檢索出現(xiàn)找不到的情況蠻多3:pangu分詞采用地點(diǎn)和統(tǒng)計結(jié)合的分詞算法。4:paoding5:LibMMseg是Coreseek.com為sphinx全文搜索引擎設(shè)計的中文分詞軟件包。6:imdict-chinese-analyzer是imdict智能詞典的智能中文分詞模塊。基于HMM模型。是ictclas的重新實(shí)現(xiàn)。7:mmseg4j利用MMSEG算法實(shí)現(xiàn)的中文分詞器并實(shí)現(xiàn)lucene和solr。采用兩種非此方法,都是基于正向最大匹配。8:結(jié)巴分詞9:ICTCLAS中科院分詞工具基
10、于算法的分詞是不必要維護(hù)詞庫的,但是詞庫法則必須維護(hù)詞庫,短語在不斷的發(fā)展。實(shí)際上現(xiàn)在許多著名的搜索引擎都采用了多種分詞方法,并且有基于統(tǒng)計學(xué)的新詞識別,自動維護(hù)詞庫等功能。檢索引擎:solr或者Elasticsearch服務(wù)lucene.netspnixCoreseekMYSQL全文檢索實(shí)例Lucene.net+pangu分詞實(shí)現(xiàn)的全文檢索分詞可以換成CJKkAnalyzer或者IKAnalyzer我查的資料是現(xiàn)在mysql的全文索引對中文還是不支持的,如果想要實(shí)現(xiàn)可以采用將內(nèi)容轉(zhuǎn)換為拼音存儲,然后關(guān)鍵字轉(zhuǎn)換為拼音檢索,或者將內(nèi)容進(jìn)行分詞,把分詞
11、后的保存一份,將檢索條件分詞,在分詞后的內(nèi)容中查找。用第三方實(shí)現(xiàn):Demo:MYSQL57+EF6出現(xiàn)的BUG的解決方案: