关于眼下分词的想法

眼下分词性能比較差,仅仅有1.65M/s,同事在没有改变主要算法的情况下做了一点优化调整,到3.52M/s。但对性能的提升仍然不够明显。我感觉亟须解决几个问题:

1.search时keyword分词也按多种粒度进行,然后分别sloppyphrase,最后or起来,因为大粒度分的词词频低,因此idf大。它们在排序时优先级更高,符合期望。如今仅仅做一个粒度的切法,又要求在索引里面都能找到,感觉不太现实。修改之后的做法对索引时分词没有苛求。相对来说添加的开销也不会非常大,可能就三个粒度的分词,仅仅是假设排序没有考虑的话须要更高一些排序的做法。查全率、召回率都会更高。这样索引分词就专注在按不同粒度切好词就可以,不用在切完之后再考虑合并之类复杂奇怪的逻辑,能够追求更高的性能。

2.统一使用trie树(或fst)做检索,trie树也能够定时更新,杜绝用hash做前缀查询,trie树相当于状态机性能更好。

3.建立性能、准确率、召回率的指标,眼下算法比較复杂,假设有其它算法综合起来更优,能够替换。

4.眼下increment gap没有考虑,不够严谨,可能会出错。

时间: 2024-10-26 05:46:18

关于眼下分词的想法的相关文章

关于目前分词的想法

目前分词性能比较差,只有1.65M/s,同事在没有改变主要算法的情况下做了一点优化调整,到3.52M/s,但对性能的提升仍然不够明显.我感觉亟须解决几个问题: 1.search时keyword分词也按多种粒度进行,然后分别sloppyphrase,最后or起来,由于大粒度分的词词频低,因此idf大,它们在排序时优先级更高,符合期望.现在只做一个粒度的切法,又要求在索引里面都能找到,感觉不太现实.改动之后的做法对索引时分词没有苛求,相对来说增加的开销也不会很大,可能就三个粒度的分词,只是如果排序没

使用NLPIR-ICTCLAS2014分词系统

0.使用NLPIR-ICTCLAS2014分词系统之前的准备 下载NLPIR-ICTCLAS2014的下载包.高速传送门: http://ictclas.nlpir.org/upload/20140618094605_ICTCLAS2014.zip 须要有自己的词库(事实上没有都没问题,词库仅仅是我自己须要用到的,某个方面的词汇,来帮助进行页面分析的) 1.高速从NLPIR-ICTCLAS2014的下载包中获得我们须要的东西 首先来看一下整个目录的结构 Data目录中,含有分词须要用到的字典,C

.NET Core中文分词组件jieba.NET Core

特点 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析: 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义.具体来说,分词过程不会借助于词频查找最大概率路径,亦不会使用HMM: 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词. 支持繁体分词 支持添加自定义词典和自定义词 jieba.NET Core 用法 下载代码使用VS 2017 打开,或者使用VS Code 打开项目. 选择jieba.NET 为起始项目,P

.net 的一个分词系统(jieba中文分词的.NET版本:jieba.NET)

简介 平时经常用Python写些小程序.在做文本分析相关的事情时免不了进行中文分词,于是就遇到了用Python实现的结巴中文分词.jieba使用起来非常简单,同时分词的结果也令人印象深刻,有兴趣的可以到它的在线演示站点体验下(注意第三行文字). .NET平台上常见的分词组件是盘古分词,但是已经好久没有更新了.最明显的是内置词典,jieba的词典有50万个词条,而盘古的词典是17万,这样会造成明显不同的分词效果.另外,对于未登录词,jieba“采用了基于汉字成词能力的HMM模型,使用了Viterb

关于中文分词

眼下全量索引17G,不到1300万document花费大约25分钟的时间(Lucene 4.0),吞吐量远远低于lucene nightly build宣称的170G/h的量.换用StandardAnalyzer,有34%的提高,比較下使用的KAnalyzer,mmseg4j1.9.2-snapshot,standardanalyzer,性能分别在1.7M/s,10M/s,20M/s这样量级.所以觉得假设分词性能有明显提高,索引速度应该会有加快. 分析了下眼下使用的KAnalyzer,它同一时候

几种开源分词工具的比較

搜集了一些资料,与同学一起进行了简单的測试,总结例如以下. 分词工  具 特点 支持语言 原理 词典及扩展性 StandardAnalyzer 中文.英文(unicode) 中文:单字符切分 英文:依据空格切分 ChineseAnalyzer 中文,不支持中文和英文及数字混合的文本分词 按字分词,与StandardAnalyzer对中文的分词没有大的差别 CJKAnalyzer 中文,英文,不支持中文和英文及数字混合的文本分词 採用的双字切分,也就是对一段文字按每两个字来进行切分 IKAnaly

jieba中文分词的.NET版本:jieba.NET

简介 平时经常用Python写些小程序.在做文本分析相关的事情时免不了进行中文分词,于是就遇到了用Python实现的结巴中文分词.jieba使用起来非常简单,同时分词的结果也令人印象深刻,有兴趣的可以到它的在线演示站点体验下(注意第三行文字). .NET平台上常见的分词组件是盘古分词,但是已经好久没有更新了.最明显的是内置词典,jieba的词典有50万个词条,而盘古的词典是17万,这样会造成明显不同的分词效果.另外,对于未登录词,jieba“采用了基于汉字成词能力的HMM模型,使用了Viterb

Mmseg中文分词算法解析

@author linjiexing 开发中文搜索和中文词库语义自己主动识别的时候,我採用都是基于mmseg中文分词算法开发的Jcseg开源project.使用场景涉及搜索索引创建时的中文分词.新词发现的中文分词.语义词向量空间构建过程的中文分词和文章特征向量提取前的中文分词等,整体使用下来,感觉jcseg是一个非常优秀的开源中文分词工具,并且可配置和开源的情况下,能够满足非常多场景的中文分词逻辑.本文先把jcseg使用到最主要的mmseg算法解析一下. 1. 中文分词算法之争 在分析mmseg

Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词

什么是Sphinx Sphinx 是一个全文检索引擎,一般而言,Sphinx是一个独立的搜索引擎,意图为其它应用提供快速.低空间占用.高结果相关度的全文搜索功能.Sphinx能够很easy的与SQL数据库和脚本语言集成.当前系统内置MySQL和PostgreSQL 数据库数据源的支持.也支持从标准输入读取特定格式的XML数据.通过改动源码.用户能够自行添加新的数据源(比如:其它类型的DBMS的原生支持). Sphinx的特性  快速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒);