Manticore search加一個中文分詞

      網友投稿 840 2022-05-30

      在互聯網高速發展的今天,信息也呈現出爆炸式的增長。在海量信息中我們如何利用機器快速地提取我們想要的信息?

      因為一篇文章沒有特別的符號來將詞語呈現出來,所以我們用機器進行中文處理的時候,首先就需要對中文語句進行分詞。

      下面我們來看看如何實現的

      Sphinx search 可以說是一款非常強的開源全文搜索引擎,因為種種原因,后來都沒有更新了,所以后來版本太低,同時也會出現bug;后來也使用最新的sphinxsearch,它可以支持幾乎所有語言,通過其內置的ngram tokenizer對中文進行索引和搜索。但是,像中文、日文、韓文這種文字使用ngram還是有很大弊端。

      當Ngram=1時,中文(日文、韓文)被分解成一個個的單字,就像把英文分解成一個個字母那樣。這會導致每個單字的索引很長,搜索效率下降,同時搜索結果習慣性比較差。

      當Ngram=2或更大時,會產生很多無意義的“組合”,比如“的你”、“為什”等,導致索引的字典、索引文件等非常大,同時也影響搜索速度。

      基于以上弊端,為中日韓文本加入分詞的tokenizer是很有必要的。

      于是決定來做這件事。先去Sphinxsearch網站去看看,發現它已經發布了新的3.x版本,而且加入了很多很棒的特性,然而它從Sphinxsearch 3.x 開始,暫時不再開源. 不過,部分前Sphinxsearch的開發人員跳出來成立新團隊,在Sphinx 2.x版本基礎上開發自己的Manticoresearch。這兩者很像,從它們的名字就可以看出來,這倆都是獅身怪獸。

      Sphinx 是(古埃及)獅身人面像,Manticore 是(傳說中的)人頭獅身龍(蝎)尾怪獸

      Manticoresearch 從Sphinxsearch 繼承而來, 并做了性能優化. 因此,我選擇了Manticoresearch 來添加中日韓分詞。

      首先從Manticoresearch的github倉庫pull最新的代碼來談價,后面我也會盡力與Manticoresearch的主分支保持同步。

      算法實現

      通過最小匹配(而非單字)來匹配字典和字符串,把字符串分割成最短(而非單字)的詞。如果遇到處理不了的歧義時,以單字做詞。這樣的目的是,保證搜索時能找到這些內容而不丟失。

      稍微解釋一下,對于搜索引擎的分詞為什么這么做:

      搜索引擎要能找到盡可能全內容:最徹底的方法是ngram=1,每個字單獨索引,這樣你搜索一個單字“榴”時,含有“榴蓮”的文本會被找到,但缺點就如前面所說。

      搜索引擎要能找到盡可能相關的內容: 分詞就是比較好的方法,對詞進行索引,這樣你搜索一個單字“榴”時,含有“榴蓮”的文本就不會被找到。但分詞的粒度要小,比如“編程語言”這是一個詞組,如果把這個分成一個詞,你搜索“編程”時,就找不到只含“編程語言”的文本,同樣的,“上海市”要分成“上海”和“市”,等等。所以,“最小匹配”適用于搜索引擎。

      編譯安裝

      從github倉庫manticoresearch-seg獲取源碼,編譯方法跟Manticoresearch一樣,具體看官方文檔。

      使用方法

      1. 準備詞表?把所有詞寫到一個txt文件,一行一個詞,如下所示:

      #?words.txt中文 中國語 ???

      2. 創建字典?成功編譯代碼后,就會得到創建字典的可執行程序make_segdictionary. 然后執行命令:

      ./make_segdictionary?words.txt?words.dict

      這樣就得到了字典文件: words.dict

      Manticore search加一個中文分詞

      3. 配置索引?只需在配置文件的?index {...}?添加一行即可:

      index?{ ????... ????seg_dictionary?=?path-to-your-segmentation-words-dictionary ????... }

      提醒:?分詞對批量索引和實時索引都起作用。

      我在我的個人博客“猿人學網站”和公眾號“猿人學Python”上寫Python教程,有興趣的可以關注公眾號和網站。

      中文分詞 華為開源鏡像站 Mirrors

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:北京金信安入駐華為云市場,助力業務上云。
      下一篇:淺析微信小程序響應式像素實現原理
      相關文章
      亚洲黄色在线电影| 国产国拍亚洲精品福利 | 亚洲成人福利在线观看| 久久亚洲国产精品五月天| 亚洲av日韩av无码av| 无码专区一va亚洲v专区在线| 亚洲国产精品无码久久九九大片| 亚洲综合色丁香婷婷六月图片| 亚洲一级毛片视频| 亚洲国产日产无码精品| 亚洲小说图片视频| 国产亚洲成在线播放va| 国产精品亚洲四区在线观看| 亚洲一区动漫卡通在线播放| 精品亚洲成A人无码成A在线观看| 亚洲人成网站在线观看播放动漫| 亚洲国产精品无码久久久| 亚洲一卡2卡4卡5卡6卡在线99 | 国产L精品国产亚洲区久久| 亚洲日韩VA无码中文字幕 | 亚洲美女高清一区二区三区| 久久久久亚洲AV成人网人人网站| 国产成人A亚洲精V品无码| 国产亚洲精品免费视频播放| 成人亚洲性情网站WWW在线观看| 久久久久噜噜噜亚洲熟女综合| 亚洲色自偷自拍另类小说| 久久青草亚洲AV无码麻豆| 国产福利电影一区二区三区,亚洲国模精品一区 | 国产乱辈通伦影片在线播放亚洲| 国产亚洲美日韩AV中文字幕无码成人| 国产成人亚洲影院在线观看| 亚洲成AV人片在线观看无| 91精品国产亚洲爽啪在线影院| 亚洲同性男gay网站在线观看| 亚洲中文无码mv| 亚洲AV成人潮喷综合网| 国产AV无码专区亚洲AV漫画 | 亚洲AV无码片一区二区三区| 亚洲国产精品国产自在在线| 国内精品久久久久久久亚洲|