java分词实现代码 java分词工具类
java编个中文分词的程序
import java.io.Reader;
创新互联是一家集网站建设,枣阳企业网站建设,枣阳品牌网站建设,网站定制,枣阳网站建设报价,网络营销,网络优化,枣阳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
import java.io.StringReader;
import org.apache.lucene.analysis.*;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import org.apache.lucene.analysis点吸烟 .ChineseAnalyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.mira.lucene.analysis.MIK_CAnalyzer;
public class JeAnalyzer {
public static void testStandard(String testString) {
try {
Analyzer analyzer = new StandardAnalyzer();
Reader r = new StringReader(testString);
StopFilter sf = (StopFilter) analyzer.tokenStream("", r);
System.err.println("=====standard analyzer====");
Token t;
while ((t = sf.next()) != null) {
System.out.println(t.termText());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void testCJK(String testString) {
try {
Analyzer analyzer = new CJKAnalyzer();
Reader r = new StringReader(testString);
StopFilter sf = (StopFilter) analyzer.tokenStream("", r);
System.err.println("=====cjk analyzer====");
Token t;
while ((t = sf.next()) != null) {
System.out.println(t.termText());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void testChiniese(String testString) {
try {
Analyzer analyzer = new ChineseAnalyzer();
Reader r = new StringReader(testString);
TokenFilter tf = (TokenFilter) analyzer.tokenStream("", r);
System.err.println("=====chinese analyzer====");
Token t;
while ((t = tf.next()) != null) {
System.out.println(t.termText());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static String transJe(String testString, String c1, String c2) {
String result = "";
try {
Analyzer analyzer = new MIK_CAnalyzer();
Reader r = new StringReader(testString);
TokenStream ts = (TokenStream) analyzer.tokenStream("", r);
Token t;
while ((t = ts.next()) != null) {
result += t.termText() + ",";
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static void main(String[] args) {
try {
String testString = "中文分词的方法其实不局限于中文应用,也被应用到英文处理,如手写识别,单词之间的空格就很清楚,中文分词方法可以帮助判别英文单词的边界";
System.out.println("测试的语句 "+testString);
String sResult[] = transJe(testString, "gb2312", "utf-8").split(",");
for (int i = 0; i sResult.length; i++) {
System.out.println(sResult[i]);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
jar包
lucene-analyzers-2.4.1.jar
lucene-core-2.4.1.jar
IKAnalyzer2.0.2OBF.jar
java语言中文分词程序怎么编写分词程序正
现可以提供两种思路:
1.String或是StringBuffer(建议用) 中的indexOf("中华")方法,查找给定的的字符串中是否有给定词表中的词。
2.借鉴编译原理中的状态装换的思想。
先编写一个状态机,用于测试给定字符串中的词是否满足词表中的内容。
写在最后:1)建议使用第一种方法,因为在java 内部实现的查找操作其实 和你想得思路是相同的,不过他的效率会高些。
2)如果个人的编程能力比较强或是不考虑效率只是想实现专有的分词算法。可以使用第二种方法。
3)以上的两种方法都可以使用多线程来提高程序的效率。
java语言编写一个String的分词程序,功能就是计算输入英文句子的单词个数
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Danci {
public static void main(String[] args){
String str = new String();
System.out.print("请输入一个英文句子:");
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//获取键盘输入
str = br.readLine();
}catch(IOException e){
e.printStackTrace();
}
String []s = str.split(" ");//转换成数组
System.out.println("你输入的句子共有单词 "+s.length+" 个");//s.length获取数组长度
}
}
//此程序只能获取一句话的单词个数.
标题名称:java分词实现代码 java分词工具类
URL标题:http://cdiso.cn/article/ddjhiph.html