如何从一组文本和一组特定术语(标签)构建Term-Document-Matrix?

时间:2013-10-31 11:56:41

标签: r term-document-matrix

我有两组数据:

  • 一组标签(单个字,如phphtml等)

  • 一组文本

我现在希望构建一个Term-Document-Matrix,表示tags元素中text元素的出现次数。

我查看了R library tmTermDocumentMatrix函数,但我没有看到将标记指定为输入的可能性。

有办法吗?

我对任何工具(R,Python,其他)都持开放态度,尽管使用R会很棒。


让我们将数据设置为:

TagSet <- data.frame(c("c","java","php","javascript","android"))
colnames(TagSet)[1] <- "tag"

TextSet <- data.frame(c("How to check if a java file is a javascript script java blah","blah blah php"))
colnames(TextSet)[1] <- "text"

现在我想根据TagSet获得TextSet的TermDocumentMatrix。

我试过了:

myCorpus <- Corpus(VectorSource(TextSet$text))
tdm <- TermDocumentMatrix(myCorpus, control = list(removePunctuation = TRUE, stopwords=TRUE))


>inspect(tdm)
A term-document matrix (7 terms, 2 documents)

Non-/sparse entries: 8/6
Sparsity           : 43%
Maximal term length: 10 
Weighting          : term frequency (tf)

            Docs
Terms        1 2
  blah       1 2
  check      1 0
  file       1 0
  java       2 0
  javascript 1 0
  php        0 1
  script     1 0

但是这是根据文本的单词检查文本,而我想检查已经定义的标签的存在。

2 个答案:

答案 0 :(得分:10)

tdm.onlytags <- tdm[rownames(tdm)%in%TagSet$tag,]

仅选择指定的字词,然后继续进行分析。

答案 1 :(得分:2)

DocumentTermMatrix(docs, list(dictionary = Dictionary$Var1)) 

您可以使用set标签预先定义字典