在 R 中创建文档术语矩阵

Creating a document term matrix in R

我需要为我自己、我的 Twitter 关注者和他们的关注者创建一个 documenttermmatrix。

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

目前,我们有以下变量:

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

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

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

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

followers :包含我所有关注者的列表。 (需要 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,但这段代码需要在今晚之前运行。 我希望你们能帮助我,因为我真的没有想法:(

提前致谢

使用 R 包 tm,您可以选择创建 DocumentTermMatrix

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

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

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

 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