Lucene Luke源码分析

简介: 假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。

VocabAnalysisPluginZipfAnalysisPlugin源码分析
首先明白二者分析输出的是啥,有什么作用。
1)下面是VocabAnalysisPlugin截图

image.png

唯一id域输出

image.png

keywords域输出

image.png

keywords 域输出


Id 域完全不重复输出上图

不同文档集合的时候,覆盖这个域当前词典的情况。出现平行或者缓行时,随着文档增加,这个域的新词没有同步增加,或者增加趋势不大

分析图可以得到

  1 某个域的Term增长情况,也就反应词典规模

  2 越平,反应文档中重复的内容越多,文档的质量不是很好

  3 随着文档集合的扩大,FieldTerm结合也在扩大,趋势可以反应后面的文档添加共享新词的粒度问题。 

源码分析
   float firstDocId = td.doc();//firstDocId
表明首次出现 理解这个非常重要
term统计就观察,随着文档的添加,这个域里面的term集合扩展情况,间接发现新增文档的内容质量,只统计首次出现了该term,而不是统计全部的。新增docid是递增的。 输出group的时候,也是按照id递增聚合起来,这样上图就顺利的生成了。

2ZipfAnalysisPlugin

基本原理:

Step1 收集df

遍历指定域,去每个term,取termdf。小于df的长尾数组收集,大于df的链接数组收集。

Step2 df排序

longtail term 数组排序,按df降序

Step3初始桶个数100

唯一词数量小于初始值100,那每个term一桶,

唯一词数量大于初始值100,每个桶最多 totalNum/初始值

Step4

将排序的long-tail 数组元素,依次put到桶中,桶满就new一个

Step5

short-tail 数组元素,从后向前依次put到桶中,桶满就new一个

Step6

  遍历桶链,取最大的df 均值

桶的行为:只统计了Term数目、最大、最小df值、df总和、平均值

重要概念理解

  most terms occur very infrequently - just keep group totals for the DFs

  representing these "long tail" terms.

// 低频term分组聚会起来,保存他们的DFS 的和,和代替长尾

// 将出现term关联文档的个数低于1000的作为长尾的End

 

// For "short tail" terms there are less of them and they represent a lot of different DFs (typically in the thousands),so unlike long-tail terms ,we can't predict what common DF buckets to accumulate counts in. For this reason, we don't attempt to total them and keep a list of them individually (shouldn't occupy too much ram)

端链的-长尾词,聚会起来,计数他们的数量,然后从长到短收集到桶中。端链的收集时就合

长链的-端尾词,按照df降序,然后收集到桶中,长链的

 

横坐标表示:keywords这个域中不同term总数,纵坐标表示桶中df均值。

从左至右看,越右边越是长尾。这里对长尾的定义:稀有TermTerm关联的文档数量。

图中左边没有完整,因为df大于长尾的df=1000词没有出现。

 

低频词覆盖范围 或者说长尾词覆盖范围  长尾词对搜索引擎营销有帮助  
另外长尾词搜索时,结果更准确。长尾词被查询的比例很大的话,那么搜索收益会更多,这是长尾在网络的效应

目录
相关文章
|
SQL 安全 JavaScript
基于JavaWeb的电影院在线选座订票管理系统
基于JavaWeb的电影院在线选座订票管理系统
929 0
基于JavaWeb的电影院在线选座订票管理系统
|
Java Linux iOS开发
Typora最新版破解, 2022年11.7破解成功
Typora最新版破解, 2022年11.7破解成功, 支持Linux, Windows, Mac三端破解, 你值得拥有哦
|
机器学习/深度学习 算法 计算机视觉
边缘检测评估方法:FOM、RMSE、PSNR和SSIM对比实验和理论研究
本文探讨了图像分割与边缘检测之间的关系,并通过实验评估了多种边缘检测指标的有效性。研究发现,常用的RMSE、PSNR和SSIM指标在海岸线检测任务中可能高估性能,而FOM(优点图)指标则能更准确地选择最佳边缘检测参数。实验结果表明,FOM在92.6%的情况下选择了更好的阈值,在66.3%的情况下选择了最佳阈值。此外,FOM通过考虑预测边缘与真实边缘之间的距离,提供了更合理的评估标准。本文不仅对海岸线检测有重要意义,还对医学图像分析、计算机视觉和遥感等多个领域具有广泛的应用价值。作者通过理论分析和实证研究,证明了FOM在边缘检测评估中的优越性。
659 3
边缘检测评估方法:FOM、RMSE、PSNR和SSIM对比实验和理论研究
|
9月前
|
机器学习/深度学习 人工智能 安全
一篇关于DeepSeek模型先进性的阅读理解
本文以DeepSeek模型为核心,探讨了其技术先进性、训练过程及行业影响。首先介绍DeepSeek的快速崛起及其对AI行业的颠覆作用。DeepSeek通过强化学习(RL)实现Time Scaling Law的新范式,突破了传统大模型依赖算力和数据的限制,展现了集成式创新的优势。文章还提到开源的重要性以及数据作为制胜法宝的关键地位,同时警示了业务发展中安全滞后的问题。
1335 176
一篇关于DeepSeek模型先进性的阅读理解
|
9月前
|
Unix 虚拟化 iOS开发
FreeBSD 13.5 x86_64 OVF (sysin) - VMware 虚拟机模板
FreeBSD 13.5 x86_64 OVF (sysin) - VMware 虚拟机模板
147 1
FreeBSD 13.5 x86_64 OVF (sysin) - VMware 虚拟机模板
|
开发框架 监控 数据可视化
90%的项目经理都在使用的15款项目管理工具清单
【11月更文挑战第4天】以下是15款广受项目经理欢迎的项目管理工具:Jira、Worktile、Pingcode、Asana、Trello、Basecamp、Monday.com、Smartsheet、ProofHub、VersionOne、Pivotal Tracker、ClickUp、ProjectLibre、OpenProject 和 禅道。这些工具各具特色,适用于不同规模和类型的项目管理需求。
290 3
|
安全 网络安全 API
|
存储 JSON NoSQL
【redis数据同步】redis-shake数据同步全量+增量
【redis数据同步】redis-shake数据同步全量+增量
|
存储 数据可视化 数据挖掘
R语言绘制圈图、环形热图可视化基因组实战:展示基因数据比较
R语言绘制圈图、环形热图可视化基因组实战:展示基因数据比较

热门文章

最新文章