- 浏览: 1272724 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (608)
- 数据结构 (2)
- AJAX (3)
- 设计模式 (3)
- java (117)
- js (14)
- css (9)
- jsp (10)
- 杂文 (49)
- htmlparser (6)
- 数据库 (29)
- 算法 (14)
- 数据挖掘 (11)
- 电脑杂症 (12)
- 网络爬虫 (7)
- 应用服务器 (9)
- PHP (2)
- C# (14)
- 测试 (3)
- WEB高性能开发 (3)
- swt (1)
- 搜索引擎 (16)
- HttpClient (4)
- Lite (1)
- EXT (1)
- python (1)
- lucene (4)
- sphinx (9)
- Xapian (0)
- linux (44)
- 问题归类 (1)
- Android (6)
- ubuntu (7)
- SEO (18)
- 数学 (0)
- 农业资讯 (12)
- 游戏 (3)
- nginx (1)
- TeamViewer (1)
- swing (1)
- Web前 端 (1)
- 主页 (0)
- 阿萨德发首发身份 (0)
- 软件设计师 (0)
- hibernate (5)
- spring3.0 (5)
- elastic (1)
- SSH (3)
- ff (0)
- oracle 10g (9)
- 神经网络 (1)
- struts2.0 (2)
- maven (1)
- nexus (1)
- 辅助工具 (3)
- Shiro (1)
- 联通项目 (0)
- 2014年专业选择 (0)
- freemarker (1)
- struts1.2 (8)
- adfasdfasfasf (0)
- TortoiseSVN (1)
- jstl (1)
- jquery (1)
- eclipse plugin (0)
- 游戏外挂 (1)
- 推广 (0)
- 按键精灵 (1)
- ibatis3.0 (1)
最新评论
-
水野哲也:
不不不, 这个您真错了!其实是你引用的那个jsp和本身的jsp ...
解析关于jsp页面指令冲突问题contentType="text/html;charset=UTF-8" -
caobo_cb:
import xx.cn.weibo.Util;
[ java版]新浪微博之ruquest_token篇 -
caobo_cb:
你好 Util包没有
[ java版]新浪微博之ruquest_token篇 -
小桔子:
你好!我遇到个问题 max_allowed_packet值总是 ...
mysql查询占用内存,优化的技巧 -
donghustone:
谢谢大神!
用JSmooth制作java jar文件的可执行exe文件教程(图文)
- package org.apache.lucene.analysis.tjuchinese;
- import java.io.IOException;
- import java.io.Reader;
- import java.io.StringReader;
- import java.util.Set;
- import org.apache.lucene.analysis.Analyzer;
- import org.apache.lucene.analysis.StopFilter;
- import org.apache.lucene.analysis.TokenStream;
- import com.xjt.nlp.word.ICTCLAS;
- public final class TjuChineseAnalyzer extends Analyzer {
- private Set stopWords;
- // 可以在此扩展English stop words和Chinese stop words
- public static final String[] ENGLISH_STOP_WORDS = { "a" , "an" , "and" ,
- "are" , "as" , "at" , "be" , "but" , "by" , "for" , "if" , "in" , "into" ,
- "is" , "it" , "no" , "not" , "of" , "on" , "or" , "s" , "such" , "t" ,
- "that" , "the" , "their" , "then" , "there" , "these" , "they" , "this" ,
- "to" , "was" , "will" , "with" , "我" , "我们" };
- /** Builds an analyzer which removes words in ENGLISH_STOP_WORDS. */
- public TjuChineseAnalyzer() {
- stopWords = StopFilter.makeStopSet(ENGLISH_STOP_WORDS);
- }
- /** Builds an analyzer which removes words in the provided array. */
- public TjuChineseAnalyzer(String[] stopWords) {
- this .stopWords = StopFilter.makeStopSet(stopWords);
- }
- /** Filters LowerCaseTokenizer with StopFilter. */
- public TokenStream tokenStream(String fieldName, Reader reader) {
- try {
- ICTCLAS splitWord = new ICTCLAS();
- String inputString = FileIO.readerToString(reader);
- String resultString = splitWord.paragraphProcess(inputString);
- TokenStream result = new TjuChineseTokenizer( new StringReader(
- resultString));
- result = new StopFilter(result, stopWords);
- return result;
- /*
- * return new StopFilter(new LowerCaseTokenizer(new StringReader(
- * resultString)), stopWords);
- */
- } catch (IOException e) {
- System.out.println( "转换出错" );
- return null ;
- }
- }
- }
TjuChineseTokenizer.java;
- package org.apache.lucene.analysis.tjuchinese;
- import java.io.Reader;
- import org.apache.lucene.analysis.LowerCaseTokenizer;
- public class TjuChineseTokenizer extends LowerCaseTokenizer{
- public TjuChineseTokenizer(Reader Input)
- {
- super (Input);
- }
- }
FileIO.java;
- package org.apache.lucene.analysis.tjuchinese;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.Reader;
- public class FileIO {
- public static String readerToString(Reader reader) throws IOException {
- BufferedReader br = new BufferedReader(reader);
- String ttt = null ;
- // 使用 StringBuffer 类,可以提高字符串操作的效率
- StringBuffer tttt = new StringBuffer( "" );
- while ((ttt = br.readLine()) != null ) {
- tttt.append(ttt);
- }
- return tttt.toString();
- }
- }
eclipse里面的部署为:
搞定!!
下面测试一下,测试代码如下:
- package org.apache.lucene.analysis.tjuchinese;
- import java.io.IOException;
- import java.io.StringReader;
- import org.apache.lucene.analysis.Analyzer;
- import org.apache.lucene.analysis.Token;
- import org.apache.lucene.analysis.TokenStream;
- public class testTjuChjnese {
- public static void main(String[] args) {
- String string = "hello!我爱中国人民" ;
- Analyzer analyzer = new TjuChineseAnalyzer();
- TokenStream ts = analyzer
- .tokenStream( "dummy" , new StringReader(string));
- Token token;
- System.out.println( "Tokens:" );
- try {
- int n = 0 ;
- while ((token = ts.next()) != null ) {
- System.out.println((n++) + "->" + token.toString());
- }
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
- }
运行结果:
Tokens:
0->(hello,0,5)
1->(nx,6,8)
2->(w,12,13)
3->(r,17,18)
4->(爱,20,21)
5->(v,22,23)
6->(中国,25,27)
7->(ns,28,30)
8->(人民,32,34)
9->(n,35,36)
【难点】
- public CharArraySet( int startSize, boolean ignoreCase) {
- this .ignoreCase = ignoreCase;
- int size = INIT_SIZE;
- while (startSize + (startSize>> 2 ) > size)
- size <<= 1 ;
- entries = new char [size][];
- }
startSize + (startSize>>2,不解?
附录:
因为本分词器要用到ICTCLAS java接口。所以要先下载下载地址http://download.csdn.net/source/778456 ;
将文件全部复制到工程文件中(也可以通过导入)后,得到的eclipse视图如下:
导入视图如下(仅供参考):
如果出现这样的错误:
java.lang.UnsatisfiedLinkError: no ICTCLAS in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.xjt.nlp.word.ICTCLAS.<clinit>(ICTCLAS.java:37)
Exception in thread "main"
那么应该就是你缺少了某些文件,尤其是ICTCLAS.dll,另外像“classes”、“data”、“lib”源文件夹也是必需的。
转载:http://blog.csdn.net/caoxu1987728/archive/2008/11/15/3305848.aspx
发表评论
-
tomcat was unable to start within 45 seconds
2013-11-11 15:59 837原因一: -
Apache Commons Lang
2013-10-15 12:10 3165ArrayUtils public class Tes ... -
htmlunit form
2013-06-25 11:13 924Form提交 对于WEB应用,有着大量的表单,所以Html ... -
QQ微博登录步骤
2013-05-28 12:14 0QQ微博登录步骤: 1、验证帐号时,会访问一个地址。如下: ... -
jsoup
2013-05-22 23:37 1142import org.jsoup.Jsoup; import ... -
java 加密解密
2013-05-21 23:00 842import java.security.InvalidKey ... -
freemarket 对象应用篇(一)
2013-05-19 18:18 1042freemarket应用. 1.1:创建web工程testF ... -
中文数字转阿拉伯数字
2012-11-30 14:24 1795/** * @author loiy * ... -
标记:伪原创标题思路
2012-01-11 16:34 1287采用填词的办法进行伪 ... -
用JSmooth制作java jar文件的可执行exe文件教程(图文)
2012-01-05 01:09 8181下载完程序之后,运行 jsmoothgen.exe 1.进入“ ... -
多线程 Java.util.ConcurrentModificationException异常
2011-12-29 13:43 1525Iterator<Entry<String,B ... -
java 反序列化 抛出EOFException
2011-12-19 17:21 2253抛出这样的异常,一般情况下,是因为业务逻辑的问题。 如: 在没 ... -
一键安装双击运行——Java安装程序制作
2011-12-09 02:39 1330对于Java桌面应用来说,比较烦琐的就是安装部署问题,如:客户 ... -
只针对中英文混合分词的中文分词器
2011-12-02 17:28 4871该版本说明 1、只针对中英文混合分词 需要一些中文和英文连在 ... -
Java开源运行分析工具
2011-11-15 15:10 1884FProfiler FProfiler是一个非常快的Java ... -
cwss 按照指定的字符进行切词
2011-11-15 09:37 1211cwss 按照指定的字符进行切词 在 Utility.SEPE ... -
cwss bug 修复
2011-11-07 09:50 889修复的BUG有如下: 1、当只有中文、字母和数字,没有任何其他 ... -
java 怎么读取细胞词库scel
2011-10-24 14:28 3115private void sogou(String pa ... -
今天遇到一个奇怪的问题
2011-04-28 11:55 1186想实现一个用户访问页面,得到用户的外网地址 在公司上。程序是没 ... -
在myeclipse6.5下统一全部JSP编码更改
2011-04-07 14:47 1463在平时我们新建一个JSP页面默认编码是"ISO885 ...
相关推荐
`Lucene-Demo`文件可能是项目源代码或配置文件的压缩包,里面可能包含了一个完整的Java项目结构,包括`src/main/java`(源代码)、`src/main/resources`(资源文件)和`pom.xml`(Maven项目对象模型文件)。...
解压缩下载的源码包,然后将源代码复制到你的项目源码目录。如果遇到源码报错,检查项目编码设置,确保其为UTF-8。在Eclipse中,可以通过右键点击项目,选择Properties来更改编码设置。 环境搭建完成后,你可以编写...
1. **分词器(Tokenizers)**: Lucene的核心功能之一是分词,它将输入的文本拆分成一系列可搜索的词语。3.6.2版本中包含各种预定义的分词器,如StandardTokenizer,用于处理常见的语言特性,如词干提取和停用词过滤...
总之,Lucene是一个功能强大、灵活性高的全文检索引擎,它的源代码可以帮助开发者深入理解其工作原理,并在此基础上实现个性化的全文检索解决方案。通过学习和使用Lucene,我们可以构建出更高效、更智能的搜索系统,...
CLucene是Lucene的C++实现,为那些偏好或需要使用C++进行开发的...通过深入研究clucene-core-2.3.3.4这个版本的源代码,开发者不仅可以学习到搜索引擎的基本原理,还能了解到如何在实际应用中优化和定制这些功能。
《深入理解Lucene 3.6:源代码解析》 Lucene是一个开源的全文检索库,由Apache软件基金会开发并维护。在版本3.6中,Lucene提供了一整套强大的文本搜索功能,包括索引、查询、排序、分词等。这个版本的源代码为我们...
本文将深入探讨Lucene 4.8.0版本的源代码,揭示其内部工作原理以及关键组件,帮助读者理解这个强大的搜索引擎是如何工作的。 一、Lucene概述 Lucene的核心概念包括文档(Document)、字段(Field)、索引(Index)...
通过这份“基于LUCENE的搜索引擎的设计与实现源代码”,开发者可以深入了解LUCENE的工作机制,结合源代码学习如何在实际项目中应用这些概念和技术。通过实践,你可以构建出更高效、更智能的搜索引擎,满足不同场景下...
Lucene是Apache软件基金会的一个开放源代码项目,它提供了一个高性能、全文本搜索的API。Lucene支持索引和搜索文本,可以集成到各种Java应用程序中,帮助开发者轻松实现全文检索功能。其核心特性包括文档分析、索引...
同时,Lucene的API也提供了丰富的功能,如分词器、过滤器等,用于优化索引质量和搜索性能。 至于“工具”标签,Compass提供了丰富的工具类和API,包括查询构造器、排序和高亮显示等,帮助开发者轻松实现搜索功能。...
7. **源代码分析**:附带的书源代码可以帮助读者深入理解Lucene的工作原理,同时提供了动手实践的机会,进一步巩固所学知识。 通过阅读这本书,开发者不仅可以掌握Lucene的基本用法,还能深入理解其内部机制,从而...
- LuceneChapter1:介绍Lucene的基本概念,包括文档、字段、分词器和索引的基本构造。读者会学习如何创建、添加、删除和查询文档,以及如何配置不同的分词器来处理文本数据。 2. **索引过程** - Lucenechapter2和...
2. **分词**: 在建立索引前,Lucene会使用分析器(Analyzer)对文本进行分词,分词结果作为索引的基础。 3. **文档与字段**: 文档是Lucene处理的基本单位,由多个字段(Field)组成。每个字段有其特定的属性,如...
**Lucene:网页抓取与模拟搜索引擎** Lucene是一个开源的全文检索库,由Apache软件基金会维护。它为开发者提供了构建高效、可扩展的搜索功能的工具。在本项目中,我们将探讨如何利用Lucene来实现一个简单的网页抓取...
Lucene是Apache软件基金会的一个开放源代码项目,它是一个全文搜索引擎库,提供了高效、可扩展的信息检索服务。本文将深入探讨Lucene搜索引擎的配置过程,包括文件加载、索引创建和搜索操作,帮助你理解其核心技术。...
2. **源代码**:如果包含源代码,这将有助于你深入理解Lucene的工作原理,甚至可以对其进行修改和扩展。 3. **文档**:可能包含API文档(如Javadoc)和用户指南,帮助你学习如何使用Lucene。 4. **示例代码**:...
在压缩包lia2e中,我们可以期待找到与《Lucene实战(第二版)》配套的源代码。这些源代码通常会包含书中所讲述的各种示例和案例研究,以便读者能够亲手实践,加深对Lucene工作原理的理解。通过分析和运行这些代码,...
高级搜索的源代码通常会包含更复杂的查询构造逻辑,比如SQL的JOIN操作、范围查询、多条件组合等。此外,可能还会涉及到用户界面的交互设计,以使用户能够方便地指定和组合搜索条件。 然后是Lucene搜索引擎,这是一...
2. **开源工具**:Lucene是一个开放源代码的项目,这意味着任何人都可以查看其源代码、学习它的实现原理,并根据自己的需求进行修改或扩展。这种开放性使得Lucene在全球范围内拥有广泛的用户和开发者社区,提供了...
3. **分词**:Lucene使用分析器(Analyzer)来将文本字段分解成可搜索的术语。这涉及到词汇化、去除停用词和词形还原等步骤。 4. **查询解析**:用户输入的搜索字符串会被转换成Lucene的查询对象,这可能涉及使用`...