内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

lucene4.7分詞器怎么實現(xiàn)

本篇內容主要講解“l(fā)ucene4.7分詞器怎么實現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“l(fā)ucene4.7分詞器怎么實現(xiàn)”吧!

成都創(chuàng)新互聯(lián)公司是專業(yè)的崇州網(wǎng)站建設公司,崇州接單;提供成都網(wǎng)站設計、做網(wǎng)站,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行崇州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

首先擺在我們面前的第一個必須要解決的問題,就是關于中文分詞的問題,因為Lucene畢竟是國外的大牛們開發(fā)的,顯然會比較側重英文文章,不過還好,在Lucene的下載包里同步了SmartCN的分詞器針對中文發(fā)行的,每一次Lucene有新的版本發(fā)行,這個包同時更新。 

筆者比較推薦的中文分詞器是IK分詞器,在進入正式的講解之前,我們首先對Lucene里面內置的幾個分析器做個了解. 

分析器類型基本介紹
WhitespaceAnalyzer以空格作為切詞標準,不對語匯單元進行其他規(guī)范化處理
SimpleAnalyzer以非字母符來分割文本信息,并將語匯單元統(tǒng)一為小寫形式,并去掉數(shù)字類型的字符
StopAnalyzer該分析器會去除一些常有a,the,an等等,也可以自定義禁用詞
StandardAnalyzerLucene內置的標準分析器,會將語匯單元轉成小寫形式,并去除停用詞及標點符號
CJKAnalyzer能對中,日,韓語言進行分析的分詞器,對中文支持效果一般。
SmartChineseAnalyzer對中文支持稍好,但擴展性差

評價一個分詞器的性能優(yōu)劣,關鍵是看它的切詞效率以及靈活性,及擴展性,通常情況下一個良好的中文分詞器,應該具備擴展詞庫,禁用詞庫和同義詞庫,當然最關鍵的是還得要與自己的業(yè)務符合,因為有些時候我們用不到一些自定義詞庫,所以選擇分詞器的時候就可以不考慮這一點。IK官網(wǎng)發(fā)布的最新版IK分詞器對于Lucene的支持是不錯的,但是對于solr的支持就不夠好了,需要自己改源碼支持solr4.x的版本。筆者使用的另一個IK包是經(jīng)過一些人修改過的可以支持solr4.3的版本,并對擴展詞庫,禁用詞庫,同義詞庫完全支持,而且在solr里面配置很簡單,只需要在schmal.xml進行簡單配置,即可使用IK分詞器的強大的定制化功能。不過官網(wǎng)上IK作者發(fā)布的IK包在lucene里面確都不支持同義詞庫擴展的功能,如果你想使用,得需要自己修改下源碼了,不過即使自己修改擴展同義詞也是非常容易的。 


下面筆者給出使用官網(wǎng)最后一版發(fā)布的IK在Lucene中做的測試,筆者使用的已經(jīng)擴展了同義詞庫部分。 

下面先看第一個純分詞的測試
 

package com.ikforlucene;

import java.io.StringReader;

import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;


public class Test {
    
     
    public static void main(String[] args)throws Exception {
                      //下面這個分詞器,是經(jīng)過修改支持同義詞的分詞器
          IKSynonymsAnalyzer analyzer=new IKSynonymsAnalyzer();
           String text="三劫散仙是一個菜鳥";
           TokenStream ts=analyzer.tokenStream("field", new StringReader(text));
            CharTermAttribute term=ts.addAttribute(CharTermAttribute.class);
            ts.reset();//重置做準備
            while(ts.incrementToken()){
                System.out.println(term.toString());
            }
            ts.end();//
            ts.close();//關閉流
        
         
    }

}

運行結果:

三
劫
散
仙
是
一個
菜鳥

第二步,測試擴展詞庫,使三劫為一個詞,散仙為一個詞,需要在同義詞庫里添加三劫,散仙(注意是按行讀取的),注意保存的格式為UTF-8或無BOM格式即可
lucene4.7分詞器怎么實現(xiàn)

添加擴展詞庫后運行結果如下:

三劫
散仙
是
一個
菜鳥

第三步,測試禁用詞庫,我們把菜鳥二個字給屏蔽掉,每行一個詞,保存格式同上.
lucene4.7分詞器怎么實現(xiàn)

添加禁用詞庫后運行結果如下:

三劫
散仙
是
一個

最后我們再來測試下,同義詞部分,現(xiàn)在筆者把河南人,洛陽人作為"一個"這個詞的同義詞,添加到同義詞庫中(筆者在這里僅僅是做一個測試,真正生產(chǎn)環(huán)境中的同義詞肯定是正式的),注意同義詞,也是按行讀取的,每行的同義詞之間使用逗號分割。

lucene4.7分詞器怎么實現(xiàn)

添加同義詞庫后運行結果如下:

三劫
散仙
是
一個
河南人
洛陽人

至此,使用IK在Lucene4.3中大部分功能都已測試通過,下面給出擴展同義詞部分的源碼,有興趣的道友們,可以參照借鑒下。

package com.ikforlucene;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.Map;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.synonym.SynonymFilterFactory;
import org.apache.solr.core.SolrResourceLoader;
import org.wltea.analyzer.lucene.IKTokenizer;
/**
 * 可以加載同義詞庫的Lucene
 * 專用IK分詞器
 * 
 * 
 * */
public class IKSynonymsAnalyzer extends Analyzer {

     
    @Override
    protected TokenStreamComponents createComponents(String arg0, Reader arg1) {
        
        Tokenizer token=new IKTokenizer(arg1, true);//開啟智能切詞
        
        Map<String, String> paramsMap=new HashMap<String, String>();
        paramsMap.put("luceneMatchVersion", "LUCENE_43");
        paramsMap.put("synonyms", "E:\\同義詞\\synonyms.txt");
        SynonymFilterFactory factory=new SynonymFilterFactory(paramsMap);
         SolrResourceLoader loader=    new SolrResourceLoader("");
        try {
            factory.inform(loader);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
     
        return new TokenStreamComponents(token, factory.create(token));
    }
    
    
    

}

到此,相信大家對“l(fā)ucene4.7分詞器怎么實現(xiàn)”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

分享題目:lucene4.7分詞器怎么實現(xiàn)
轉載來源:http://www.rwnh.cn/article10/ggopgo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、App開發(fā)手機網(wǎng)站建設、定制網(wǎng)站、做網(wǎng)站電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網(wǎng)站建設
顺昌县| 巴林左旗| 迭部县| 大安市| 寿光市| 海宁市| 营山县| 泾源县| 平遥县| 永康市| 洮南市| 铜鼓县| 保康县| 静乐县| 芜湖市| 新巴尔虎左旗| 天门市| 综艺| 苗栗县| 德州市| 黄山市| 涪陵区| 沙坪坝区| 惠来县| 曲阜市| 左贡县| 扎兰屯市| 云林县| 河曲县| 全州县| 沁水县| 永胜县| 金门县| 东安县| 公主岭市| 团风县| 茂名市| 瓦房店市| 霍州市| 大石桥市| 买车|