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

0 投票
1 回答
86 浏览

r - 无法在 Document-Term-Matrix 中看到 `RTextTools::toLower()` 文本的结果

我尝试创建一个矩阵,为此我想降低文本。为此,我使用此 R 指令:

这里的R代码:

我说的问题是矩阵中有大写字母的单词。

你能解释一下为什么我会遇到这个问题吗?

谢谢

0 投票
1 回答
7282 浏览

python - 如何计算术语文档矩阵?

我知道术语文档矩阵是一个数学矩阵,它描述了文档集合中出现的术语的频率。在文档-词条矩阵中,行对应于集合中的文档,列对应于词条。

我正在使用sklearn 的 CountVectorizer从字符串(文本文件)中提取特征以简化我的任务。以下代码根据sklearn_documentation返回一个术语文档矩阵

输出如下我没有得到这个矩阵是如何计算的。请讨论代码中显示的示例。我从维基百科上又读了一个例子,但无法理解。
输出

0 投票
1 回答
390 浏览

r - 为什么我错过了术语文档矩阵中的最后一个字母?

我是 R 新手,我正在尝试使用 csv 文件创建术语文档矩阵。但结果显示,有些单词最后漏掉了字母“e”。如何使术语文档矩阵显示完整的单词?如果您在看到看起来不正确的部分时也能告诉我,那就太好了。谢谢!

以下是我在这里看到的文件结果中的一些单词。

导致
停机
故障
中断
无法访问

0 投票
1 回答
279 浏览

r - 如何从 TDM 中删除 NA 列以进行聚类

我正在努力使用 TDM NA 值来提交集群。最初我已经设置:

得到了 418 个术语和 6955 个文档的矩阵。此时执行: titles.km <- kmeans(titles.sc, 2)throws Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)

当我决定通过以下方式删除这些值时:

titles.sf <- titles.sc[,colSums(titles.sc) > 0]

我有 4695 个文档的矩阵,但应用该kmeans函数仍然会引发此错误。当我查看titles.sf变量时,仍然有具有 NA 值的列(文档)。我搞砸了,不知道做错了什么。如何删除那些文件?

早些时候,我已经应用titles.cw <- titles.cc[which(str_trim(titles.cc$content) != "")]where titles.ccis pure Corpus object from tmlibrary 类来删除黑色文档。它可能有效,但我的 NA 值在肯定不是空白的文档中。

0 投票
2 回答
84 浏览

r - 保留数据频率的所有文本短语

我有一个只有一列“文本”的数据框

我想用每个短语的频率获取一个数据框,如下所示:

为了做到这一点,我使用了这个:

但是当我检查结果时,MatrixDtop30我看到一个单词被认为是user,1interface,1而不是看到"user interface",1

知道为什么会这样吗?

0 投票
1 回答
2447 浏览

python - 从文档列表构建文档术语矩阵,每个文档都是列表形式

我想知道是否存在将文档列表转换为文档术语矩阵的优雅方法。这样做的动机是需要对文档中的术语进行细微的转换,即词干。输入数据就像

输出数据应该是矩阵或任何可以轻松转换为 numpy.array 的数据类型。就像:

我现在拥有的是加入外部列表中的每个元素,然后CountVectorizersklearn.feature_extraction.text. 但是对于大型语料库这样做是低效的。

有什么建议么?谢谢你。

0 投票
3 回答
1689 浏览

scikit-learn - 将新文档添加到术语文档矩阵以进行相似度计算

所以我知道有几种方法可以在文档语料库中找到最相似或说三个最相似的文档。我知道可能存在扩展问题,目前我有大约一万个文档,并且已经在大约 30 个子集上运行测试。这是我现在所拥有的,但如果这被证明是不可能或效率低下,我正在考虑研究 elasticsearch 或 doc2vec。

到目前为止,这些脚本运行良好,它们使用 spaCy 对文本进行标记,并使用 Sklearn TfidfVectorizer 来适应所有文档,并且发现了非常相似的文档。我注意到从管道中出来的 NumPy 对象的形状是 (33, 104354),这可能意味着 104354 词汇不包括所有 33 个文档中的停用词。这一步需要运行 20 分钟,但下一步是计算所有余弦相似度的矩阵乘法非常快,但我知道它可能会减慢,因为该矩阵得到数千行而不是 30 行。

如果您可以有效地将新文档添加到矩阵中,那么如果您保存了该计算的结果,那么初始计算是否需要十个小时甚至几天都没有关系。

  1. 当我在 . 矢量化器上似乎有一种方法称为vectorizer.fixed_vocabulary_. 我在谷歌或 SKlearn 中找不到这种方法。无论如何,当我运行该方法时,它会返回False. 有谁知道这是什么?我认为如果可能的话修复词汇表可能很有用,否则将新文档添加到术语文档矩阵可能会很麻烦,尽管我不确定如何做到这一点。

有人在这里问了一个类似的问题,该问题得到了投票,但没有人回答。

他写了:

对于新文档,当我获得新文档 doc(k) 时我该怎么办?好吧,我必须计算这个文档与之前所有文档的相似度,这不需要构建整个矩阵。我可以对所有先前的 j 取 doc(k) dot doc(j) 的内积,得到 S(k, j),这很好。

  1. 有没有人完全理解他在这里的意思,或者有任何好的链接来解释这个相当晦涩的话题?他是对的吗?我不知何故认为,如果他是对的,那么用这个内积添加新文档的能力将取决于修复上面提到的词汇表。
0 投票
1 回答
277 浏览

r - 如何在 R 中将 TermDocumentMatrix 用于波斯文本?

我想查看文档中的词频,我的文档包含波斯语文本。我使用 R 如下:

尽管此代码适用于英文文本,但不幸的是它不适用于波斯文本。我怎样才能做到这一点?

0 投票
1 回答
1452 浏览

r - 在 R 中使用带有“字典”参数的 DocumentTermMatrix

我想使用 R 进行文本分类。我使用 DocumentTermMatrix 返回单词的矩阵:

第一项inspect(dtm)工作符合预期的结果:

但第二个inspect(test)显示了这个结果:

虽然预期的结果是:

它是一个错误还是我使用错误的方式?

0 投票
1 回答
112 浏览

r - R文本挖掘 - 转换术语文档矩阵

我使用以下方法创建了一个二元组列表:

我正在尝试计算每个二元组出现的文档数量。如果我理解正确,术语文档矩阵将给出每个二元组在文档中出现的次数。但我只需要'1'-存在于文档中,'0'-不存在。

如何将术语文档矩阵转换为数据框或矩阵以获得这样的计数?