JE分词器的小测试

 

完全用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。厉
卿一曰每
dasSLOg
CI己SSWeb
guesthook
J己V己
M己i!
OnllneCOunt
SearchEngine
搜索引擎实践
savef工le.dele七e()二
}
savefile.crea七e付ewFlle();
0123
三888
中岭白洽已潞潞启淤
小卜卜卜卜卜卜.
SrC
」眨systemLib
Re化rencedLib
曰iucene一O『,
曰极易中文乡
卜田Jeasy.。
卜码Jeasy.:
卜它,META-I
iucene(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分词有添加新词的功能,在实际开发中可以用到相关的特性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值