从DocumentTermMatrix创建概率矩阵

时间:2014-10-31 14:05:09

标签: text matrix transition n-gram markov

我是经济学家,现在我正在分析一些定性和文本数据。这对我来说是新的。

我想根据我的访谈语料库为文本预测创建马尔可夫模型。我用tm包分析了一个语料库,在用bigrams(单词对)创建DocumentTermMatrix和TermDocumentMatrix(等效)后,我想计算每对单词的概率矩阵,以便用它进一步进行马尔可夫链预测。所以,我从http://www.salemmarafi.com/code/twitter-naive-bayes/

尝试了这件作品
probabilityMatrix <-function(docMatrix)
{
  # Sum up the term frequencies
  termSums<-cbind(colnames(as.matrix(docMatrix)),as.numeric(colSums(as.matrix(docMatrix))))
  # Add one
  termSums<-cbind(termSums,as.numeric(termSums[,2])+1)
  # Calculate the probabilties
  termSums<-cbind(termSums,(as.numeric(termSums[,3])/sum(as.numeric(termSums[,3]))))
  # Calculate the natural log of the probabilities
  termSums<-cbind(termSums,log(as.numeric(termSums[,4])))
  # Add pretty names to the columns
  colnames(termSums)<-c("term","count","additive","probability","lnProbability")
  termSums
   } 

但我确信这不是解决我问题的正确方法,因为这段代码计算每对的频率,但不考虑从一个单词到另一个单词的转换概率。我也看到在phyton中有一些文本预测算法的实现,也在Java中(参见github),但是我无法将其转换为R.有些人有一段代码来执行这种分析R或知道直接执行它的包?

提前致谢

0 个答案:

没有答案