问题标签 [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.

0 投票
0 回答
133 浏览

xml - 在 DOM 树中标记兄弟的内容

我有一个计划以后序方式遍历 dom 树,然后当它遍历每个深度的兄弟姐妹时,对于每个兄弟组,我想获取它的文本内容中的元素数量。为了清楚起见,让我们看一个例子:

例如,我想找出 data 1 和 data2 的字符数以及 data3-5 togetehr 的字符数。这是我到目前为止编写的用于遍历树并计算 TFIDF 值的代码,但正如我所提到的,我想分别找到每组兄弟姐妹的 TF,有什么线索吗?提前致谢

ps:出于某种原因,我手动假设计算中的文档数为4。

0 投票
2 回答
317 浏览

javascript - 哪个更省时?文件存储或 SQLite

我正在开发一个 Firefox 扩展,用作用户分析和网络个性化引擎。它需要存储网页的TF-IDF相关数据。我的问题是,哪个会产生更快的简单搜索结果?

一种。使用自定义数据结构并将整个数据结构存储在文件中,将其加载到内存并进行查询?

或者

湾。存储和查询 SQLite 数据库中的数据?

可以安全地假设其中一个表中有大约 250,000 行的最坏情况。

0 投票
2 回答
5259 浏览

mysql - 如何在 MySQL 中标记字符串?

我的项目是从一组人手动创建的平面 Excel 文件中导入一个相当大的集合 +500K 行数据。现在的问题是,这一切都需要标准化,以供客户搜索。例如,公司字段将有多个公司拼写并包括分支,例如“IBM”,然后是“IBM Inc.”。和“IBM Japan”等。另外,我有一些字母数字的产品名称,例如“A46-Rhizonme Pentahol”,单靠 SOUNDEX 无法处理

从长远来看,我可以通过使用AJAX auto-suggest的 Web 表单输入所有数据来解决这个问题。然而,在那之前,我仍然需要处理大量现有数据的收集。根据我在这里读到的内容,这让我想到了我认为是一个很好的过程:

http://msdn.microsoft.com/en-us/magazine/cc163731.aspx

创建自定义模糊逻辑查找和模糊逻辑分组的步骤

  1. 项目清单
  2. 将字符串标记为关键字
  3. 计算关键字 TF-IDF(总频率 - 逆文档频率)
  4. 计算关键字之间的levenshtein距离
  5. 计算可用 alpha 字符串的 Soundex
  6. 确定关键字的上下文
  7. 根据上下文将关键字放入单独的数据库表中,例如“Companies”、“Products”、“Ingredients”

我一直在谷歌搜索、搜索 StackOverflow、阅读 MySQL.com 讨论等关于这个问题,试图找到一个预建的解决方案。有任何想法吗?

0 投票
0 回答
369 浏览

solr - 考虑到与每个文档相关的标签权重,如何按标签排序?

我正在建立一个 Solr 搜索引擎来搜索 300k 文档集合。在众多的索引字段中,一个重要的就是标签。我的想法是为每个文档分配一个标签向量,每个标签都有给定的权重(基本上取决于为该文档选择该标签的用户数量)。例如

Doc1 = {tag1:0.3, tag2:0.7, tag3:0.8, tag4:1}

Doc2 = {tag2:0.5, tag3:0.8, tag4:0.8, tag5=0.9}

使用此示例,当有人要求使用 tag4 标记的文档时,我当然会返回两个文档,但 Doc1 得分最高,因为它的 tag4 权重更高。

理想情况下,在 Solr 上实现此功能的方法类似于创建一个称为“标签”的多值字段,并在索引时为此类字段中包含的每个标签分配权重。所以,第一个问题:

是否可以在索引时手动分配词频(作为标签权重)?

根据我的发现……似乎不是!好的...一种解决方法是在 Doc1 的标签字段上复制例如 tag4 10 次,在 Doc2 的标签字段上仅复制 8 次。当然也有一些缺点和限制。

然而,即使有解决方法,我也无法解决更大的问题。我想定义我自己的分数。更适合我的具体情况的是 sort=tf(tags,tag4)。事实上,在这种情况下,TF 比 IDF 重要得多!不幸的是,这个功能(相关函数)将在 Solr 4 中发布:http ://wiki.apache.org/solr/FunctionQuery#tf

您是否知道如何更改 Solr 3.5 中的评分功能,更加重视 TF 而减少 IDF?

是否有任何黑客可以简单地做到这一点,或者您会更改 Lucene 源代码(如果是...什么和在哪里?),或者您会使用 Solr4 夜间构建?

提前感谢您的建议!

0 投票
0 回答
1254 浏览

dataset - 如何将文档列表转换为 TF-IDF 向量?

我想从存储在许多文件夹中的文档列表中构造Document x Word矩阵。矩阵中的特定条目x表示word_j在document_i中出现x次。Vocabulary.txt 文件中给出了要考虑的单词列表。 是否有任何现有的软件包可以逐一扫描文档,删除停用词并构建文档向量?

0 投票
2 回答
399 浏览

java - 句子的转移概率矩阵计算

我将句子存储为从文档中提取的字符串。我想将标准余弦相似度应用于句子。我该怎么做呢?

0 投票
2 回答
5850 浏览

python - TF-IDF是如何在python的gensim工具中实现的?

从我从网上找到的文档中,我找出了用于确定语料库中术语的术语频率和逆文档频率权重的表达式

tf-idf(wt)= tf * log(|N|/d);

我正在经历 gensim 中提到的 tf-idf 的实现。文档中给出的示例是

这显然不遵循 Tf-IDF 的标准实现。两种型号有什么区别?

注意:0.70710678 是 2^(-1/2) 的值,通常用于特征值计算。那么特征值是如何进入 TF-IDF 模型的呢?

0 投票
1 回答
1208 浏览

python - 在 python 中使用余弦相似度返回与查询文档相比最相似的文档

我有一组文件和一个查询文档。我的目的是通过与每个文档的查询文档进行比较来返回最相似的文档。要首先使用余弦相似度,我必须将文档字符串映射到向量。而且我已经创建了一个计算每个文档的 tf-idf 函数。

为了获得字符串的索引,我有一个这样的函数;

对于余弦相似性,我的功能是;

TF-IDF 是 ;

我的问题是如何通过使用索引和词汇列表以及该函数内部的 tf-idf 创建 makevector。欢迎任何答案。

0 投票
2 回答
934 浏览

lucene - 使用 Lucene / Mahout 在预定义的文档组中查找定义术语

我有一组文档,分为好类和坏类。我希望能够预测新文档将属于哪个类别。我正在研究的一件事是找到最能定义每个类别的术语并在新文档中查找这些术语。

不久前,当我了解 TF-IDF 时,我正在使用 Lucene 术语向量进行 Mahout 聚类。在我看来,我正在寻找的是类似的东西,我会从一个类别中找到 TermFrequency,然后在另一个类别中应用这些术语的 InverseDocumentFrequency。

有谁知道找到在其中一个组中唯一定义文档而不是另一个组中唯一定义文档的术语的最佳方法?

0 投票
3 回答
2906 浏览

java - Mahout TFIDF 字典文件

我正在尝试按照本指南使用 mahout 对一组文档(作为文本文件)执行 TFIDF 进行计算。

我已经成功创建了字典和向量权重,现在正尝试访问输出。在指南中它说您“例如可以轻松地将生成的字典文件的内容加载到 Map 中,其中令牌索引作为键,令牌作为值。”

我不确定如何按照他的建议将此文件加载到地图中,有人知道它是如何完成的吗?

我从一个文本文件目录创建了我的向量,我在运行“./mahout seq2sparse...”时遇到的一个问题是控制分析器的 -a 标志 - 它应该是 lucene 的 StandardAnalyzer。尝试使用此标志运行时,我收到了 ClassNotFoundException,但删除标志解决了问题,我认为默认分析器也是这个,因此输出应该与示例相同。

如果有人知道如何将这本词典加载到地图中,我将永远感激不尽!

詹姆士