分词代码java 分词 java

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众所周知,英文是以词为单位的 , 词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思 。例如,英文句子I am a student,用中文则为:“我是一个学生” 。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词 。把中文的汉字序列切分成有意义的词,就是中文分词 , 有些人也称为切词 。我是一个学生,分词的结果是:我 是 一个 学生 。
中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法 。
现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法 。
1、基于字符串匹配的分词方法
这种方法又叫做机械分词方法 , 它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串 , 则匹配成功(识别出一个词) 。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最?。ㄗ疃蹋┢ヅ洌话凑帐欠裼氪市员曜⒐滔嘟岷希挚梢苑治ゴ糠执史椒ê头执视氡曜⑾嘟岷系囊惶寤椒?。常用的几种机械分词方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的词数最?。?。
还可以将上述各种方法相互组合,例如,可以将正向最大匹法和逆向最大匹法结合起来构成双向匹配法 。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用 。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少 。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245 。但这种精度还远远不能满足实际的需要 。实际使用的分词系统,都是把机械分词作为一种初分手段 , 还需通过利用各种其它的语言信息来进一步提高切分的准确率 。
一种方法是改进扫描方式 , 称为特征扫描或标志切分 , 优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率 。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率 。
对于机械分词方法,可以建立一个一般的模型,在这方面有专业的学术论文 , 这里不做详细论述 。

推荐阅读