使用LUCENE快速实现属于自己的英文分词程序——附简单实现
来源:互联网 发布:linux怎么上传文件 编辑:程序博客网 时间:2024/04/24 14:18
简单的英文分词程序现在已经有很多现成的JAR包实现了此功能,最流行的就是LUCENE里的analysis包,analysis包里包含许多类型的分词器、过滤器、分析器,可以让我们自由组合实现我们需要的功能。
使用LUCENE的analysis包,可以快速实现按照字符分割的英文分词,附带过滤停用词功能的分词器(有默认的停用词表,也可以自己指定,指定方式有多种:包括停用词表的文本文档;把停用词加载到容器集合里面等等),词干提取分词器(就是分词器附带stemming功能)等等。
以下是我简单实现附带过滤停用词功能的分词器的代码,使用是LUCENE 2.4.0版本实现的。
public static ArrayList tokenizer() {
ArrayList wordList = new ArrayList();
try {
//stopwords = new File((new File("")).getCanonicalPath()+"/stop_words_eng.txt");
// Analyzer textAnalyzer = new StandardAnalyzer(stopwords);
Analyzer textAnalyzer = new StandardAnalyzer(nonStopwords);
TokenStream stream = textAnalyzer.tokenStream("content", new StringReader(EnglishTextStandardAnalyzer.text));
while (true) {
Token item = stream.next(new Token());
if (item == null) {
break;
}
// System.out.print("{" + item.term() + "} ");
Iterator I = wordList.iterator();
boolean flag = false;
while(I.hasNext()) {
Word word = (Word)I.next();
if(word.getWordText().equalsIgnoreCase(item.term())) {
flag = true;
word.addWordFrequency();
break;
}
}
if(!flag) {
Word temp = new Word(item.term());
wordList.add(temp);
}
}
} catch (IOException ex) {
Logger.getLogger(EnglishTextStandardAnalyzer.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("segmentation successes!!");
return wordList;
}
程序返回英文文本所包含的单词对象,其属性包括单词内容以及其词频
- 使用LUCENE快速实现属于自己的英文分词程序——附简单实现
- 实现lucene的简单词典分词
- Lucene同义词分词器简单实现
- 一个简单的英文分词程序
- 实现属于自己的substr()
- 【微信小程序】实现属于自己的美美哒弹窗
- opencv对codebook的实现—自己加的简单英文解释
- 使用lucene实现简单的全文检索
- 自己实现的一个简单文本分词,最大粒度,后向分词
- lucene.net和(pangu)盘古分词 搜索引擎的简单实现
- 自己写Lucene分词器原理篇——ChineseAnalyzer简单讲解
- 自己写Lucene分词器示例篇——写一个简单点额分析器
- 自己写Lucene分词器原理篇——CJKAnalyzer简单讲解
- 实现属于自己的Custom Formatter
- Lucene分词实现(二次开发流程)
- Lucene分词实现:Analyzer、TokenStream
- Lucene实现自定义分词器
- Lucene分词实现:Analyzer、TokenStream
- 博客开张
- std::string的一些特性(一)
- 使用代码控制TVirtualStringTree的选项
- 笔记
- Service Unavailable错误六大原因
- 使用LUCENE快速实现属于自己的英文分词程序——附简单实现
- 优秀程序员的45个习惯
- CHM中文乱码 解决方法
- sql 查询出来一个表在插入到另一个表里
- 学习笔记2010-2-26
- H55.vs.P55 配四核哪个更合适
- SQL Server Out Put Excel File with Header (Single Table) using SQL satment
- Linux 守护进程的编程方法
- 计算机噪声概述