1

我需要为自己、我的 Twitter 关注者和他们的关注者创建一个文档术语矩阵。

我们需要在不使用 tm 包的情况下创建它。

目前,我们有以下变量:

list l:包含所有关注者的关注者,每个关注者存储(包括我自己和我自己的关注者)

lunique1:列表 l 的未列出和排序版本,它包含所有关注者的关注者

matrix:我们创建的具有以下维度的矩阵:

matrix <- matrix(, nrow=length(followers)+1, ncol = length(lunique1))

追随者:包含我所有追随者的列表。(需要 nrow 中的加一 = length(followers)+1 才能将自己包含在维度中

这是我用于创建 documentTermMatrix 的代码(一个仅包含值 0 和 1 的矩阵,以显示谁与谁相关联)

    for(x in 1 : length(followers)+1)
{
  for(y in 1:length(l[x]))
  {
    for(z in lunique1)
    {

      if(lunique1[z] == l[[x]][y]) 
      {
        matrix[y][z] = 1
      }
      else
        matrix[y][z] = 0

    }}}

我(还)没有在 R 方面有经验,但这段代码需要在今晚之前工作。我希望你们能帮助我,因为我真的没有想法:(

提前致谢

4

3 回答 3

0

使用 R-package tm,您可以选择创建一个DocumentTermMatrix

这种方法应该比你的循环构造更方便。

于 2015-03-18T09:37:22.880 回答
0

我们已经用以下代码自己解决了这个问题

 lunique <- unique(unlist(l))
lunique1 <- sort(lunique)
matrix <- matrix(, nrow=length(followers)+1, ncol = length(lunique))
n = 1
m = 1
for(n in 1:length(l))
{
for(m in 1:length(l[[n]]))
{
h <- grep(l[[n]][m], lunique1)
if (length(h>0))
{
matrix[n,h]=1
} else {
matrix[n,h]=0
}
h <- c()
} 
}
matrix <- replace(matrix, is.na(matrix), 0)
adjacency <- t(matrix)%*%matrix
于 2015-03-18T12:28:12.620 回答
0

有一种方法可以在没有 tm 包的情况下创建文档术语矩阵,下面的这个链接有一个过程。您可以使用类似的方法 这是链接

于 2015-03-18T09:49:42.710 回答