這期內容當中小編將會給大家帶來有關使用 Lucene怎么實現一個中文分詞器,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
什么是中文分詞器
學過英文的都知道,英文是以單詞為單位的,單詞與單詞之間以空格或者逗號句號隔開。
而中文的語義比較特殊,很難像英文那樣,一個漢字一個漢字來劃分。
所以需要一個能自動識別中文語義的分詞器。
StandardAnalyzer:
Lucene自帶的中文分詞器
單字分詞:就是按照中文一個字一個字地進行分詞。如:“我愛中國”,
效果:“我”、“愛”、“中”、“國”。
CJKAnalyzer
二分法分詞:按兩個字進行切分。如:“我是中國人”,效果:“我是”、“是中”、“中國”“國人”。
上邊兩個分詞器無法滿足需求。
使用中文分詞器IKAnalyzer
IKAnalyzer繼承Lucene的Analyzer抽象類,使用IKAnalyzer和Lucene自帶的分析器方法一樣,將Analyzer測試代碼改為IKAnalyzer測試中文分詞效果。
如果使用中文分詞器ik-analyzer,就在索引和搜索程序中使用一致的分詞器ik-analyzer。
使用luke測試IK中文分詞
(1)打開Luke,不要指定Lucene目錄。否則看不到效果
(2)在分詞器欄,手動輸入IkAnalyzer的全路徑
org.wltea.analyzer.lucene.IKAnalyzer
改造代碼,使用IkAnalyzer做分詞器
添加jar包
修改分詞器代碼
// 創建中文分詞器 Analyzer analyzer = new IKAnalyzer(); |
擴展中文詞庫
拓展詞庫的作用:在分詞的過程中,保留定義的這些詞
1在src或其他source目錄下建立自己的拓展詞庫,mydict.dic文件,例如:
2在src或其他source目錄下建立自己的停用詞庫,ext_stopword.dic文件
停用詞的作用:在分詞的過程中,分詞器會忽略這些詞。
3在src或其他source目錄下建立IKAnalyzer.cfg.xml,內容如下(注意路徑對應):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 擴展配置</comment> <!-- 用戶可以在這里配置自己的擴展字典 --> <entry key="ext_dict">mydict.dic</entry> <!-- 用戶可以在這里配置自己的擴展停用詞字典 --> <entry key="ext_stopwords">ext_stopword.dic</entry> </properties>
|
上述就是小編為大家分享的使用 Lucene怎么實現一個中文分詞器了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。