欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

自定義分詞器Analyzer

系統 1856 0

參考:http://grunt1223.iteye.com/blog/969197

?

Analyzer,或者說文本分析的過程, 實質上是將輸入文本轉化為文本特征向量的過程 。這里所說的文本特征,可以是詞或者是短語。它主要包括以下四個步驟:?

1、分詞,將文本解析為單詞或短語

2、歸一化,將文本轉化為小寫

3、停用詞處理,去除一些常用的、無意義的詞

4、提取詞干,解決單復數、時態語態等問題

?

?

?

Lucene Analyzer包含兩個核心組件,Tokenizer以及TokenFilter。兩者的區別在于,前者在字符級別處理流,而后者則在詞語級別處理流。Tokenizer是Analyzer的第一步,其構造函數接收一個Reader作為參數,而TokenFilter則是一個類似攔截器的東東,其參數可以使TokenStream、Tokenizer,甚至是另一個TokenFilter。整個Lucene Analyzer的過程如下圖所示:

?

自定義分詞器Analyzer

?

?

上圖中的一些名詞的解釋如下表所示:?

說明
Token 表示文中出現的一個詞,它包含了詞在文本中的位置信息
Analyzer 將文本轉化為TokenStream的工具
TokenStream 文本符號的流
Tokenizer 在字符級別處理輸入符號流
TokenFilter 在字符級別處理輸入符號流,其輸入可以是TokenStream、Tokenizer或者TokenFilter

?

lucene分詞自定義

? ? ? ?TokenStream繼承關系圖如下:

自定義分詞器Analyzer

?

StopAnalyzer,StandardAnalyze,WhitespaceAnalyzer,SimpleAnalyzer,KeyWordAnalyzer都繼承自父類Analyzer。

?

因此只要實現父類的虛方法tokenStream 就可以實現分析。

分詞的切分算法由繼承自父類Tokenizer的方法

public final boolean incrementToken() throws IOException 來實現。

因此自定義繼承類Tokenizer并實現其incrementToken算法就可以實現自定義的分詞。

?

?

      //自定義禁用分詞器
public class UserDefinedAnalyzer extends Analyzer{

	//定義禁用詞集合
	private Set stops;
	
	//無參構造器使用默認的禁用詞分詞器
	public UserDefinedAnalyzer (){
		stops = StopAnalyzer.ENGLISH_STOP_WORDS_SET;
	}
	
	  /**
     * 傳一個禁用詞數組
     * @param sws
     */
	public UserDefinedAnalyzer (String[] sws){
		//使用stopFilter創建禁用詞集合
        stops=StopFilter.makeStopSet(Version.LUCENE_35,sws,true);
        //將默認的禁用詞添加進集合
        stops.addAll(StopAnalyzer.ENGLISH_STOP_WORDS_SET);
	}

	 /**
     * 自定義分詞器
     */
	@Override
	public TokenStream tokenStream(String str, Reader reader) {
		//讀取原始Reader數據的一定是Tokenizer類,這里使用的是LetterTokenizer
		return new StopFilter(Version.LUCENE_35,
			   new LowerCaseFilter(Version.LUCENE_35, 
			   new LetterTokenizer(Version.LUCENE_35, reader)),stops);
	}
	
	public static void displayToken(String str,Analyzer a) {
		try {
			TokenStream stream = a.tokenStream("content",new StringReader(str));
			//創建一個屬性,這個屬性會添加流中,隨著這個TokenStream增加
			CharTermAttribute cta = stream.addAttribute(CharTermAttribute.class);
			while(stream.incrementToken()) {
				System.out.print("["+cta+"]");
			}
			System.out.println();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}
    

?

?

測試類

?

      public class Test {
	public static void main(String[] args) {
		 Analyzer a1=new UserDefinedAnalyzer(new String[]{"my","name"});
	        //Analyzer a1=new UserDefinedAnalyzer();
	        String str="my name is paul";
	        UserDefinedAnalyzer.displayToken(str, a1);
	}
}

    

??

?

自定義分詞器Analyzer


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: A片太大太长太深好爽A片视频 | 国产欧美精品一区二区三区 | 成人欧美在线观看免费视频 | 久久这里只有精品国产99 | 国产欧美精品一区二区三区 | 黄色片免费看网站 | 2020国产精品视频免费 | 天天影视插插 | 国产成人不卡 | 午夜精品一区二区三区在线观看 | 天堂资源8中文最新版 | 色淫影院 | 激情久久av一区av二区av三区 | 日韩看片| 成人性生活视频在线播放 | 欧美日韩免费播放一区二区 | 国产1区2区 | 锵锵锵锵锵锵锵锵锵好湿好大 | 超碰97av 在线人人操 | 亚洲欧美日韩综合在线 | 午夜小网站 | 日韩深夜福利 | 老头巨大校花体内驰骋小说文 | 欧美日本免费一区二区三区 | 天天做天天爱天天爽综合区 | 亚洲精品一区二区深夜福利 | 国产在线二区 | 五月综合久久 | 午夜性刺激在线观看视频 | 中文字幕日韩欧美一区二区三区 | 啪一啪| 午夜久久 | 拍拍拍无挡免费视频网站 | 日本黄视频在线观看 | 久久国产精品久久 | 一区二区三区免费网站 | 亚洲成人福利网站 | 精品国产网站 | 羞羞的视频在线免费观看 | 成人免费视频网站在线观看 | 狠狠干奇米 |