IKAnalyzer2012+lucene-3.4.0做分词,过滤停用词及大小写..出现了一个问题
为什么过滤后前一个单词的末尾会连在下一个单词的末尾,比如:fathersonerhome.r,还有我发现这些”.“,并不是文本里本身带有的。。可是过滤后就会莫名出来。。。...
为什么过滤后前一个单词的末尾会连在下一个单词的末尾,比如:father soner home.r,还有我发现这些”.“,并不是文本里本身带有的。。可是过滤后就会莫名出来。。。这要怎么解决呢
我加的jar包:
我的java文件:
package com.cndatacom.lucene.test; import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.junit.Test; import org.wltea.analyzer.lucene.IKAnalyzer;
/*** IKAnalyzer 分词器测试* @author Luxh15 */public class MyFileReader { @Testpublic void testIKAnalyzer() throws Exception { File file = new File("F:\\j2ee\\MyElipse\\Workplace\\Lucene\\src\\Mytest.txt");
StringBuilder sb = new StringBuilder(); String s =""; BufferedReader br = new BufferedReader(new FileReader(file));
while( (s = br.readLine()) != null) { sb.append(s + "\n"); }
br.close(); String keyWord = sb.toString(); IKAnalyzer analyzer = new IKAnalyzer(); //使用智能分词 analyzer.setUseSmart(true); //打印分词结果 printAnalysisResult(analyzer,keyWord); } /** * 打印出给定分词器的分词结果 * @param analyzer 分词器 * @param keyWord 关键词 * @throws Exception38 */ private void printAnalysisResult(Analyzer analyzer, String keyWord) throws Exception { System.out.println("当前使用的分词器:" + analyzer.getClass().getSimpleName()); TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(keyWord)); tokenStream.addAttribute(CharTermAttribute.class); while (tokenStream.incrementToken()) { CharTermAttribute charTermAttribute = tokenStream.getAttribute(CharTermAttribute.class); System.out.println(new String(charTermAttribute.buffer())); } } }
如果这种方法不行,求一种可以实现:
读入txt或者xls文件(全英语)
过滤掉文件里的英语停用词及数字和符号,并将剩下的关键词打印出来
基于myeclipse来做,JAVA语言
╮(╯▽╰)╭求高手指点 展开
我加的jar包:
我的java文件:
package com.cndatacom.lucene.test; import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.junit.Test; import org.wltea.analyzer.lucene.IKAnalyzer;
/*** IKAnalyzer 分词器测试* @author Luxh15 */public class MyFileReader { @Testpublic void testIKAnalyzer() throws Exception { File file = new File("F:\\j2ee\\MyElipse\\Workplace\\Lucene\\src\\Mytest.txt");
StringBuilder sb = new StringBuilder(); String s =""; BufferedReader br = new BufferedReader(new FileReader(file));
while( (s = br.readLine()) != null) { sb.append(s + "\n"); }
br.close(); String keyWord = sb.toString(); IKAnalyzer analyzer = new IKAnalyzer(); //使用智能分词 analyzer.setUseSmart(true); //打印分词结果 printAnalysisResult(analyzer,keyWord); } /** * 打印出给定分词器的分词结果 * @param analyzer 分词器 * @param keyWord 关键词 * @throws Exception38 */ private void printAnalysisResult(Analyzer analyzer, String keyWord) throws Exception { System.out.println("当前使用的分词器:" + analyzer.getClass().getSimpleName()); TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(keyWord)); tokenStream.addAttribute(CharTermAttribute.class); while (tokenStream.incrementToken()) { CharTermAttribute charTermAttribute = tokenStream.getAttribute(CharTermAttribute.class); System.out.println(new String(charTermAttribute.buffer())); } } }
如果这种方法不行,求一种可以实现:
读入txt或者xls文件(全英语)
过滤掉文件里的英语停用词及数字和符号,并将剩下的关键词打印出来
基于myeclipse来做,JAVA语言
╮(╯▽╰)╭求高手指点 展开
1个回答
展开全部
呵呵,兄弟你在做搜索引擎的东西?这个IK分词器测试分词效果的代码需要稍作处理才能回避着个问题
更多追问追答
追问
那。。要做怎么样的处理呢?
追答
/**
* 打印出给定分词器的分词结果
* @param analyzer 分词器
* @param keyWord 关键词
* @throws Exception38 */
private void printAnalysisResult(Analyzer analyzer, String keyWord) throws Exception {
System.out.println("当前使用的分词器:" + analyzer.getClass().getSimpleName());
TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(keyWord));
tokenStream.addAttribute(CharTermAttribute.class);
while (tokenStream.incrementToken()) {
CharTermAttribute charTermAttribute = tokenStream.getAttribute(CharTermAttribute.class);
System.out.println(new String((charTermAttribute.buffer()).toString));
}
}
网易云信
2023-12-06 广告
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询