`
lzj0470
  • 浏览: 1273041 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

对庖丁解牛(paoding)画蛇添足

阅读更多

今天遇到一个比较无奈的问题。在用paoding的时候,我发现一些词组我认为是有用,却被它过滤掉,查看了一下源代码,发现有加载过x-noise-word,于是我将x-noise-word里面关于我需要的词组删除掉,那么这样是变成有用的词了吧。比如说x-noise-word里面有"什么",我删除掉,分词的时候,就认为"什么"是有用的词组。

事实上,修改后,发现没有效果。因为个人看paoding源代码比较吃力,没能力弄明白。于是,有了一个异想天开的想法。

在分词之后,它认为没有用的词组,我把它修改成有用的词组,那不是解决问题了。有了想法,就有干劲。

花了一个下午,把这个问题解决掉。代码如下:

package net.paoding.analysis.dictionary;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Hashtable;

public class ContraryStopWord {
	
	private static final String DEFAULT_DIC_PATH = "dic/contrary-stopword.dic";
	private String UNSTOPWORD = null;
	private static Hashtable<String,Integer> HSW = new Hashtable<String,Integer>();
	private static ContraryStopWord unStopWord = new ContraryStopWord();
	
	public static ContraryStopWord getInstance(){
		return unStopWord;
	}
	
	private ContraryStopWord(){
		loadContraryStopwordDic();
	}
	
	private void loadContraryStopwordDic()
	{		
		FileInputStream in = null;
		BufferedReader breader = null;
		try {
			in = new FileInputStream(new File(this.DEFAULT_DIC_PATH));
			breader = new BufferedReader(new InputStreamReader(in));
			String line = breader.readLine();
			while(line!=null){
				hswAdd(line);
				line = breader.readLine();
			}
			
		} catch (IOException ex) {
			ex.printStackTrace();
		} finally {
			try {
				if(breader!=null){
					breader.close();
				}
				if(in!=null){
					in.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	private void setMode(String UNSTOPWORD) 
	{		
		this.UNSTOPWORD = UNSTOPWORD;		
	}
	
	private void hswAdd(String key)
	{	
		HSW.put(key, 1);		
	}
	
	public boolean hswGet(String key)
	{		
		return HSW.get(key)==null?true:false;		
	}

	public static void main(String args[]){
		
		ContraryStopWord word = ContraryStopWord.getInstance();
		word.hswGet("");
	}
}

 

dic/contrary-stopword.dic

就是反停用词的文件。

比如,在文件里面写

什么

为什么

....

最后在net.paoding.analysis.dictionary找到Word类

private ContraryStopWord contraryStopWord = ContraryStopWord.getInstance();

 

	public boolean isNoise() {
		if(!contraryStopWord.hswGet(text)){
			return false;
		}
		return isNoiseCharactor() || isNoiseWord();
	}

 

填写上面两个代码

在分词的时候,就能起到反停用词的作用。

分享到:
评论

相关推荐

    paoding analysis 3.0.1 jar (庖丁解牛分词器)

    因此作者对paoding进行重新编译,使其与最新Lucene 3.0.1版本适用。 Latest paoding 3.0.1 for lucene 3.0.1 使用说明: 先下载2.0.4的版本(h t t p : / /code.google.com/p/paoding/),配置好环境后,引用...

    庖丁解牛 中文分词工具

    "庖丁解牛"是一款专为中文处理设计的分词工具,其版本2.0.4-alpha2提供了更稳定和高效的分词体验。这个工具的核心功能是将中文文本拆分成有意义的词语,这对于中文信息处理、自然语言理解和搜索引擎优化等场景至关...

    庖丁解牛工具

    这个工具的名字来源于中国古代寓言故事“庖丁解牛”,寓意对文本的精细处理和深入理解,就像庖丁对牛肉的熟练切割一样。在IT行业中,分词是自然语言处理(NLP)中的基础步骤,它将连续的汉字序列分割成具有语义意义...

    庖丁解牛jarbao

    "庖丁解牛jarbao"是一个专为中文分词设计的工具,它的核心是"庖丁解牛中文分词器"。在Java开发环境中,它通常以jar包的形式提供,如"paoding-analysis - 3.1.jar",这表明它是基于Java语言实现的,并且是版本3.1的...

    Lucene 庖丁解牛分词法2.4版本jar包

    在实际应用中,例如建立一个新闻网站的全文检索系统,开发者可以利用"庖丁解牛分词法"对新闻内容进行预处理,将每篇新闻文本拆分成关键词,再用Lucene建立索引。当用户输入查询词时,系统将使用相同的分词逻辑进行...

    lucene3.0 整合庖丁解牛实例

    实例是一个java实例,可直接导入到MyEclipse中...其中是lucene3.0整合了庖丁解牛分词法,添加了高亮显示。因为lucene3.0无法整合paoding-analysis.jar 所以我已经把paoding-analysis中的源码整合进来了避免无法整合问题

    庖丁解牛 源码 for Lucene 2.4

    《庖丁解牛 源码 for Lucene 2.4》是一份针对开源全文搜索引擎Lucene 2.4版本的深度解析资料。这个压缩包包含的文件名为"paoding-for-lucene-2.4",很可能是针对中文处理的Paoding Lucene库的源代码分析或扩展。...

    lucene3庖丁解牛中文分词器

    1. **引入库**:首先,我们需要将`paoding_lucene3_0530.jar`文件添加到项目的类路径中,这个库包含了庖丁解牛分词器的实现。 2. **配置字典**:利用`dic`目录下的字典文件,可以定制化分词器的词典,以适应特定...

    庖丁解牛jar包

    一直找不到适合lucene-35以上的庖丁解牛jar包,搞了半天总于生成好了jar包,在lucene-35中运行没问题

    庖丁解牛分词 java包

    这个工具包的名称形象地借用中国古代故事“庖丁解牛”,寓意对文本的精细处理,如同庖丁对牛肉的熟练分解。在Java开发中,分词是自然语言处理(NLP)的重要环节,它将连续的汉字序列拆分成有意义的词汇单元,为后续...

    庖丁解牛算法代码解读_y.docx

    《庖丁解牛算法代码解读》 算法是计算机科学中的核心组成部分,对于高效地处理大量数据和解决复杂问题起着至关重要的作用。本文将深入解析一种名为“庖丁解牛”的分词算法,该算法在自然语言处理领域有着广泛的应用...

    庖丁解牛,一种中文分词器

    "庖丁解牛"是一款专为处理中文文本的分词工具,它的设计目的是为了帮助开发者更高效、准确地对中文文本进行分词处理。在自然语言处理(NLP)领域,分词是基础且关键的一环,它将连续的文本序列切分成具有独立意义的...

    庖丁解牛分词器jar包

    Paoding's Knives 中文分词具有极 高效率 和 高扩展性 。引入隐喻,采用完全的面向对象设计,构思先进。 高效率:在PIII 1G内存个人机器上,1秒 可准确分词 100万 汉字。 采用基于 不限制个数 的词典文件对文章...

    庖丁解牛(文件分割)

    庖丁解牛 分割文件~~~

    庖丁解牛3.0搜索引擎技术

    庖丁解牛,搜索引擎分词技术,用于开发网站站内搜索所需分词技术工具包。

    适用于lucene..5的庖丁解牛分词器

    可以适用于lucene3.5的庖丁解牛分词器jar包

    庖丁解牛分词时需要的高亮显示jar包

    庖丁解牛分词时需要的高亮显示jar包,高亮显示需要的jar包

    Paoding中文分词

    标题“Paoding中文分词”指的是一个专门用于处理中文文本的分词工具,名为“庖丁解牛中文分词”。在自然语言处理领域,分词是预处理的重要步骤,它将连续的汉字序列切分成有意义的词汇单元,便于后续的文本分析和...

    lucene中文分词器(paoding解牛)

    Paoding这个名字来源于中国古代的一种宰牛技术,寓意其对中文文本的“解构”能力,如同庖丁解牛般精细入微。 Paoding的核心特点包括: 1. **智能词典**:Paoding使用了一种动态加载的词典机制,能够根据上下文信息...

Global site tag (gtag.js) - Google Analytics