JE分词器的小测试

来源:互联网 发布:seo目前发展怎么样 编辑:程序博客网 时间:2024/04/29 03:11

 

完全用java写的一套分词器,所以对java的支持也很好。用CLucene的话还是中科院的分词比较好。它是写成dll的文件,可以直接使用。

 

下面对je分词器进行简单的使用和熟悉。

 

package yixiaoyang;

 

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.StringReader;

 

import org.apache.lucene.analysis.*;

import org.apache.lucene.analysis.standard.StandardAnalyzer;

import jeasy.analysis.*;

 

/*

 * @param         args

 * @author         Yi Xiaoyang

 * @date        2010.2.25

 * @note        test the analyzer o f search engine

 *                         using the package: lucene-core-2.4.1.jar

 */

 

public class analyzerTest {

public static String getContent(){

String content = "";

String msg = null;

BufferedReader buffer_reader;

// 读取文件到串供分析

File file = new File("e:/test/test.txt");

try{

// 获取文件内容

buffer_reader = new BufferedReader(new FileReader(file));

msg = buffer_reader.readLine();

while(msg != null){

content = content + msg;

msg = buffer_reader.readLine();

}

}catch(Exception e){

System.out.print("error at getContent");

e.printStackTrace();

}

 

return content;

}

 

public static void main(String[] args) {

String msg = null;

String content = getContent();

try

{

// 对文本进行分词

StringReader reader = new StringReader(content);

// 创建一个分析器

// 下面使用lucene自带的标准分词器分析

// Analyzer analyzer = new StandardAnalyzer();

// 下面是用WhitespaceAnalyzer分析器分析

// Analyzer analyzer = new WhitespaceAnalyzer();

 

// 下面用到je分次器分析结果

Analyzer analyzer = new MMAnalyzer();

 

// 获取到TokenSream对象,分析器在这一步工作贮备返回结果

TokenStream token_stream = analyzer.tokenStream("", reader);

// 开始工作

Token t = null;

System.out.println("下面打印分词结果:");

// 将分词结果写进文件

File save_file = new File("e:/test/tokenFile.txt");

DataOutputStream data_out = new DataOutputStream(new FileOutputStream(save_file));

if(save_file.exists()){

save_file.delete();

}

save_file.createNewFile();

 

int count = 10;

while( (t = token_stream.next()) != null )

{

// 打印分词结果

msg = t.termText();

data_out.writeChars( msg + " | ");

System.out.print(msg + "  |  ");

if( ( count--) < 0 )

{

System.out.print("/n");

count = 10;

}

}

 

System.out.println("分词打印完毕!");

data_out.close();

}

catch (Exception e) {

System.out.println("File read error!");

e.printStackTrace();

}

}

}

 

计算机生成了可选文字: 陪p扩气『】12二〕弓56一一一一【【一掇娜毅毅毅戮箱,蔽骊魏毅邢洲毅舞搔珊蒸然魏魏瑙搏撼口口一国Lucenelndexer.java国Ge护ilecontent.Java国Lucenesear山er.java国。ileList.Java涵。nalvzeost.Jav。厉卿一曰每dasSLOgCI己SSWebguesthookJ己V己M己i!OnllneCOuntSearchEngine搜索引擎实践savef工le.dele七e()二}savefile.crea七e付ewFlle();0123三888中岭白洽已潞潞启淤小卜卜卜卜卜卜.SrC」眨systemLibRe化rencedLib曰iucene一O『,曰极易中文乡卜田Jeasy.。卜码Jeasy.:卜它,META-Iiucene(ore一2.lucene(ore一2.'intCOUn七=10二while((t=token__3tream·召.书屯())旦=nnll(//打印分词结果"g=七.石是荃拍姜是书二《》;dataou七.w二iteChars(爬q+"l");Sys七e几.out.prln七(把q+nl");if((coun七一)<O){sy3tem.out.prlnt("/n"):产麟以』rkrJ勺图proolem,@」avad。:巳。edara。。。日Consol。:户争。ebug。x长昆厢履翻时<termlnated>analvzerTest口avaAPPIica七on]D:城oggramtools如y吧dipse勺re协inVavaw.exe于eb26,201011:24:14胡)下面打印分词结果:五!春}莫吹胡塞曲!愁l杀}陇l头人l同!前l李白J垂杨!拂{绿水I摇.艳l东风l年I花明玉关雪l叶暖金窗烟I美人l结l长恨{相l凄然l攀条l折!春色l远I寄l龙庭前l同l前l二首l孟郊l杨柳l多短枝l短{枝l多别离l赠l远l累攀折l柔l条.安得l垂l青春l定l节l离别l定时}恐l人l别l促l不怨l来迟迟l莫言短l枝条l中l有长l相思l殊颜与l绿杨l并在l别离期l楼上l春风l过风!前{杨柳!歌,枝!疏{缘!别!苦l曲!怨l年!多!花惊燕l地!雪!叶映楚池波l谁,堪!别离!征!戍l交河!同}前l李端l页面1426--------一一----一-一一~--一l乐府l诗集142工l东城l攀草l少壮l莫轻年{轻l年有l人老l柳发遍l川l岗l登高l堪l断肠雨l烟!轻l漠漠.何树近君乡l赠l君l折l杨柳l颜色}岂能l久l上客l莫沾巾!佳人!正l回首!新!柳送君l行!古柳伤}君!情l突兀指指对心柳叶口口口口口口口口口口口口口口口口口口口口口口口口口

 

屏幕剪辑的捕获时间: 2010-2-26 11:24

 

 

因为是古文,分次起来较为困难。

看一下百话文的分次小效果。

 

 

计算机生成了可选文字: 巴problem,@Javad。。阵。edara。。。日二。nso.。贸争oebug林长<terminated>analvzerTest[JavaAPplica七on]D:妙oggramtools枷v吧dipse勺re协inVavaw.exe于eb26,201011:29:01阴)下面打印分词结果:旦夕之间l情知1对千l生命}千!般l流转!尽!须l付与l无尽l忍l爱·深情!即是)一桩!悲剧l必得l死!来句读!你l真是}一个!令人l欢喜l的人I你的l杯l不应该l为我l空l简祯l四月l裂帛111她l记忆l中的l冬夭l雪l大地l唯一l盛装l天寒地冻l之中l散落l雪原l上的l黑l帐篷l避难,之地l煮茶}残l火l昏暗l空间l内闪烁{微光l浓香}气味l随之l蜿蜒l弥漫l开来l带来l食物l所l构成l朴素l诱惑l原始l抚慰!外面l迷.境l一般!寒冷!黑l帐篷!毡!片!因为!雪·积i三尺!而无1法拉开!卡桑!爷爷l躺在l卡垫上!轻声l唤!她l她在l幼年时代l四季!都能l见到!雪!即便!六月!遇到!夭气l突变l烈风l还会l裹挟着l薄薄}雪花l四散{而去l到了l寒冬l一场l大雪l过后l望眼l便是l一片l银白l夭地l昏天暗地l风雪}像是l远古时代l冰河期l封冻l草场l冻昆昌

 

屏幕剪辑的捕获时间: 2010-2-26 11:29

 

看起来还算不错。不过还有个别stopword还没有过滤掉。

je分词有添加新词的功能,在实际开发中可以用到相关的特性。

原创粉丝点击