Lucene学習——IKAnalyzer中国語分詞(一)
一、環境
1、プラットフォーム:MyEclipse 8.5/JDK 1.5
2、オープンソースフレーム:Lucene 3.6.1/IKAnalyzer 2012
3、目的:IKAnalyzerの分詞効果をテストする
二、開発デバッグ
1、ダウンロードフレーム
1)IKAnalyzer:http://code.google.com/p/ik-analyzer/downloads/list
2)Lucene:http://www.apache.org/dist/lucene/java/3.6.1/
2、依存ライブラリを追加する
1)Luceneを追加する:lucene-core-3.61.jar
2)IKAnalyzerを追加する:IKAnalyzer 202.jar
3、IKAnalyzerを配置する
1)プロファイルIKAnalyzer.cfg.xmlとStopWord辞書ライブラリstopword.dicファイルを追加し、この2つのファイルをsrcディレクトリの下に置いてください。つまり、classpathパスの下です。
4、テストプログラムを作成し、テストコードは以下の通りです。
1)srcディレクトリの下で、自分の辞書ファイルext.dicを新規作成し、次のように入力します。
3)IKAnalyzer設定ファイルIKAnalyzer.cfg.xmlは、以下の通りです。
1、IKAANalyzer分詞の効果は基本的にはまだ大丈夫です。私達自身のプロジェクトによって、自分の辞書とStopWordを拡張できます。
2、以下は結果の中国語の分詞とLuceneについて前のページの検索エンジンの原形を修正して、中国語のウェブサイトに適合させます。
1、プラットフォーム:MyEclipse 8.5/JDK 1.5
2、オープンソースフレーム:Lucene 3.6.1/IKAnalyzer 2012
3、目的:IKAnalyzerの分詞効果をテストする
二、開発デバッグ
1、ダウンロードフレーム
1)IKAnalyzer:http://code.google.com/p/ik-analyzer/downloads/list
2)Lucene:http://www.apache.org/dist/lucene/java/3.6.1/
2、依存ライブラリを追加する
1)Luceneを追加する:lucene-core-3.61.jar
2)IKAnalyzerを追加する:IKAnalyzer 202.jar
3、IKAnalyzerを配置する
1)プロファイルIKAnalyzer.cfg.xmlとStopWord辞書ライブラリstopword.dicファイルを追加し、この2つのファイルをsrcディレクトリの下に置いてください。つまり、classpathパスの下です。
4、テストプログラムを作成し、テストコードは以下の通りです。
package org.cyxl.lucene.test;
import java.io.StringReader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.wltea.analyzer.lucene.IKAnalyzer;
public class IKAnalyzerTest {
public static void main(String[] args) {
String keyWord = "IKAnalyzer , ";
// IKAnalyzer
IKAnalyzer analyzer = new IKAnalyzer();
//
analyzer.setUseSmart(true);
//
try {
printAnalysisResult(analyzer, keyWord);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
*
* @param analyzer
*
* @param keyWord
*
* @throws Exception
*/
private static void printAnalysisResult(Analyzer analyzer, String keyWord)
throws Exception {
System.out.println("["+keyWord+"] ");
TokenStream tokenStream = analyzer.tokenStream("content",
new StringReader(keyWord));
tokenStream.addAttribute(CharTermAttribute.class);
while (tokenStream.incrementToken()) {
CharTermAttribute charTermAttribute = tokenStream
.getAttribute(CharTermAttribute.class);
System.out.println(charTermAttribute.toString());
}
}
}
5、結果は以下の通りです[IKAnalyzer , ]
:stopword.dic
ikanalyzer
6、自分の辞書とStopWordを拡張する1)srcディレクトリの下で、自分の辞書ファイルext.dicを新規作成し、次のように入力します。
2)srcディレクトリの下で、自分のStopWordファイルchinese(u)を新規作成します。stopword.dic(第一行の空きです。疑惑中です。)
3)IKAnalyzer設定ファイル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">ext.dic;</entry>
<!-- -->
<entry key="ext_stopwords">stopword.dic;chinese_stopword.dic</entry>
</properties>
4)配置後のテスト結果は以下の通りです。[IKAnalyzer , ]
:ext.dic
:stopword.dic
:chinese_stopword.dic
ikanalyzer
三、まとめ1、IKAANalyzer分詞の効果は基本的にはまだ大丈夫です。私達自身のプロジェクトによって、自分の辞書とStopWordを拡張できます。
2、以下は結果の中国語の分詞とLuceneについて前のページの検索エンジンの原形を修正して、中国語のウェブサイトに適合させます。