问题标签 [tm]

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 投票
2 回答
478 浏览

r - 使用 r 包 tm() 进行文本挖掘:“if (vectorized && (length <= 0)) 中的错误”

我正在尝试在带有文本的数据框中使用 tm(),但此错误不断出现:"Error in if (vectorized && (length <= 0)) stop("vectorized sources must have positive length") : missing value where TRUE/FALSE needed"

我有一个看起来像这样的数据框:

我只使用这些代码:

有谁知道这里出了什么问题?提前谢谢了!

0 投票
1 回答
367 浏览

r - txt 文件在 R 包 tm 中生成 NA(文本挖掘)

我想阅读一个 txt 文件并做一些文本挖掘方法。当我在 R 中使用 tm 包时,我收到了很多错误消息。例如,如果我想关联最常见的词,我只会得到 NA。这是我到目前为止使用的代码:

之后,我收到以下错误消息:

好的调查,我使用了以下代码,这是 findAssocs() 的逐步方法:

但是,我得到以下输出:

从我的角度来看,文本有问题,但我对这种奇怪的行为没有任何解释。我的问题是,如果有人有解决这个问题的办法。我的 R (2.15.2) 在 Mac 系统 (x86_64-apple-darwin9.8.0/x86_64 (64-bit)) 上运行。

非常感谢!

0 投票
1 回答
2575 浏览

r - R tm 包 DataframeSource 导入

将 CSV 读入 R 并希望使用 tm 包从中制作语料库,但没有得到所需的结果。目前,当我读入 CSV 文本,然后检查语料库时,数据都是数字的。(为了保护隐私,我只包括了前三列data;检查结果显示有九列。)

如果它有助于了解目的:我正在尝试读取名称和未规范化的职位/描述的 csv,然后将已知标题/描述的语料库作为类别进行比较。现在我输入了这个,我意识到这个 csv 将是我的测试/预测数据,但我仍然想从 colnames = KnownJobTitle,Description 的 csv 构建一个语料库。

这个问题的目标是成功地将 CSV 读入语料库,但我也想知道是否建议将 tm 包用于 2 个以上的分类,和/或是否有其他包更适合此任务.

0 投票
1 回答
208 浏览

r - 制作 PlainTextDocuments 的向量

我有这个闭包,它的目的是在传输和扩充元数据时将一个解析PlainTextDocument为几个 child :PlainTextDocument

我可以使用如下:

问题

  • 为什么放在向量中时会secPlainTextDocument对象转换为字符向量?
  • 我怎样才能sectioner返回一个Corpus对象?(PlainTextDocuments 的向量也可以)。

我已经阅读了关于tm. 是的,全部。这不应该那么难。我应该使用其他方法吗?

0 投票
1 回答
6007 浏览

r - 尝试从 DocumentTermMatrix 中删除单词以使用主题模型

因此,我正在尝试将topicmodels包用于R(约 6400 个文档的语料库中的 100 个主题,每个约 1000 个单词)。该进程运行然后死亡,我认为是因为它的内存不足。

所以我尝试缩小lda()函数作为输入的文档术语矩阵的大小;minDocFreq我想我可以在生成文档术语矩阵时使用该函数来做到这一点。但是当我使用它时,它似乎没有任何区别。这是一些代码:

这是相关的代码:

相同的维度和相同的列数(即相同数量的术语)。

任何感觉我做错了什么?谢谢。

0 投票
3 回答
76306 浏览

r - 如何展平列表列表?

tm包扩展,c因此,如果给定一组PlainTextDocuments,它会自动创建一个Corpus. 不幸的是,似乎每个都PlainTextDocument必须单独指定。

例如,如果我有:

我会这样做以获得Corpus

'PlainTextDocument我有一个如下所示的 s列表列表:

因此,要将我的所有PlainTextDocuments 放入 aCorpus中,这将起作用:

有人可以建议一个更简单的方法吗?

ETA:foo<-unlist(foolist, recursive=FALSE)生成一个普通文本文档的平面列表,这仍然给我留下了逐个元素提供列表元素的问题c

0 投票
3 回答
1544 浏览

r - 如何制作 1 亿条推文的 R tm 语料库?

我想使用 R 的分布式计算 tm 包(称为tm.plugin.dc)制作一个包含 1 亿条推文的文本语料库。推文存储在我笔记本电脑上的一个大型 MySQL 表中。我的笔记本电脑很旧,所以我使用的是在 Amazon EC2 上设置的 Hadoop 集群。

CRAN的tm.plugin.dc 文档说目前仅支持 DirSource。该文档似乎表明 DirSource 每个文件只允许一个文档。我需要语料库将每条推文视为文档。我有 1 亿条推文——这是否意味着我需要在旧笔记本电脑上创建 1 亿个文件?这似乎太过分了。有没有更好的办法?

到目前为止我已经尝试过:

  1. 将 MySQL 表的文件转储为单个(大量).sql 文件。将文件上传到 S3。将文件从 S3 传输到集群。使用 Cloudera 的 Sqoop 工具将文件导入 Hive。怎么办?我不知道如何使 DirSource 与 Hive 一起工作。

  2. 在我的笔记本电脑上使每条推文成为 XML 文件。但是怎么做?我的电脑很旧,不能很好地做到这一点。... 如果我能克服这个问题,那么我会: 将所有 1 亿个 XML 文件上传到亚马逊 S3 中的一个文件夹。将 S3 文件夹复制到 Hadoop 集群。将 DirSource 指向该文件夹。

0 投票
2 回答
8395 浏览

r - 如何使用新(测试)数据重新创建相同的 DocumentTermMatrix

假设我有基于文本的训练数据和测试数据。更具体地说,我有两个数据集——训练和测试——它们都有一个包含文本的列,并且对手头的工作很感兴趣。

我使用 R 中的 tm 包来处理训练数据集中的文本列。在删除空格、标点符号和停用词之后,我对语料库进行词干处理,最后创建了一个 1 克的文档术语矩阵,其中包含每个文档中单词的频率/计数。然后,我采用了预先确定的截止值,例如 50,并且只保留那些计数大于 50 的术语。

在此之后,我使用 DTM 和因变量(存在于训练数据中)训练了一个 GLMNET 模型。到目前为止,一切都顺利而轻松。

但是,当我想根据测试数据或未来可能出现的任何新数据对模型进行评分/预测时,我该如何进行?

具体来说,我想找出的是如何在新数据上创建确切的 DTM?

如果新数据集没有任何与原始训练数据相似的单词,那么所有术语的计数都应该为零(这很好)。但我希望能够在任何新语料库上复制完全相同的 DTM(就结构而言)。

有什么想法/想法吗?

0 投票
1 回答
1236 浏览

database - R tm:将“PCorpus”后端文件哈希数据库重新加载为语料库(例如在重新启动的会话/脚本中)

从这个网站上的答案中学到了很多东西(谢谢!),终于是时候问我自己的问题了。

我正在使用 R(tm 和 lsa 包)来创建、清理和简化,然后在大约 15,000 个文本文档的语料库上运行 LSA(潜在语义分析)。我在 Mac OS X 10.6 下的 R 3.0.0 中执行此操作。

为了提高效率(并应对内存太少),我一直在尝试使用 tm 中的“PCorpus”(“filehash”包支持的后端数据库支持)选项,或者更新的“tm.plugin.dc” ' 所谓的“分布式”语料库处理的选项)。但我真的不明白其中任何一个在引擎盖下是如何工作的。

使用带有 tm_map 的 DCorpus 的一个明显错误(现在不相关)导致我使用 PCorpus 选项做一些预处理工作。这需要几个小时。所以我使用 R CMD BATCH 来运行一个脚本,比如:

现在,假设我的脚本在这一点之后很快崩溃,或者我只是忘记以其他形式导出语料库,然后我重新启动 R。数据库仍然在我的硬盘上,充满了整理得很好的数据。当然,我可以将它重新加载回新的 R 会话,继续进行语料库处理,而不是重新开始?

感觉就像一个面条问题......但没有多少 dbInit() 或 dbLoad() 或“PCorpus()”函数的变体似乎有效。有谁知道正确的咒语?

我已经搜索了所有相关文档,以及我能找到的所有论文和网络论坛,但完全是空白 - 似乎没有人这样做。还是我错过了?

0 投票
2 回答
4038 浏览

r - 如何设置术语频率绑定以提取新术语文档矩阵?

我有一个术语文档矩阵(16,977 个术语,29,414 个文档):

为了进一步分析,我将术语数限制为 2,425。例如,如何通过包含频率超过 20 的术语来生成新的术语文档矩阵?

由于矩阵很大,as.matrix不能应用传统方法。