《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于Lucene的中文分詞器的設計與實現
基于Lucene的中文分詞器的設計與實現
來源:微型機與應用2011年第18期
彭煥峰
(南京工程學院 計算機工程學院,江蘇 南京211167)
摘要: 針對Lucene自帶中文分詞器分詞效果差的缺點,在分析現有分詞詞典機制的基礎上,設計了基于全哈希整詞二分算法的分詞器,并集成到Lucene中,算法通過對整詞進行哈希,減少詞條匹配次數,提高分詞效率。該分詞器詞典文件維護方便,可以根據不同應用的要求進行定制,從而提高了檢索效率。
Abstract:
Key words :

摘  要: 針對Lucene自帶中文分詞器分詞效果差的缺點,在分析現有分詞詞典機制的基礎上,設計了基于全哈希整詞二分算法的分詞器,并集成到Lucene中,算法通過對整詞進行哈希,減少詞條匹配次數,提高分詞效率。該分詞器詞典文件維護方便,可以根據不同應用的要求進行定制,從而提高了檢索效率。
關鍵詞: Lucene;哈希;整詞二分;最大匹配

    信息技術的發展,形成了海量的電子信息數據,人們對信息檢索的要求越來越高,搜索引擎技術也得到了快速發展,并逐漸地被應用到越來越多的領域。由于搜索引擎技術涉及信息檢索、人工智能、自然語言處理等多種學科,很多搜索算法都不公開[1]。Lucene是一個優秀的開源全文搜索引擎框架,通過Lucene可以方便地將全文搜索技術嵌入到各種應用當中,有針對性地實現強大的搜索功能,因此近年來Lucene的應用越來越廣泛。
    Lucene在對信息進行索引前,需要進行分詞,西方語言使用空格和標點來分隔單詞,而中文使用表意文字,不能通過空格和標點來進行分詞。Lucene自帶中文分詞器有StandardAnalyzer、ChineseAnalyzer、CJKAnalyzer,這些分詞器要么是單字切分,要么采用二分法切分,它們并不能有效地解決中文分詞問題。本文設計并實現了基于全哈希整詞二分算法的分詞器,并集成到Lucene中,從而提高了Lucene處理中文信息的能力。
1 Lucene簡介
    Lucene是Apache軟件基金會jakarta項目組的一個子項目,是一個優秀的開源全文搜索引擎工具包,并不是一個完整的全文檢索應用。它提供了豐富的API函數,可以方便地創建索引,嵌入到各種應用中實現全文檢索[2]。Lucene作為開源的全文搜索引擎,架構清晰,易于擴展,而且索引文件格式獨立于應用平臺,從而使索引文件能夠跨平臺共享,能夠對任意可轉換為文本格式的數據進行索引和搜索,例如網頁、本地文件系統中的WORD文檔、PDF文檔等一切可以從中提取文本信息的文件[3]。
2 基于全Hash的整詞二分分詞器
    目前中文分詞算法大致可分為三大類:機械分詞方法、基于理解分詞方法和基于統計分詞方法[4]。其中機械分詞把待分解的漢字串與詞典中的詞條進行匹配來判斷是否是一個詞,是當前應用廣泛的一種分詞方法。在深入研究整詞二分、TRIE 索引樹和逐字二分這三種傳統的機械分詞算法及其改進算法的基礎上,本文設計并實現了基于全哈希的整詞二分分詞器。
2.1 詞典設計
    詞典設計是機械分詞的關鍵,詞典結構應與分詞算法相結合,這樣設計的分詞器分詞效率才能得到最大限度的提高[5]。全哈希整詞二分詞典機制由首字哈希表、哈希節點、詞哈希表和詞碰撞表構成,如圖1所示。

    (1)首字哈希表
    漢字在計算機中是以內碼的形式存儲。根據內碼獲取漢字對應的區位碼,從而給定一個漢字,可以通過哈希函數直接得到其在首字哈希表中的位置[6]。用lowByte表示漢字內碼的低字節,highByte表示漢字內碼的高字節,則哈希函數設計如下:
    Index=((highByte-160)×100+lowByte-160)-1601
    詞個數:記錄以該字為首字的詞的個數。
    最長詞字數:記錄以該字為首字的最長詞所包含的字數。
    是否單字成詞:標識該字是否可以單獨成詞。
    哈希節點指針:指向以該字為首字的第一個哈希節點。
    (2)哈希節點
    記錄了詞長(iLength)、相同詞長的詞的個數(iNumber)、詞哈希表的地址(wordArray)以及下一個哈希節點的指針(nextNode)等信息。對相同首字的詞條按包含的字數進行分組,再對除首字外的剩余字符串進行全詞哈希,哈希節點按照詞長倒序排列。
    (3)詞哈希表
    記錄了哈希值相同的詞條的個數(iNum)、指向保存詞條的動態數組(wordList),即詞碰撞表。詞哈希表的大小為詞長相同的詞的數量,哈希函數的選取不能太復雜,否則會增加分詞時間,同時也要考慮哈希結果的均勻分布。
    (4)詞碰撞表
    詞碰撞表實際上是一個動態數組,對于詞典中首字相同且詞長相同的詞條,如果哈希值相同,則以動態數組的形式保存,且只保存除首字之外的剩余字串。對于哈希值相同的詞條,采用二分查找。
2.2 分詞算法
    該分詞詞典機制適用于正向最大匹配算法和逆向最大匹配算法,本文采用正向最大匹配算法為例使用該詞典機制進行分詞。
    第一步:取待匹配字符串
    假設String為待分詞語句,如果String不包含任何字符(即長度為零),則表示語句分詞完畢。從String=A1A2A3A4…An中讀取第一個字A1,從首字哈希表中獲取以該字為首字的最長詞的字數m,如果String剩余待分詞的字數不足m,則取Str為String的剩余待分詞的字符串,否則取字符串Str=A1A2…Am為待匹配字符串。
    第二步:判斷Str的長度
    (1)如果Str的長度為1,在首字哈希表中找到對應的位置,判斷單獨成詞標志是否為F,如果是說明Str不是一個詞;否則說明Str是一個詞,分出該詞。設置待切分語句String=A2A3A4…An后轉第一步。
    (2)如果Str的長度大于1,轉第三步。
    第三步:對待匹配字符串分詞
    在A1對應的哈希節點鏈表中查找詞長為字串Str長度的節點,有如下兩種情況:
    (1)如果沒有找到,則Str字串不是一個詞,則去掉Str的最后面的一個字,轉第二步。
    (2)如果找到對應的哈希節點,則計算Str(除去首字,因為首字不保存)的哈希值,得到在詞哈希表中的位置,有如下三種情況:
    ①若對應的碰撞數(iNum)等于0,說明Str不是一個詞。
    ②若對應的碰撞數(iNum)等于1,則比較去掉首字的Str與詞碰撞表中的詞,如果相等,則Str成詞,否則不成詞。
    ③若對應的碰撞數(iNum)大于1,則在詞碰撞表中進行二分查找,如果找到則成詞,否則不成詞。
    上述三種情況若都不成詞,則去掉Str的最后面的一個字,轉第二步;若成詞,則在String中分出一個詞Str,將語句String設置為除去Str的剩余字串,轉第一步。
2.3 實驗結果及分析
    可以很方便地將分詞器集成到Lucene中,該分詞器不妨命名為MyAnalyzer。對3個分詞器ChineseAnalyzer、CJKAnalyzer、MyAnalyzer進行實驗,采用復合索引結構,只對文檔內容創建域,且只對文檔內容進行索引但不存儲,在分詞時間、索引文件大小兩方面做對比,分別對兩個文檔集進行實驗,文檔集1含有3個文件,共2.38 MB,文檔集2含有126個文件,共164 MB。表1為實驗結果數據。

 

 

    通過實驗數據可知,采用CJKAnalyzer二分法切分形成的索引文件要遠大于采用ChineseAnalyzer 單字切分所形成的索引文件,但兩者在索引時間上相差并不大,由于索引文件中記錄關鍵字及其詞頻和所在文檔等信息,所以當測試文檔集增大時,采用本文設計的MyAnalyzer分詞器所產生的索引文件大小與采用ChineseAnalyzer所產生的索引文件相差逐步減少,但遠小于采用CJKAnalyzer分詞器產生的索引文件大小。最為關鍵的是,采用MyAnalyzer生成的索引能大大提高全文檢索的查準率和查全率。
3 應用
    Lucene具有方便使用、易于擴展等優點,越來越多的開發者將其嵌入到不同的應用中實現全文檢索功能。各種應用有著不同的檢索需求,本文通過擴展Lucene的中文分詞器,使開發者可以針對系統的特點定制自己的分詞詞典,根據具體的需求進行分詞,并創建索引,從而提高全文檢索的效率。
參考文獻
[1] 胡長春,劉功申.面向搜索引擎Lucene的中文分析器[J]. 計算機工程與應用,2009,45(12)157-159.
[2] 索紅光,孫鑫.基于Lucene的中文全文檢索系統的研究與設計[J].計算機工程與設計,2008,29(19):5083-5085.
[3] 吳青,夏紅霞.基于Lucene全文檢索引擎的應用與改進[J].武漢理工大學學報,2008,30(7):145-148.
[4] 孫茂松,左正平,黃昌寧.漢語自動分詞詞典機制的實驗研究[J].中文信息學報,1999,14(1):1-6.
[5] 李慶虎,陳玉健,孫家廣.一種中文分詞詞典新機制-雙字哈希機制[J].中文信息學報,2002,17(4):13-18.
[6] 張科.多次Hash快速分詞算法[J].計算機工程與設計,2007,28(7):1716-1718.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美日韩成人在线视频| 国产乱子伦一区二区三区国色天香| 欧美激情按摩| 欧美精品亚洲精品| 美国成人直播| 欧美日韩dvd在线观看| 欧美美女bbbb| 亚洲在线视频观看| 欧美视频中文字幕| 亚洲国产精品悠悠久久琪琪| 国产性猛交xxxx免费看久久| 国产亚洲欧美色| 亚洲一区二区三区四区在线观看| 欧美片第1页综合| 在线观看欧美| 国产精品亚洲综合一区在线观看| 国外成人在线视频| 亚洲国产美国国产综合一区二区| 免费亚洲电影| 国产精品永久| 久久久久久夜| 欧美成年人在线观看| 亚洲欧美视频在线观看| 国产精品稀缺呦系列在线| 1769国内精品视频在线播放| 亚洲一区二区在线免费观看| 一区二区三区福利| 欧美成人精精品一区二区频| 欧美日韩高清免费| 亚洲一二三四久久| 国产欧美视频一区二区| 欧美激情一区二区三区成人| 国产亚洲永久域名| 国产女人水真多18毛片18精品视频| 欧美连裤袜在线视频| 国产精品免费看片| 国产一区在线观看视频| 精品动漫3d一区二区三区免费| 欧美精品粉嫩高潮一区二区| 在线观看日韩av先锋影音电影院| 一本到高清视频免费精品| 国产在线拍揄自揄视频不卡99| 欧美无砖砖区免费| 国产一区二区三区四区| 亚洲精品日韩综合观看成人91| 国产精品久久二区二区| 亚洲第一中文字幕| 欧美精品aa| 久久久精彩视频| 亚洲一区欧美激情| 亚洲人成7777| 最新亚洲电影| 欧美午夜在线一二页| 国产日本亚洲高清| 欧美国产日韩一区二区三区| 国产日韩在线看| 在线欧美日韩国产| 国产精品护士白丝一区av| 国产视频久久久久久久| 欧美激情自拍| 999在线观看精品免费不卡网站| 久久国产精品久久久久久| 久久久噜噜噜| 一区二区三区四区五区在线| 久久综合精品一区| 午夜精彩视频在线观看不卡| 亚洲一二三区在线| 久久久久久免费| 国产乱码精品一区二区三区忘忧草| 欧美在线啊v一区| 久久综合激情| 老牛影视一区二区三区| 狠狠色丁香久久婷婷综合_中| 亚洲图片在区色| 亚洲人体偷拍| 在线看片日韩| 国产精品一区二区你懂得| 久久精品国产精品亚洲精品| 亚洲砖区区免费| 国产欧美短视频| 在线精品视频一区二区| 一区二区三区日韩欧美精品| 国产麻豆日韩| 国产精品久久精品日日| 欧美一区二区三区久久精品| 亚洲精品一区二区三区四区高清| 久久久亚洲国产天美传媒修理工| 欧美日韩不卡一区| 国产日产欧美精品| 久久综合亚洲社区| 国产视频一区三区| 国产无遮挡一区二区三区毛片日本| 午夜精品婷婷| 欧美一区二区三区视频| 久久久国产视频91| 亚洲欧美日韩一区二区三区在线| 亚洲一卡二卡三卡四卡五卡| 欧美性感一类影片在线播放| 久久成人亚洲| 欧美日韩福利在线观看| 久久五月激情| 国产精品乱码久久久久久| 久久综合狠狠| 久久国产精品一区二区三区四区| 亚洲欧洲综合另类| 9i看片成人免费高清| 欧美日韩午夜在线| 国内精品美女av在线播放| 欧美日韩国产区一| 欧美一级视频一区二区| 亚洲经典视频在线观看| 亚洲欧美日本视频在线观看| 老司机精品视频一区二区三区| 在线日韩av永久免费观看| 国产欧美日韩另类一区| 亚洲国产高清aⅴ视频| 国产欧美韩国高清| 久久精品99国产精品日本| 久久亚洲精品一区二区| 亚洲综合色自拍一区| 亚洲人成网在线播放| 欧美视频一区二区三区…| 老司机精品视频网站| 永久免费精品影视网站| 国产日韩精品久久久| 欧美激情亚洲激情| 欧美日产国产成人免费图片| 亚洲天堂av高清| 午夜激情久久久| 韩国亚洲精品| 99v久久综合狠狠综合久久| 国产精品porn| 国产精品久久国产精麻豆99网站| av成人免费在线| 在线视频观看日韩| 国产精品视频yy9099| 亚洲精品一区在线观看香蕉| 久久伊人免费视频| 亚洲欧美日韩精品久久久| 欧美日韩综合一区| 久久久久88色偷偷免费| 久久青青草原一区二区| 久久亚洲色图| 国产亚洲女人久久久久毛片| 欧美一级淫片aaaaaaa视频| 精品999在线观看| 在线视频一区二区| 国产一区二区三区直播精品电影| 一区二区日本视频| 久久国产乱子精品免费女| 国产日韩一区二区三区| 欧美精品粉嫩高潮一区二区| 亚洲国产精品一区| 欧美激情第1页| 老鸭窝毛片一区二区三区| 亚洲福利视频三区| 亚洲精品国产精品国自产在线| 国产一区二区三区免费观看| 亚洲一区二区三区色| 一区二区三区毛片| 亚洲国产精品久久久久秋霞蜜臀| 亚洲午夜视频| 尤物九九久久国产精品的分类| 久久久一本精品99久久精品66| 亚洲电影第1页| av成人免费在线观看| 久久久99久久精品女同性| 影音先锋久久精品| 国产精品九色蝌蚪自拍| 久久人人97超碰国产公开结果| 西西裸体人体做爰大胆久久久| 久久亚洲综合色一区二区三区| 久久影视精品| 精品成人在线视频| 亚洲香蕉视频| 欧美日韩不卡一区| 欧美另类99xxxxx| 亚洲欧美久久久久一区二区三区| 尤物yw午夜国产精品视频明星| 亚洲高清视频中文字幕| 国产精品久久二区二区| 国产伦精品一区二区三区高清| 亚洲国产日韩欧美在线99| 亚洲国产91色在线| 国产精品女人网站| 久久精品国产亚洲5555| 欧美一区2区三区4区公司二百| 亚洲欧美一区二区视频| 欧美日韩在线高清| 欧美日韩18| 欧美不卡三区| 欧美日韩一区二区国产| 欧美三级欧美一级| 一本色道综合亚洲| 国产精品自在线| 欧美日韩99| 欧美在线看片a免费观看| 亚洲欧美精品suv| 国一区二区在线观看| 玖玖国产精品视频| 欧美日本久久| 午夜国产欧美理论在线播放| 欧美日本在线看| 欧美理论片在线观看| 欧美午夜电影在线| 欧美日本精品一区二区三区| 一区二区免费在线播放| 99热这里只有成人精品国产| 91久久国产自产拍夜夜嗨| 国产亚洲va综合人人澡精品| 国产精品日韩在线观看| 欧美国产一区二区在线观看| 欧美成人四级电影| 欧美a级片网站| 国产一区欧美日韩| 欧美精品在线网站| 久久久精品视频成人| 久久久久www| 欧美日韩1080p| 亚洲自拍偷拍视频| 国产伦精品一区二区三区免费迷| 玖玖国产精品视频| 亚洲系列中文字幕| 一区二区三区四区国产精品| 99国产精品国产精品久久| 亚洲精品日韩在线| 久久精品在线观看| 亚洲欧美日韩直播| 欧美制服第一页| 欧美精品91| 性欧美1819性猛交| 99www免费人成精品| 久久久久国产一区二区三区| 亚洲国产成人午夜在线一区| 香蕉国产精品偷在线观看不卡| 国产色产综合产在线视频| 99re亚洲国产精品| 香蕉成人久久| 久久综合亚洲社区| 久久精品视频在线| 欧美国产国产综合| 欧美一区二区精品久久911| 日韩亚洲在线观看| 午夜精品久久久久久久久久久| 亚洲一区二区不卡免费| 欧美连裤袜在线视频| 国产精品美女久久久久久2018| 亚洲日韩第九十九页| 欧美理论片在线观看| 免费在线亚洲| 在线视频国产日韩| 欧美99久久| 久久狠狠一本精品综合网| 另类av导航| 亚洲国产午夜| 免费观看成人| 久久福利一区| 亚洲综合激情| 国产精品成人观看视频免费| 亚洲国产精品久久久久久女王| 欧美色综合网| 一本色道久久综合亚洲精品婷婷| 午夜精品视频网站| 欧美精品午夜| 欧美高潮视频| 夜夜爽www精品| 久久精品99久久香蕉国产色戒| 亚洲人成绝费网站色www| 亚洲天堂av综合网| 欧美日韩国产三级| 亚洲全黄一级网站| 一区二区三区在线观看国产| 国产日韩在线一区| 亚洲成在人线av| 伊人久久亚洲热| 欧美日韩亚洲国产精品| 欧美福利专区| 国产深夜精品福利| 国产欧美激情| 亚洲主播在线| 在线播放国产一区中文字幕剧情欧美| 韩国一区二区在线观看| 夜夜嗨av一区二区三区| 欧美v国产在线一区二区三区| 亚洲亚洲精品在线观看| 狠狠色丁香婷综合久久| 日韩视频免费看| 亚洲另类在线视频| 欧美精品福利| 亚洲人成毛片在线播放| 久久精品国产第一区二区三区最新章节| 美女福利精品视频| 亚洲天堂成人在线视频| 亚洲国产精品第一区二区三区| 国产精品高清网站| 亚洲国产综合在线| 午夜日本精品| 欧美暴力喷水在线| 性视频1819p久久| 麻豆9191精品国产| 欧美一区1区三区3区公司| 狠狠色狠色综合曰曰| 日韩一级成人av| 国产欧美日本一区视频| 一本久久a久久免费精品不卡| 免费人成网站在线观看欧美高清| 久久综合九色综合久99| 国产精品日韩精品欧美在线| 一区二区高清在线| 99v久久综合狠狠综合久久| 欧美日韩亚洲在线| 欧美视频一区在线| 亚洲国产一区二区视频| 欧美日韩中文字幕精品| 国产精品美女主播在线观看纯欲| 国产美女精品人人做人人爽| 美女精品一区| 国产精品久久波多野结衣| 国产日韩欧美一区二区三区四区| 激情五月***国产精品| 欧美日本免费一区二区三区| 亚洲精品系列| 午夜精品久久久久久久蜜桃app| 国产区精品在线观看| 国产一区二区三区不卡在线观看| 久久久久国产一区二区| 免费在线欧美黄色| 欧美日韩日本视频|