问题标签 [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.
java - Lucene Scoring Function - bias towards shorter documents
I want Lucene Scoring function to have no bias based on the length of the document. This is really a follow up question to Calculate the score only based on the documents have more occurance of term in lucene
I was wondering how Field.setOmitNorms(true) works? I see that there are two factors that make short documents get a high score:
- "boost" that shorter length posts - using doc.getBoost()
- "lengthNorm" in the definition of norm(t,d)
I was wondering - if I wanted no bias towards shorter documents, is Field.setOmitNorms(true) enough?
machine-learning - unigrams & bigrams (tf-idf) 不如 unigrams (ff-idf) 准确?
这是一个关于 ngram 线性回归的问题,使用 Tf-IDF(词频 - 逆文档频率)。为此,我使用 numpy 稀疏矩阵和 sklearn 进行线性回归。
使用 unigrams 时,我有 53 个案例和 6000 多个特征。预测基于使用 LeaveOneOut 的交叉验证。
当我创建一个仅包含 unigram 分数的 tf-idf 稀疏矩阵时,我得到的预测比创建 unigram+bigram 分数的 tf-idf 稀疏矩阵时要好一些。我添加到矩阵中的列越多(三元组、四元组、五元组等的列),回归预测的准确性就越低。
这很常见吗?这怎么可能?我会认为功能越多越好。
svm - SVM线性核中TF-IDF和TF的区别
因为 IDF 是一个常数。一维中的所有值乘以一个常数。
在 SVM 线性内核中,结果会有所不同吗?
nlp - 如何计算 TF-IDF
我想使用 TF-IDF 的余弦相似度方法获得两个单词的语义相似度。首先,我想从 wikipedia 或 word-net 中获取这些单词的含义。之后,我想对文本进行预处理并找到 TF-IDF。当我搜索这个问题时,我发现要找到 TF-IDF,我们应该有一个训练集和测试集。在我的情况下,哪个是训练集,哪个是测试集?如何使用计算结果计算余弦相似度?
feature-extraction - 如何处理 tf-idf 中非常不常见的术语?
我正在实现一个天真的“关键字提取算法”。我是自学成才的,所以我缺乏一些在线文学中常见的术语和数学。
因此,我正在查找文档的“最相关关键字”:
- 我计算每个术语在当前文档中使用的频率。我们称之为tf。
- 我查看了这些术语在整个文档数据库中的使用频率。我们称之为df。
- 我通过r = tf / df计算每个术语的相关权重r。
每个文档都是语料库的适当子集,因此没有文档包含不在语料库中的术语。这意味着我不必担心被零除。
我按它们的r对所有术语进行排序,并保留许多最重要的术语。这些是与本文档最密切相关的顶级关键字。本文档中常用的术语更为重要。在整个文档数据库中通用的术语不太重要。
我相信这是tf-idf的一种幼稚形式。
问题是,当术语在整个数据库中非常罕见但出现在当前文档中时,它们的r值似乎太高了。
由于样本量小,这可以被认为是某种人工制品。弥补这一点的最佳方法或通常方法是什么?
- 丢弃在整个数据库中不常见于某个阈值的术语。如果是这样,该阈值是如何计算的?似乎它取决于太多因素而不能成为硬编码值。
- 可以通过某种数学函数(例如平方反比或余弦)对其进行加权或平滑吗?
我已经尝试在网上搜索并阅读tf-idf,但我发现的大部分内容都是比较文档,我对此并不感兴趣。此外,其中大多数的解释与行话和公式的比例都很低。
(事实上,我的项目是对这个问题的概括。我真的在 Stack Exchange 网站上使用标签,所以术语的总数很少,停用词无关紧要,低使用率的标签可能比低使用率的词更常见在标准情况下。)
java - 如何使用 solrj 获取 solr termVectorComponent 结果
我正在尝试编写此查询;
使用 solrj。
我想得到下面的 tf 和 idf 值;
到现在;
我已经编写了查询,我认为我需要 QueryResponse 对象,我认为这是真的。但我不知道接下来使用solrj
.
谢谢
java - 在 solr 和 java 中计算文档中单词的 TF-IDF
我可以通过计算文档中的 Term 数轻松获得 TF,我想知道如何计算文档频率,即包含该术语的文档数
到目前为止,我已经达到的是使用大量行查询 solr 并计算结果,但这非常耗费时间和内存。我只想计算条款
python - Scipy、tf-idf 和余弦相似度
我正在尝试使用 python 根据 tf-idf 矩阵对一些文档进行聚类。
首先,我遵循公式的维基百科定义,使用标准化的 tf. http://en.wikipedia.org/wiki/Tf-idf
Feat_vectors 以二维 numpy 数组开始,行表示文档,列表示术语,每个单元格中的值是每个文档中每个术语的出现次数。
然后我使用 scipy 对这些向量进行聚类:
但是,在最后一行会引发错误:
余弦相似度从 -1 变为 1。但是,余弦相似度的维基百科页面指出http://en.wikipedia.org/wiki/Cosine_similarity:
在信息检索的情况下,两个文档的余弦相似度范围 > 从 0 到 1,因为词频(tf-idf 权重)不能为负。
因此,如果我得到一个负相似性,我似乎在计算 tf-idf 时犯了一些错误。任何想法我的错误是什么?
php - tf-idf 出错
嗨,我对 tf-idf 有疑问。代码显示:“0”
这是代码:
70 是一个数字,用于替换不存在的变量。
问候
nlp - 文档分类的最佳特征选择算法
我正在做一个文档分类项目。我正在使用 tf-idf 和质心算法。但我需要一本字典,用于使用该算法。我曾尝试获取信息以获取字典,但我认为它还不够满意。你有什么比信息增益更好的特征选择算法的建议吗?