热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

lucenesmartcn原理(图文)

Smartcn分词器是ictclas简化功能的java版Smartcn分词三步:1)原子切分;2)找出原子之间所有可能的组词方案;3)N-最短路径中文词语粗分三步。例如:“他说的确实在理”这句话。1)原子切分的目的是完成单个汉字的切分。经过原子切分后变成“始#

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

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

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

1)原子切分的目的是完成单个汉字的切分。经过原子切分后变成“始##始/他/说/的/确/实/在/理/末##末”。

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

0_1276431257E8bO

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

0_12764312816PZk 0_12764313042Ja1

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

例如从节点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


推荐阅读
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • 本文详细介绍了Linux系统中信号量的相关函数,包括sem_init、sem_wait、sem_post和sem_destroy,解释了它们的功能和使用方法,并提供了示例代码。 ... [详细]
  • 本文探讨了Node.js后端开发的基础知识,包括模块源码的使用方法、前后端源码的区别以及如何在命令行环境中编译Node.js源代码。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 本文介绍了如何利用jQuery实现对网页上多个div元素的显示与隐藏控制,包括基本的toggle方法及更复杂的显示隐藏逻辑。 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 本文探讨了程序员这一职业的本质,认为他们是专注于问题解决的专业人士。文章深入分析了他们的日常工作状态、个人品质以及面对挑战时的态度,强调了编程不仅是一项技术活动,更是个人成长和精神修炼的过程。 ... [详细]
  • 本文介绍了.hbs文件作为Ember.js项目中的视图层,类似于HTML文件的功能,并详细讲解了如何在Ember.js应用中集成Bootstrap框架及其相关组件的方法。 ... [详细]
  • 本文提供了 Oracle 12c 数据库的官方下载链接,并附带了安装前的一些准备工作和注意事项。 ... [详细]
  • 使用Root权限执行命令时遇到的问题及解决方案
    本文讨论了在Linux系统中使用特定插件(如fastestmirror和langpacks)时,若非root用户尝试执行某些命令可能遇到的权限问题,并提供了相应的解决方法。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 本题要求实现一个名为fun的函数,该函数的功能是从给定的字符串s中移除所有ASCII码为偶数值的字符,并将剩下的字符组成的新字符串存储在由t指向的数组中。 ... [详细]
author-avatar
isonlyk
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有