问题标签 [tf-idf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 如何对不断发展的数据流进行聚类
我想增量地聚集文本文档,将它们作为数据流读取,但似乎存在问题。大多数术语权重选项都基于使用 TF-IDF 作为特征权重的向量空间模型。然而,在我们的案例中,现有属性的 IDF 会随着每个新数据点而变化,因此之前的聚类不再有效,因此任何流行的算法(如 CluStream、CURE、BIRCH)都不能应用,因为它们假定了固定维度的静态数据。任何人都可以将我重定向到与此相关的任何现有研究或提供建议吗?谢谢 !
search - tf-idf:使用它是否有助于权衡共享条款的文档高于不共享条款的文档?
我正在为网站开发自定义搜索功能。我很好奇是否仅使用 tf-idf 对我的语料库中的文档进行排名也有助于权衡具有多个搜索词的文档高于仅具有一个搜索词的文档。
示例:Search = "poland spring water" 从理论上讲,如果文档包含 100 次“波兰”和 0 次“水”,则上述查询的权重(使用传统的 tf-idf)是否会更高。或者,如果文件包含 10 倍的“波兰”和 10 倍的“水”,它会更重吗?
我知道这完全取决于“波兰”和“水”的 tf-idf 值,但理论上是在一个公平的竞争环境中,如果在文件,或者它真的是独立的?
search - 如何标准化 solr/lucene 分数?
我正在努力研究如何提高 solr 搜索结果的评分。我的应用程序需要从 solr 结果中获取分数,并根据结果对查询的好坏显示一些“星”。5 颗星 = 几乎/精确到 0 颗星,表示与搜索不匹配,例如只有一个元素命中。但是,我得到的分数从 1.4 到 0.8660254 都返回了我会给 5 星的结果。我需要做的是以某种方式将这些结果转换为百分比,以便我可以用正确的星数标记这些结果。
我运行的给我 1.4 分的查询是:
euallowed:true AND(等级:"2:1")
给我 0.8660254 分数的查询是:
euallowed:真 AND(等级:“2:1”或等级:“1st”)
我已经更新了相似度,以便 tf 和 idf 返回 1.0,因为我只对文档有术语感兴趣,而不是文档中该术语的数量。这就是我的相似代码的样子:
所以我想我的问题是:
标准化分数的最佳方法是如何计算出要给多少“星”?
是否有另一种方法对结果进行评分?
谢谢
授予
r - 使用 R 进行文本检索
我一直在使用 R 的文本挖掘包,它确实是一个很棒的工具。我没有找到检索支持,或者我缺少某些功能。如何使用 R 的文本挖掘包实现一个简单的 VSM 模型?
php - 我如何返回结果文档中的单词数来计算 TF
我已经面临在非常有限的时间内用 PHP 创建一个基本的文本文件搜索引擎的挑战,几乎没有以前的编程知识,这是一项艰巨的任务!
到目前为止,这是我们所拥有的,它确实设法返回了单词出现次数最多的文档(如果有多个相同数量的文档)。
问题是我们完成它的方式(至少不容易)允许我们计算 TF-IDF 分数。IDF 已经完成,但我们需要通过获取返回文档中的总单词数来计算 TF,这就是我们遇到的问题。另一个问题是它只返回最高的文件,我们不能让它返回一个文件列表,每个文件都有他们的分数......即一个文件有 3 次“航空公司”这个词,另外两个文件有一次他们被遗忘了,只有第一个被归还......
(剥离符号也存在一些问题,但我们解决了这个问题,尽管方法很冗长......)
这是我们所拥有的:
terminology - 将文档中的文本频率与语料库中的频率进行比较
我想分析文档中的字母、二元组、单词等项目,并将它们在我的文档中的频率与它们在大型文档语料库中的频率进行比较。
这个想法是,诸如“if”、“and”、“the”之类的词在所有文档中都很常见,但在本文档中,某些词会比语料库中的典型词更常见。
这应该是很标准的。这叫什么?这样做很明显,我总是在我的文档中遇到新词的问题,但在语料库评级中却没有无限重要。这是如何处理的?
java - 如何从 Java 对象中提取数据?
我是 C 程序员,现在我转向 Java。我正在尝试将 C 程序转换为 Java 程序。C 程序只计算词频和逆文档频率 ( tf/idf )。
我创建了一个数据类
该类负责存储文件名、文件文本和值(tf 值或 idf 值)。
以下类负责存储数据:
当我打印地图时,它给了我一些奇怪的值。我想,我必须声明数据类的数组?我不知道有多少文件,因此我不能放置任何静态数组编号。
另外,如何根据这个数据结构计算TF和IDF?
在 C 程序中,我只是读取文件,计算单词数除以总单词数得到 TF,一个单词除以该单词在所有文件中的总出现次数得到 IDF。我不知道如何使用上述数据结构来做到这一点。
我得到奇怪的价值观。也许这些是对象:
有什么方法可以使用getFileName
等函数从 Data 类中获取特定值?
information-retrieval - 哪些地方不能使用 IDF?
逆文档频率在信息检索中没有用的情况有哪些?
lucene - 卢森。如何构建术语文档矩阵
我需要构建该矩阵,但我找不到为每个单元格计算归一化 tf-idf 的方法。我将执行的归一化是余弦归一化,即除以 tf-idf(使用 DefaultSimilarity计算)每 1/sqrt(列中的 sumOfSquaredtf-idf)。
有谁知道执行此操作的方法?
提前感谢
安东尼奥
information-retrieval - 多个文档的 IDF 有何不同?
我正在使用 LETOR 制作信息检索系统。他们使用 TF 和 IDF。我确信 TF 是依赖于查询的。但 IDF 应该是,但是:
“请注意,IDF 是独立于文档的,因此查询下的所有文档都具有相同的 IDF 值。”
但这没有意义,因为 IDF 是功能列表的一部分。如何计算每个文档的 IDF?