【发布时间】:2011-05-03 11:57:51
【问题描述】:
我一直在使用 R 的文本挖掘包,它确实是一个很棒的工具。我还没有找到检索支持,或者我缺少某些功能。 如何使用 R 的文本挖掘包实现一个简单的 VSM 模型?
【问题讨论】:
-
请提供有关 VSM 模型的一些背景信息。
标签: r information-retrieval text-mining vsm tf-idf
我一直在使用 R 的文本挖掘包,它确实是一个很棒的工具。我还没有找到检索支持,或者我缺少某些功能。 如何使用 R 的文本挖掘包实现一个简单的 VSM 模型?
【问题讨论】:
标签: r information-retrieval text-mining vsm tf-idf
假设 VSM = 向量空间模型,您可以通过以下方式构建一个简单的检索系统:
一种非 R 方法是在 PostgreSQL 中的表的文本列(行是文档)上使用 GINI 索引。使用 ts_vector 查询方法,您可以拥有一个非常快速的检索系统。
【讨论】:
# Sample R commands in support of my previous answer
require(fortunes)
require(tm)
sentences <- NULL
for (i in 1:10) sentences <- c(sentences,fortune(i)$quote)
d <- data.frame(textCol =sentences )
ds <- DataframeSource(d)
dsc<-Corpus(ds)
dtm<- DocumentTermMatrix(dsc, control = list(weighting = weightTf, stopwords = TRUE))
dictC <- Dictionary(dtm)
# The query below is created from words in fortune(1) and fortune(2)
newQry <- data.frame(textCol = "lets stand up and be counted seems to work undocumented")
newQryC <- Corpus(DataframeSource(newQry))
dtmNewQry <- DocumentTermMatrix(newQryC, control = list(weighting=weightTf,stopwords=TRUE,dictionary=dict1))
dictQry <- Dictionary(dtmNewQry)
# Below does a naive similarity (number of features in common)
apply(dtm,1,function(x,y=dictQry){length(intersect(names(x)[x!= 0],y))})
【讨论】: