资源简介
Java语言编写的优秀的中文前向最大分词程序。程序简单容易理解,对于理解中文分词思想有很大的帮助。

代码片段和文件信息
import java.io.*;
import java.util.*;
public class fenci {
private String separator = “/“;
private static fenci segmenter = null;
private static TreeMap cnWords;
private TreeSet cForeign cNumbers;
private fenci(){
cForeign = new TreeSet();
cNumbers = new TreeSet();
loadset(cNumbers “data/snumbers_u8.txt“);
loadset(cForeign “data/sforeign_u8.txt“);
System.out.print(“Loading Lexicon“);
cnWords = new TreeMap();
String newword = null;
try {
InputStream worddata = null;
worddata = new FileInputStream(new File(“data/lexicon.txt“));
BufferedReader in = new BufferedReader(new InputStreamReader(worddata));
int i = 0;
while ((newword = in.readLine()) != null){
if ((++i)%10000 == 0){
System.out.print(‘.‘);
}
if ((newword.indexOf(“#“) == -1) && (newword.length() < 5)){
cnWords.put(newword.intern() true);
if (newword.length() == 3){
if (cnWords.containsKey(newword.substring(0 2).intern()) == false){
cnWords.put(newword.substring(0 2).intern() false);
}
}
if (newword.length() == 4){
if (cnWords.containsKey(newword.substring(0 2).intern()) == false){
cnWords.put(newword.substring(0 3).intern() false);
}
}
}
}
in.close();
System.out.println();
System.out.println(“Loading Lexicon OK“);
System.out.println(“load words number is“ + i);
} catch (IOException e){
System.out.println(“Loading Lexicon failuer“);
e.printStackTrace();
}
}
public synchronized static void reset(){
fenci.segmenter = null;
}
public synchronized static fenci getSegmenter(){
if (fenci.segmenter == null){
fenci.segmenter = new fenci();
}
return fenci.segmenter;
}
private void loadset(TreeSet targetset String sourcefile){
String dataline;
try{
InputStream fr = new FileInputStream(new File(sourcefile));
BufferedReader in = new BufferedReader(new InputStreamReader(fr “UTF-8“));
while ((dataline = in.readLine()) != null){
if ((dataline.indexOf(“#“) > -1) || (dataline.length() == 0)){
continue;
}
targetset.add(dataline.intern());
}
in.close();
} catch (Exception e){
System.err.println(“Exception loading data file“ + sourcefile + “ “ + e);
e.printStackTrace();
}
}
public boolean isNumber(String testword){
boolean result = true;
for (int i=0; i if (!cNumbers.contains(testword.substring(i i+1).intern())){
result = false;
break;
}
}
return result;
}
public boolean isAllForeign(String testword){
boolean result = true;
for (int i=0; i if (!cForeign.contains(testword.substring(i i+1).intern())){
result = false;
break;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5854 2011-04-28 22:01 fenci.java
相关资源
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
评论
共有 条评论