- 浏览: 2653865 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
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的实时搜索方案
2015-03-17 15:30 1438实时解决方案 在介绍我们产品方案之前,首先介绍下业内常见的 ... -
LinkedIn公司Zoie实现实时搜索的原理
2014-02-07 21:54 784原文:http://www.cnblogs.co ... -
如何提升lucene的索引速度
2014-02-07 21:16 924原文: http://wiki.apache.org/lu ... -
Lucene索引阶段设置Document Boost和Field Boost 实现合理打分
2013-09-03 11:41 1551在索引阶段设置Document Boost和Field Bo ...
相关推荐
**正文** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发,广泛应用于各种 Java 应用程序中,特别是那些需要高效检索功能的系统...不过,这个集合对于理解 Lucene 的基本架构和工作原理仍然很有价值。
#### 二、Lucene的工作原理 Lucene的核心思想是通过创建索引(Index)来提高数据检索的速度。索引是一种数据结构,它能够快速定位到文档中的关键词,并返回包含这些关键词的所有文档。在Lucene中,创建索引的过程...
对于中文,Lucene通常会使用如IK分词器、SmartCN分词器等第三方插件,这些插词器能较好地处理中文的复杂性,如歧义、多音字等问题。 在标签中提到了“C#”,这意味着这个Lucene的实现是使用C#语言编写的。C#是一种...
《Lucene in Action 第二版源码解析》(Part3) Lucene是一个强大的全文搜索引擎库,广泛应用于各类信息检索系统中。...通过深入理解这些源码,开发者可以更好地掌握Lucene的工作原理,提升其在实际项目中的应用水平。
《Lucene实战Demo》 在IT领域,搜索引擎技术是不可或缺的一部分,而Apache Lucene作为一款高性能、全文检索库...对于开发者来说,理解和掌握Lucene的工作原理和使用方法,无疑将提升开发效率,实现更强大的搜索功能。
例如,`org.apache.lucene.analysis.cn.*`包下的类,如ChineseAnalyzer,是专为中文文本设计的分析器,它采用了诸如IK、HanLian、SmartCN等知名的中文分词算法,可以根据实际需求选择合适的策略。此外,还有一些辅助...
Lucene是中国最流行的全文搜索...通过本教程大全,读者将能够从零开始学习Lucene,理解其工作原理,并能够实际操作建立索引和执行搜索。同时,结合提供的源码实例,可以帮助加深对Lucene的理解,进一步提升开发能力。
根据Lucene的设计原理和架构特点,我们可以通过扩展其语言词法分析接口来实现对中文的支持。 #### Lucene的核心架构 Lucene的核心架构主要包括以下几方面: 1. **文档存储与索引构建**:Lucene提供了一套完整的...
综合以上,myanalyzer是一个结合了IK分词器和正则表达式的自定义分词解决方案,它利用了Lucene的SmartCN Analyzer特性,并通过引入其他库如FastJSON、Commons Collections等来提高效率和灵活性。开发人员可以通过...
- 对于中文处理,Solr需要使用中文分词器,如ikanalyzer或smartcn,将中文文本拆分成可搜索的词语。 - 在配置文件中指定分词器,然后通过HTTP接口向Solr发送文档进行索引。 3. **添加Document**: - Solr中的...