`
san_yun
  • 浏览: 2653865 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

lucene smartcn原理

 
阅读更多

Smartcn 分词器是 ictclas 简化功能的 java

 

Smartcn 分词三步: 1 )原子切分; 2 )找出原子之间所有可能的组词方案; 3 N- 最短路径中文词语粗分三步。

例如: 他说的确实在理 这句话。

1 )原子切分的目的是完成单个汉字的切分。经过原子切分后变成 ## / / / / / / / / ##

2 )然后根据 词库字典 coredict” 找出所有原子之间所有可能的组词方案。经过词库检索后,该句话变为 ## / / / / 的确 / / 确实 / / 实在 / / 在理 / / ##

1

3 N- 最短路径中文词语粗分, smartCN 用的是 1- 最短路径。首先我们要找出这些词之间所有可能的两两组合的距离(这需要检索 BigramDict 词典库 , 2 的权值)。

2

 

3 :图 2 的逻辑表示

 

用动态规划的方法容易求得出最短路径:

例如从节点 0 5 消耗是 1+2+3+5 = 3.3+2.2+4.1+4.1 = 13.7

从节点 0 4 消耗是 1+2+4 = 3.3+2.2+7.1 = 12.6

节点 7 的消耗是 min(5->7, 4->7) = min(13.7+11.6 , 12.6 + 11.5) = 28.1 路径 4->7

...

求出最短路径,就找出了分词短句的结果。

 

总结一下 smartcn 的核心: coredict 用来存词,用来扩展单字。

Bigramdict 用来存跳转频率。最后用最短路径算法求最佳切分方式。 Bigramdict 怎么来的,从训练语料里统计出来的。最短路径求解体现了一定的语义分析,代价就是 Bigramdict 需要训练。

Smartcn 不能扩展词库,因为 Bigramdict 中没有对应的关联,如果要扩展得两个一起。

 

写的有点仓促,蛮多精华没介绍到, 想看更多细节可以看这里

http://www.ictclas.org/content_c_005.html

http://www.cnblogs.com/zhenyulu/articles/668035.html

下一步我想用CRF训练的结果生成新的coredict跟bigramdict,看下行不行。近年来CRF的结果已经远远优于机械的方法了,也就是用新方法结果来训练旧机器.

分享到:
评论

相关推荐

    Lucene 4.7 常用jar集合

    **正文** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发,广泛应用于各种 Java 应用程序中,特别是那些需要高效检索功能的系统...不过,这个集合对于理解 Lucene 的基本架构和工作原理仍然很有价值。

    lucene使用教程

    #### 二、Lucene的工作原理 Lucene的核心思想是通过创建索引(Index)来提高数据检索的速度。索引是一种数据结构,它能够快速定位到文档中的关键词,并返回包含这些关键词的所有文档。在Lucene中,创建索引的过程...

    Lucene中文切词(完整版)

    对于中文,Lucene通常会使用如IK分词器、SmartCN分词器等第三方插件,这些插词器能较好地处理中文的复杂性,如歧义、多音字等问题。 在标签中提到了“C#”,这意味着这个Lucene的实现是使用C#语言编写的。C#是一种...

    lucene in action 2nd src part3

    《Lucene in Action 第二版源码解析》(Part3) Lucene是一个强大的全文搜索引擎库,广泛应用于各类信息检索系统中。...通过深入理解这些源码,开发者可以更好地掌握Lucene的工作原理,提升其在实际项目中的应用水平。

    Lucene实战Demo

    《Lucene实战Demo》 在IT领域,搜索引擎技术是不可或缺的一部分,而Apache Lucene作为一款高性能、全文检索库...对于开发者来说,理解和掌握Lucene的工作原理和使用方法,无疑将提升开发效率,实现更强大的搜索功能。

    lucene_cn.jar

    例如,`org.apache.lucene.analysis.cn.*`包下的类,如ChineseAnalyzer,是专为中文文本设计的分析器,它采用了诸如IK、HanLian、SmartCN等知名的中文分词算法,可以根据实际需求选择合适的策略。此外,还有一些辅助...

    lucene教程大全包括实例源码

    Lucene是中国最流行的全文搜索...通过本教程大全,读者将能够从零开始学习Lucene,理解其工作原理,并能够实际操作建立索引和执行搜索。同时,结合提供的源码实例,可以帮助加深对Lucene的理解,进一步提升开发能力。

    Lucene笔记:全文检索的实现机制

    根据Lucene的设计原理和架构特点,我们可以通过扩展其语言词法分析接口来实现对中文的支持。 #### Lucene的核心架构 Lucene的核心架构主要包括以下几方面: 1. **文档存储与索引构建**:Lucene提供了一套完整的...

    myanalyzer

    综合以上,myanalyzer是一个结合了IK分词器和正则表达式的自定义分词解决方案,它利用了Lucene的SmartCN Analyzer特性,并通过引入其他库如FastJSON、Commons Collections等来提高效率和灵活性。开发人员可以通过...

    solr搜索引擎

    - 对于中文处理,Solr需要使用中文分词器,如ikanalyzer或smartcn,将中文文本拆分成可搜索的词语。 - 在配置文件中指定分词器,然后通过HTTP接口向Solr发送文档进行索引。 3. **添加Document**: - Solr中的...

Global site tag (gtag.js) - Google Analytics