`
javatgo
  • 浏览: 1179284 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

基于逆向最大化词表中文分词法。(转载)

阅读更多

应用别人的东西

以前做知识管理系统的时候,由于需要建立全文检索和统计词频,需要对中文文本进行分词。对于中文分词,

国内做到好的应该是中科院自然研究所,但是相对比较复杂,我看了几次没有看明白. :) ,由于平常我们的知识系统

对分词的要求没有这么高,所以 就选择了最大化的词表分词法. 词表选择的是人民日报97版的词表.

实际效果可以达到90%以上,基本可以满足需要。支持 Lucene.net分词,词表是启动时一次性载入;

具体代码如下:

public sealed class LtWordTokenizer : Tokenizer
{
private String bufferText;
private ArrayList wordArray;
private int intIndex=0;
public static Hashtable hsDic=new Hashtable();

public LtWordTokenizer(TextReader _in)
{
input = _in;
bufferText=input.ReadToEnd().ToLower();
wordArray=new ArrayList();
wordSegment(bufferText);

}

public void wordSegment(String Sentence)
{
int senLen = Sentence.Length;
int i=0, j=0;
int M=12;
string word;
while(i < senLen)
{
int N= i+M<senLen ? i+M : senLen+1;
bool bFind=false;
for(j=N-1; j>i; j--)
{
word = Sentence.Substring(i, j-i).Trim();
if(hsDic.ContainsKey(word.Trim()))
{
wordArray.Add(new Token(word,i,i+word.Length));
bFind=true;
i=j;
break;
}
}
if(!bFind)
{
word = Sentence.Substring(i, 1).Trim();
i=j+1;
if(word.Trim()!="")
{
wordArray.Add(new Token(word,i,i+word.Length));
}
}
}
}



public override Token Next()
{

if(intIndex<wordArray.Count)
{
intIndex++;
return (Token)(wordArray[intIndex-1]);
}
else
return null;
}

}
}

下次可以在分词的时候更改一下,不必先分好保存到arraylist,动态速度更好。

分享到:
评论

相关推荐

    基于逆向匹配的中文分词算法

    通过与其他分词算法(如正向最大匹配法、双向最大匹配法等)进行对比,可以更直观地看出基于逆向匹配的中文分词算法的优势与不足。实验结果表明,RMM算法在处理未登录词方面表现更优,尤其是在处理长难句时能够保持...

    一种基于主题词表的快速中文文本分类技术

    ### 一种基于主题词表的快速中文文本分类技术解析 #### 一、引言与背景 随着互联网技术的发展,文本数据呈爆炸性增长,如何高效地处理这些文本数据成为了一个重要的研究课题。文本自动分类技术作为信息检索和数据...

    多种中文分词停用词表

    中文分词是自然语言处理(NLP)领域中的基础任务之一,主要目的是将连续的汉字序列分割成具有语义意义的词语。在这个过程中,停用词表起着至关重要的作用。 停用词是指在文本中频繁出现,但对理解句子核心意义贡献...

    哈工大停用词表、中文停用词表、百度停用词表(全).zip

    总的来说,"哈工大停用词表、中文停用词表、百度停用词表(全).zip"这一资源为中文自然语言处理提供了多样化的选择,可以帮助开发者和研究人员根据具体需求选择合适的停用词表,提升文本处理的质量和效率。

    中文常用停用词表.zip

    百度的停用词表基于其大规模的中文数据集构建,广泛应用于搜索和信息提取等领域,具有很高的实用价值。 3. scu_stopwords.txt:此文件来源于汕头大学(SCU),可能基于学术研究或教学实践,包含了他们认为在处理中文...

    停用词表,基于tfidf获取中文文本关键词代码

    在自然语言处理(NLP)领域,停用词表是一个重要的工具,用于过滤掉那些在文本中频繁出现但对...以上就是基于TF-IDF获取中文文本关键词并结合停用词表的整个流程和相关知识点,这个过程在NLP领域中具有广泛的应用价值。

    停用词表(包含常见的停用词表,以及汇总停用词表)

    这个停用词库可能基于大量的中文文献和网络文本进行统计和分析,旨在为学术和科研领域的文本挖掘提供支持。 中文停用词表(CN)是一个通用的中文停用词表,涵盖了广泛使用的中文停用词,适用于各种自然语言处理任务。...

    5个常用的停用词表中文停用词表哈工大停用词表百度停用词表四川大学机器智能实验室停中文大全版用词库

    中文停用词表 cn_stopwords.txt 哈工大停用词表 hit_stopwords.txt 百度停用词表 baidu_stopwords.txt 四川大学机器智能实验室停用词库 scu_stopwords.txt 中文大全版 cn_all_stopwords.txt

    最全中文停用词表(1893个)

    在自然语言处理(NLP)领域,中文停用词表扮演着至关重要的角色。它是一份包含常见但不含实质性意义词汇的列表,在文本分析、信息检索、语义理解等任务中,这些词汇通常被忽略。停用词表在处理中文文本时,能够提高...

    jieba停用词分词表

    jieba停用词分词表

    文本分词常用中文停用词表

    使用jieba分词时,需要载入停用词表,这四个是常用的停用...中文停用词表 cn_stopwords.txt 哈工大停用词表 hit_stopwords.txt 百度停用词表 baidu_stopwords.txt 四川大学机器智能实验室停用词库 scu_stopwords.txt

    自己整理的中文停用词表,共2689个

    自己整理的中文停用词表,共2689个,根据网上现有全部资源,各种停用词表,整理去重在提取中文词(同时包括一些常见的英文词和中文标点符号)出了一个比较全面的词表出来,供中文的文本分析使用。

    中文停用词词表

    中文停用词词表,中文停用词词表,中文停用词词表,中文停用词词表,中文停用词词表

    最新中文停用词表(1208个)

    ### 最新中文停用词表解析与应用 #### 前言 中文停用词表在自然语言处理(NLP)领域中扮演着至关重要的角色。停用词是指在信息检索分析过程中过滤掉的一些常见词汇,这些词汇通常不携带实际语义信息,删除它们有助...

    基于汉语情感词表的句子情感倾向分类研究1

    总的来说,基于汉语情感词表的句子情感倾向分类研究为中文文本情感分析提供了有效工具。未来的研究可能会进一步探索更复杂的语言结构,如短语和句子的结构,以及情感转移和情感强度的动态变化,以提高情感分析的准确...

    常用停用词表整理(哈工大停用词表,百度停用词表等)

    哈工大停用词表和百度停用词表是中文处理中广泛使用的两个停用词库。 哈工大停用词表(HIT Stopword List)是由哈尔滨工业大学计算机科学与技术学院开发的,适用于中文文本处理。该词表包含了大量中文常用的无实际...

    中文停用词表 英文停用词表 中英文停用词表

    多版本 中文停用词表 英文停用词表 中英文停用词表 以及python停用词词表合并程序(2个)

    常用停用词(哈工大停用词表、百度停用词表、四川大学停用词表、中文停用词表)

    例如,哈工大的停用词表可能基于其在学术文献分析中的经验,而百度的词表可能更偏向于网络搜索和网页内容的处理。 在文本预处理阶段,停用词表的应用主要包括以下几个方面: 1. **文本清洗**:通过去除停用词,...

    常见中文停用词表

    常见中文停用词表 可用于中文分词 常见中文停用词表 可用于中文分词 常见中文停用词表 可用于中文分词 常见中文停用词表 可用于中文分词

    基于Web的海洋叙词表的管理与可视化.pdf

    "基于Web的海洋叙词表的管理与可视化" 本文主要介绍了基于Web的海洋叙词表的管理与可视化系统的设计和实现。该系统的主要目标是解决海洋领域中的术语管理问题,即如何对海洋领域中的大量术语进行统一和规范化的管理...

Global site tag (gtag.js) - Google Analytics