安徽新华电脑专修学院_安徽电脑培训_安徽电脑培训学校_合肥电脑培训

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > 采訪IK Analyzer 中文分詞器開源項目作者林良益(十三)

采訪IK Analyzer 中文分詞器開源項目作者林良益(十三)
2010-01-14 23:28:07  作者:  來源:
眾所周知,全文搜索幾乎已經成為每個網站的必須提供的基本功能之一,用Lucene構造一個“索引-查詢”的應用是常見的java解決方案,目前由linliangyi2007創立的IK Analyzer是最好的Lucene 中文分詞器之一。

首先介紹一下IKAnalyzer:IKAnalyzer是一個開源的,基于java語言開發的輕量級的中文分詞工具包。從2006年12月推出1.0版開始,IKAnalyzer 已經推出了3個大版本。最初,它是以開源項目Luence為應用主體的,結合詞典分詞和文法分析算法的中文分詞組件。最近剛剛發布了 3.1.1Stable穩定版本,新版本的IKAnalyzer 則發展為面向Java的公用分詞組件,獨立于Lucene項目,同時提供了對Lucene的默認優化實現。

linliangyi2007 (林良益) 是一位資深的Java開發者和優秀開源開發者, JavaEye非常榮幸的采訪了他。

linliangyi2007 (林良益)  博客:http://linliangyi2007.javaeye.com/

歡迎大家推薦更多開源項目給我們,支持中國的開源項目發展,發站內短信給JavaEye管理員或者發信到webmaster@javaeye.com,謝謝。

采訪IK Analyzer 中文分詞器開源項目作者linliangyi2007 Top

JavaEye:1. hi,linliangyi2007 你好,非常榮幸能夠采訪你。你能介紹一下IK Analyzer 中文分詞器開源項目是如何創立的嗎?

linliangyi2007:好的,這個要從和lucene的結緣開始說起了,大概05年左右,開始是為了完成一個電信的信息管理系統,里面需要用到全文檢索的。后來發現對中文搜索,lucene沒有很好的分詞支持。當時我發現最棒的就是車東的CJK了,應該說,他的blog文章對我的IK Analyzer 誕生起了很大的影響。 后來,我們公司開始做一個基于web gis的本地信息搜索網站的互聯網應用,這就促使我萌生了自己寫一個中文分詞器的想法。最開始是基于對詞典的匹配,后來對詞典中未出現的詞語就有了進一步處理的想法,IK Analyzer 的設計理念也是一步一步形成的。這期間也結合了很多互聯網用戶的搜索體驗的反饋。

有趣的是,我的兩位好朋友,也就是paoding分詞器的作者和JE-MMAnalyzer分詞器的作者,都在基本相同的時期開始了各自的分詞器研究。  三個人也就熱火朝天的討論開了,有交流,也有比較。因為有了這樣一個圈子和氛圍,也使的IK分詞器一直從06年底開始,不斷的更新到現在。 大家的處理速度,算法的優化,還有詞典的整理一直在持續。當然,由于大家都有自己的工作(吃飯問題很實際啊),期間都有一段時間,暫停了項目的發展,IK2.0是在07年初發布的,3.0則到了09年,最近剛剛發布了 3.1.1Stable穩定版本


JavaEye:2. IK Analyzer 中文分詞器項目的特點和應用的主要方面是哪些?新版本做了哪些修正?

linliangyi2007:IK Analyzer 是更多的考慮了互聯網用戶在產品及名址信息搜索這塊的應用,IK特別適用于搜索商家,產品,名址,如商品交易,美食,娛樂,電子地圖等,因為它是基于這樣的應用誕生的。IK在一開始的設計的時候,它有一個隱形的目標,是對數詞,量詞,專有名詞的增強處理,這是由于它的基于web gis搜索的需求定位決定的。 如果持續使用IK的用戶,應該會發現,IK的早期版本對數量詞,專有名詞的切分,是整體輸出的,舉個例子:“2009年12月”,在IK1.x版本的時候,是作為一個詞元輸出的,對未知的路名,人名,商店,公司名稱都是如此,因此很多用戶說,IK早先版本的分詞效果“看起來”特別好,注意,我這里說的是“看起來", 但搜索起來就未必了。

由于lucene搜索的倒排搜索結構,決定了lucene搜索的速度優勢在于“全詞匹配”而非like匹配,這就造成了過于粗粒度的輸出分詞結果好看,但用戶經常搜索不到東西,在飽受公司客戶“無情的”打擊之后,IK后續的版本對此做了很大的改進。后期版本的切分越來越細碎,越來越不“漂亮”了,這點在3.0尤其明顯,但保證了用戶在分詞搜索中的召回率。問題是,這點的改進會帶來另一方面的負面影響,詞打得太散,搜索的準確度下降了,為此IK3.0從問題的另一角度來提供了相對的解決方案。

JavaEye:3. 能否詳細介紹一下這個解決方案?

linliangyi2007:好的,使用lucene搜索的開發者應該注意到,分詞器在其中扮演著兩個角色:一個是在lucene建立索引庫時候,對文檔進行切分。這時候,細粒度的切分,保證信息能盡可能的被“查找到”;另一個使用分詞器的過程,實在用戶輸入搜索關鍵字的過程。分詞器要多關鍵字進行分詞,而后同索引匹配。 IK3.0就在這個地方為用戶提供了一個相對優化的搜索方式,一個是IKQueryParser,這個也是我在blog中吐血推薦的, 呵呵。對于大多普通的搜索應用,它能為用戶提供不錯的搜索關鍵字組合。

舉個例子,用戶搜索“永和服裝飾品”,對于分詞器而言,它會切分出“永和”“和服”“服裝”“裝飾”“飾品”等。但分詞器沒有判斷的能力(實際上,目前所有的分詞器,即便有部分排除歧義的功能,也不完善),如果強制分詞器進行排歧義處理,則可能會得出完全錯誤的結果。IK則是嘗試給出所有可能的方案,在IKQueryparser 中,它不是簡單的返回所有分詞結果的組合,而是建立起一個分詞樹,將有可能的組合放在一起,它的輸出會類似于這樣:(“永和” && “服裝” &&  “飾品”) || (“和服”&& “裝飾”), 通過這個搜索邏輯去索引中進行匹配,在現實中,我們完全可以假設只有合理的詞元會搭配在一起, 那么,不合理的搭配,它的就可能不會出現,或者即使出現,但匹配度較低。 因此,IK3.0又給出了一個IKSimilarity的相似度評估器,來提高多詞匹配的優先度,這樣的搜索,就能形成高匹配度的文檔,出現在前面,低匹配度的在后面,不合理的匹配就不出現的結果。這個也是自己的項目實戰經歷了。

IKSimilarity是實現了lucene Similarity的接口的,在進行搜索前,使用IndexSearch的API進行設置就好,這個在IK3.0的DEMO中有詳細的例子說明,至此,IK3.0在盡可能保證文檔召回率的前提下,實現了相關文檔搜索匹配度的優先。當然,這不能絕對意義上杜絕不正確信息被搜索出來(PS:就目前各大主要搜索引擎的實現也是這樣的)。在分詞器的設計中,應該說不盡是IK,其他分詞器的作者也是絞盡腦汁的想了很多, 但目前還沒有特別完美的方案。對IK而言,我也收到了來至各方面用戶的反饋,有用在互聯網搜索領域的,有用于企業內部搜索的,還有做語言分析的,但就我個人的感覺而言,目前很難在一個分詞器中,實現多種目標。因此,我很贊同paoding的作者說的一句話,沒有最好的分詞器,只有最適合于某個領域的分詞器。

JavaEye:4. 你能分析和比較一下類似的其他中文分詞器項目嗎?

linliangyi2007:簡單說一下吧:

JE-MManalyzer:它的算法具有歧義分析,比較適合做垂直搜索和信息挖掘。他的中文名稱是“極易”,開發者的理念是-簡單即是美。

中科院的分詞器:中科院的分詞器很牛,其切分結果明顯基于語義分析。

paoding:paoding的結構設計的非常靈活,適合于對其進行開源改造。

mmseg4j:單從mmseg4j 的項目介紹上看,它是一個很純粹的基于詞典分詞的實現,既有細粒度的切分,也有最大長度的切分。應該說,是一個學習詞典分詞的很好的典范。

JavaEye:5. IK Analyzer 未來的roadmap是什么? 你對 IK Analyzer的規劃和目標是什么?

linliangyi2007:就IK后期的roadmap而言,主要致力于兩點,一個是詞典的整理優化,這塊工作量是巨大的,且是枯燥的,呵呵。3.1.版本后詞條是27萬,但其中有不少的“不合格”詞語,需要被剔除。第二是,有可能引入詞頻和字頻的統計算法,來優化對未知詞語的處理,這個還處于理論階段。

后期的想法,可能會考慮犧牲一定的性能,來換取分詞效果,從企業應用和中小型互聯網應用而言,10萬漢字/秒以上的處理速度,應該都能夠滿足需求了。  

JavaEye:6. 你對整個lucene搜索領域怎么看?能推薦幾個你覺得比較關注的搜索領域熱點嗎?

linliangyi2007:lucene是一個相當優秀的全文檢索核心框架,基于它的應用是很多的。就lucene自己而言,已經發展出了nutch(面向互聯網),solr(面向企業集群)等多種應用,這些也都是全文索引領域最經常用到的。而實際上,lucene的索引特性還可以用在更多方面,比如,你可以用它了做web gis的地圖引擎,這是一個已經成功實現的商用項目。

因此,對lucene的關注,我覺得應該開放自己的思維。因為索引在計算機應用中,領域是非常廣泛的,大家應該不拘一格。這點要歸功于google對數據搜索應用概念的推廣,深入人心。

JavaEye:7. 未來搜索引擎的發展方向會有哪些呢?

linliangyi2007:大型互聯網應用,比如google,他們的應該不僅是分詞器了,應該是一個自然語言處理系統了,包括了自我學習能力。

先說搜索的內容形式,會多元化,實際上已經有國外的公司在研發了,基于音頻的,圖像的搜索,如通過歌詞搜索音頻內容,從搜索的用戶體驗上,會結合用戶的使用習慣給出搜索結果。也就是說,在未來,有可能你和我在google上搜索相同的詞語,出來的結果會有不同。

還有,就是搜索形式可能會更多,有針對特定類型信息的垂直搜索,信息挖掘,也可能是針對SNS方式的人際網絡搜索。 其實搜索的本質就是按照用戶的視角將紛繁的數據進行合理的組織,再呈現在用面前; 從最早的MIS系統的sql搜索,到現在,一直如此。至于搜索領域google這樣的大公司,基于新的搜索技術的公司未來有可能有機會超過他們,我想,最終的網絡世界一定是大一統的。大家以后應該是買數據賺錢,而不是服務了。服務的方式是有限的,服務的內容(數據)是無限的,是需要人們創造和提供的。

JavaEye:8. 目前IK Analyzer 是你一個人開發?還是有其他合作開發者?現在你平均每天花在IK Analyzer 上的時間大概是多久呢?

linliangyi2007:IK目前就我一人,我也一直在尋找合作者。(JavaEye: 希望什么樣的合作者?)最關鍵的是興趣和恒心吧。我基本上每天都會花至少30分鐘來解答網友的問題,然后如果需要,就進行修訂。平時有了新想法,就會進行試驗,如果可行,就會發布新版本。有時候一天會有20多封郵件咨詢問題,當然有時候一周才一封,呵呵。


JavaEye:9. 目前大概有多少用戶在使用IK Analyzer?

linliangyi2007:初步估計從06年底到現在,應該有1萬多用戶。(JavaEye:很厲害  )  主要都是國內的,畢竟是中文的。

JavaEye:10. 為什么給這個項目起IK Analyzer 這個名字呢?

linliangyi2007:呵呵,這個問題問的好,我很喜歡Diablo,尤其是Diablo II,我玩暗黑7年了。暗黑中有個角色,野蠻人哦,它的終極套裝就是“不朽之王Immortal King”,IK誕生的那一天,剛好是我打出一整套套裝的那一天,于是就用這個套裝的名字做紀念了,呵呵,感謝暴雪,感謝JavaEye,感謝CCAV。。。    聽說java也是這么命名的,當時的設計人員正在喝java咖啡來著……

JavaEye:11. 你的開發環境是什么? 使用什么操作系統,和IDE?

linliangyi2007:我用Eclipse,操作系統多是windows,偶爾用linux, 客戶多使用unix。

JavaEye:12. 通過開發IK Analyzer ,你對中國的軟件開發人員做開源項目有什么感受和想法嗎?

linliangyi2007:現在大家日常用的開發平臺,95%以上都是國外的組織貢獻的,中國在這塊,是需要趕上的。中國的開源比前幾年有了明顯的發展,但還需要大家一起來參與。希望大家能逐步型成貢獻代碼的習慣,其實開源不一定每個人都有做一個項目,參與其中就好, 哪怕就一小段的代碼。linux能成功,它的很多核心代碼都被閱讀過,并通過網友們進行了補充和修訂。中國的開源氛圍薄弱,我覺得更多的是中國傳統思想中,對知識保守的因素,師傅對徒弟都要留一手,何況是同業者呢。但我要說,思想的交互是互利的,知識在開放的氛圍中增長的速度要遠超過封閉的開發, 我經常跟我的同事進行頭腦風暴,大家都很有收獲的,碰撞后的思想,往往能產生意料之外的好結果。


JavaEye:13. 作為一個JavaEye老會員,你對JavaEye網站有什么建議和意見嗎?

linliangyi2007:希望javaeye更專業更有深度。對新人創造更包容,更寬松的咨詢空間,對老人們則是思想碰撞,溫故知新的場所。

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 永康微网站建设、永康手机网站建设、永康营销型网站建设、永康外贸网站建设、永康网站托管、永康网络公司—英汇网络 - 永康市英汇网络技术有限公司 | 联系我们-99公司开户电话-99厅 | 威海木箱,威海木托盘,威海免熏蒸包装箱-威海耀晟木制品有限公司 威海华东数控股份有限公司 | 锌铝合金压铸-深圳压铸加工-铝挤压拉伸-压铸模具厂-广东誉格精密技术有限公司 | 企多网-B2B网站,B2B商务平台免费b2b,推荐注册送积分,免费注册企业商铺, | 暖气片_铜铝复合暖气片_钢制散热器厂家-德克菲勒暖气片 | 陕西锐锋建筑安装有限公司,锐锋建筑,总承包,专业分包,市政综合,劳务,水电钢构,铁路公路,房建,房屋建筑施工 | 企业宣传片制作公司-广告宣传片拍摄-专题片,tvc广告制作-拍摄微电影影视公司-艺虎文化 | 专业儿童感统训练机构-武汉优佳加智能教育[官网] | 金蝶软件_金蝶湖南公司_长沙金蝶软件_精斗云软件_财务软件_进销存软件_云ERP软件_金蝶软件销售电话 | 思行科技-珠海小程序开发-珠海网站建设-珠海APP开发-江门小程序开发-江门网站建设-江门APP开发 | 九江市东鸿气体有限公司 | 医用手摇病床,医用电动病床,康养手摇病床,康养电动病床-河北丁丁医疗器械有限公司 | 矿用精确定位系统,井下4G无线通讯系统,工作面集控系统,皮带保护系统-山东新云鹏电气有限公司 | 江南专汽公司首页-消防车厂家,水罐/泡沫消防车价格(热销品牌) | 深圳办公室装修_高端写字楼设计费用_企业装修报价公司-深圳长红装饰 | 洒水车|冷藏车|LED广告车|油罐车|道路救援车|垃圾车|程力专用汽车股份有限公司销售九分公司 | 联系我们果博东方在线开户客服电话:19038688886 - 黑龙江旺广机械设备有限公司 | 智慧网格,智慧城市,智慧社区,精准扶贫,农村电商,网格化,网格化管理,智慧养老,北京瑞光极远数码科技有限公司 | 深圳办公室装修_高端写字楼设计费用_企业装修报价公司-深圳长红装饰 | 气动球阀-气动蝶阀-电动蝶阀「厂家」-恒信流体控制有限公司 | 上海惠涵实业有限公司-德国进口风机,德国Elektror依莱克罗风机 上海画册设计-上海宣传册设计-产品手册设计-企业画册设计公司 | 自建房外墙砖|地砖|墙砖,农村|别墅瓷砖-佛山燊陶丰 | 深圳市新纶超净科技有限公司,防静电/洁净室行业系统解决方案提供商 | 行域人才网-垂直行业领域招聘首选的专业人才网,分行业招聘就上行域人才网 | 南京货架|仓库货架|货架公司|仓储货架工厂批发定做-南京苏正科技实业公司 | 陕西锐锋建筑安装有限公司,锐锋建筑,总承包,专业分包,市政综合,劳务,水电钢构,铁路公路,房建,房屋建筑施工 | 螺旋钢管厂家,临沂瑞源工贸有限公司 | 泡沫混凝土垫层填充厂家,发泡混凝土垫层填充,轻质混凝土垫层填充厂家,深圳市鸿奥建材发展有限公司 | 气动量仪厂家-郑州华峰仪器有限公司| 男装加盟,男装加盟店,男装代理,男装品牌加盟,品牌男装加盟-虎豹男装品牌加盟 | 临沂网站建设,临沂网站制作,临沂网络公司,临沂小程序开发,临沂网站设计,沂水网站建设,沂南网站建设,蒙阴网站建设,平邑网站建设,费县网站建设,兰陵网站建设,郯城网站建设,临沭网站建设,莒南网站建设,兰山网络公司 | 样品前处理仪器_光谱仪器_色谱/分析仪器_测量/计量仪器_青岛聚创世纪环保科技有限公司 | 联想南京总代理-联想服务器|联想电脑笔记本代理商|联想工作站|dell服务器|HP服务器|南京IBM代理商|IBM V5000存储总包销-南京宇宽科技有限公司 | 酒店宾馆一次性用品厂家-酒店洗漱用品,洗浴用品品牌方案-江苏欧佩 | 自动化贴标机_套标机_圆瓶贴标机厂家_大为机械 | 消防工程公司,消防工程承接公司-亿杰(北京)工程安装有限公司 | 郑州阳光房|封阳台|钢结构【河南郑州如意阳光房门窗有限公司】 | 离子交换树脂_阴离子交换树脂_阳离子交换树脂-中国树脂网 | 重庆污水处理设备_废气处理设备_纯净水设备-山艺环保 | 木箱_木箱包装_出口木箱设计_熏蒸木箱价格_包装木箱厂 |