我有两组数据:
一组标签(单个字,如php
,html
等)
一组文本
我现在希望构建一个Term-Document-Matrix,表示tags
元素中text
元素的出现次数。
我查看了R library tm和TermDocumentMatrix
函数,但我没有看到将标记指定为输入的可能性。
有办法吗?
我对任何工具(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
但是这是根据文本的单词检查文本,而我想检查已经定义的标签的存在。
答案 0 :(得分:10)
tdm.onlytags <- tdm[rownames(tdm)%in%TagSet$tag,]
仅选择指定的字词,然后继续进行分析。
答案 1 :(得分:2)
DocumentTermMatrix(docs, list(dictionary = Dictionary$Var1))
您可以使用set标签预先定义字典