问题标签 [term-document-matrix]
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.
r - R文本挖掘包DocumentTermMatrix在控制列表中有一个字典占用太多内存
我注意到它DocumentTermMatrix(myCorpus, control=list(dictionary=myDict))
消耗的内存比DocumentTermMatrix(myCorpus)
为什么会这样?
有什么线索吗?
这是代码片段:
现在这是我的问题:
我猜有内存泄漏和可能的错误。
r - R tm 包创建N个最常见术语的矩阵
我使用R 中的包termDocumentMatrix
创建了一个。tm
我正在尝试创建一个包含 50 个最常出现的术语的矩阵/数据框。
当我尝试转换为矩阵时,出现此错误:
所以我尝试使用 Matrix 包转换为稀疏矩阵:
我尝试使用以下方法访问 tdm 的不同部分:
这是其他一些信息:
我的理想输出是这样的:
有什么建议么?
matlab - MATLAB nnmf() - 大型术语文档矩阵 - 内存和速度问题
我有一个很大的术语文档矩阵,想使用 matlab 提供的非负矩阵分解函数。问题是在第 1 次迭代之后,内存使用率迅速上升并达到顶峰(我的系统有 6GB),另一方面,CPU 使用率水平变得非常低(大约 1%-5%)。整个系统的行为就像它已经崩溃一样,只有等待很长时间才能完成第二次迭代。(请注意,要获得好的结果需要更多的迭代)。
问题:
如果有人对此有任何经验,或者使用比我更大的矩阵运行 nnmf(),我真的很想知道他/她实际上是如何克服上述问题的。
另外:我用较小的矩阵(大约 7000x1800)完成了这个,没有问题。我使用稀疏矩阵是因为术语文档矩阵有很多零元素,这有助于减少需要存储的空间。例如,在我的情况下,术语文档矩阵具有14608 * 18828 = 275039424
元素和sum(sum(spa~=0)) = 1312582
非零元素:
statistics - PCA中通过term document matrix构造的协方差矩阵有什么意义?
我正在研究神经网络,为了减少通过文档构造的术语-文档矩阵的维度以及其中包含 tf-idf 值的各种术语,我需要应用 PCA。像这样的东西
PCA 的工作原理是获取数据的平均值,然后减去平均值,然后对协方差矩阵使用以下公式
令矩阵 M 为维度为 NxN 的术语-文档矩阵
协方差矩阵变为
然后我们计算特征值和特征向量作为神经网络中的特征向量。我无法理解的是协方差矩阵的重要性以及它找到协方差的维度。
因为如果我们考虑简单的二维 X,Y,就可以理解。这里关联了哪些维度?
谢谢
r - 使用 tm_map(..., tolower) 将文本转换为小写时出错
我尝试使用tm_map
. 它给出了以下错误。我怎样才能解决这个问题?
node.js - 如何有效地计算文档流中文档之间的相似度
我收集文本文档(在 Node.js 中),其中一个文档i
表示为单词列表。考虑到新文档以文档流的形式出现,计算这些文档之间相似度的有效方法是什么?
我目前对每个文档中单词的归一化频率使用 cos-similarity。由于可扩展性问题,我不使用 TF-IDF(词频,逆文档频率),因为我获得了越来越多的文档。
最初
我的第一个版本是从当前可用的文档开始,计算一个大的 Term-Document 矩阵A
,然后计算S = A^T x A
(S(i, j)
在通过norm(doc(i))
和归一化之后norm(doc(j))
)文档之间的 cos-similarityi
以及j
其词频分别为doc(i)
和doc(j)
。
对于新文件
收到新文件时该怎么办doc(k)
?好吧,我必须计算这个文档与之前所有文档的相似度,这不需要构建整个矩阵。我可以取doc(k) dot doc(j)
所有之前的内积j
,结果是S(k, j)
,这很好。
麻烦
S
Node.js 中的计算真的很长。实在是太长了!所以我决定创建一个 C++ 模块,它可以更快地完成整个事情。确实如此!但我等不及了,我应该能够使用中间结果。而我所说的“不等待”的意思是一个。等待计算完成,但也
b。等待构建矩阵A
(这是一个大矩阵)。计算 new
S(k, j)
可以利用这样一个事实,即文档中的单词比所有给定单词的集合(我用来构建整个矩阵A
)少得多。因此,在 Node.js 中执行此操作看起来更快,避免占用大量额外资源来访问数据。
但是有没有更好的方法来做到这一点?
注意:我开始计算的原因S
是我可以轻松地A
在 Node.js 中构建,在那里我可以访问所有数据,然后在 C++ 中进行矩阵乘法并将其返回到 Node.js 中,这大大加快了整个过程. 但现在计算S
变得不切实际,它看起来毫无用处。
注2:是的,我不必计算整体S
,我可以只计算右上角的元素(或左下角的元素),但这不是问题。时间计算问题不是这个顺序。
r - 每项频率 - R TM DocumentTermMatrix
我对 R 很陌生,不能完全理解 DocumentTermMatrixs。我有一个使用 TM 包创建的 DocumentTermMatrix,其中包含术语频率和术语,但我不知道如何访问它们。
理想情况下,我想:
目前我的代码是:
这是 str(dtm) 的输出
谢谢,
-一个
nlp - TF-IDF 是否存在比使用词频向量更糟糕的情况?
我现在正在做文本分类。TF-IDF 是否存在比使用词频向量更糟糕的情况?怎么解释?谢谢
python - 使用 NLTK 的高效术语文档矩阵
我正在尝试使用 NLTK 和 pandas 创建一个术语文档矩阵。我写了以下函数:
运行它
它适用于语料库中的几个小文件,但是 当我尝试使用包含 4,000 个文件(每个大约 2 kb)的语料库运行它时,它给了我一个MemoryError 。
我错过了什么吗?
我正在使用 32 位 python。(我在 Windows 7、64 位操作系统、Core Quad CPU、8 GB RAM 上)。我真的需要为这种大小的语料库使用 64 位吗?
python - 使用 python 从 csv 读取术语文档矩阵
经典 csv 阅读器不适用于术语文档数组的原因是 csv 文件的第一列是术语,而不是值。因此,该文件具有以下语法:
我需要构建一个字典,其键是 label1、label3 等...而值是列向量(这里是:dict[label1]-> 1,0、dict[label2] -> 0,0 等) ,这意味着这些术语对我来说完全没用。
我已经实现了一个自定义解决方案,如下所示:
然而,用我的笔记本电脑读取 8 个 csv 文件(总计:12MB)需要 90 多分钟。
有谁知道更有效的方法来处理这个问题?