java结巴分词地址
https://github.com/huaban/jieba-analysis
txt文件的读取和写入
/*读取文件*/
FileInputStream fis = new FileInputStream(path,"UTF-8");//path为读取路径,设置编码UTF-8
InputStreamReader isr = new InputStramReader(fis);
BufferedReader br = new BufferedReader(isr);
String line = "";
while((line = br.readLine()) ! = null){
System.out.println("获取的行"+line);
}
/*写入文件*/
File file = new File(path);
if(!file.exists()){
file.createNewFile();
BufferedWriter bw = new BufferedWriter(new FileWriter(path));
bw.write("hello world!");
bw.close();
}else{
BufferedWriter bw = new BufferedWriter(new FileWriter(path));
bw.write("hello world!");
bw.close();
}
结巴导入和使用
在github下载结巴添加进自己的工程之中
结巴使用示例
public void testDemo() {
JiebaSegmenter segmenter = new JiebaSegmenter();
String[] sentences =
new String[] {"这是一个伸手不见五指的黑夜。我叫孙悟空,我爱北京,我爱Python和C++。", "我不喜欢日本和服。", "雷猴回归人间。",
"工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作", "结果婚的和尚未结过婚的"};
for (String sentence : sentences) {
System.out.println(segmenter.process(sentence, SegMode.INDEX).toString());
}
}
在使用结巴处理之前,应该先对获取的句子进行处理(例如去掉标点符号)
文本处理
我的想法是将一行话中的标点换为空格,从而让空格来实现断句或断词
line = line.trim();//去掉两边的空格
line = line.replaceAll("\\p{P}", " ");//将所有标点符号换成空格
tag = line.indexOf(" ");//第一个空格出现的位置
sentence = line.substring(0,tag);//截取第一句话
line = line.substring(tag+1);//将已截取的句子去除
结语
本文只写出了关键代码,需要完整程序jar包的可以查看作者上传的资源。
如果需要完整源代码请移步一个小小的java程序