Интеллектуальный анализ текста с использованием R для подсчета частоты слов

Я хочу посчитать появление слова «неопределенность», но только если «экономическая политика» или «законодательство» или слова, относящиеся к политике, встречаются в одном и том же тексте. Прямо сейчас я выпустил код на R для подсчета частоты всех слов в тексте, но он не распознает, встречаются ли подсчитанные слова в правильном контексте. Есть ли у вас предложения, как это исправить?

library(tm) #load text mining library
setwd('D:/3_MTICorpus') #sets R's working directory to near where my files are
ae.corpus<-Corpus(DirSource("D:/3_MTICorpus"),readerControl=list(reader=readPlain))
summary(ae.corpus) #check what went in
ae.corpus <- tm_map(ae.corpus, tolower)
ae.corpus <- tm_map(ae.corpus, removePunctuation)
ae.corpus <- tm_map(ae.corpus, removeNumbers)
myStopwords <- c(stopwords('english'), "available", "via")
ae.corpus <- tm_map(ae.corpus, removeWords, myStopwords) # this stopword file is at C:\Users\[username]\Documents\R\win-library\2.13\tm\stopwords 
#library(SnowballC)
#ae.corpus <- tm_map(ae.corpus, stemDocument)

ae.tdm <- DocumentTermMatrix(ae.corpus, control = list(minWordLength = 3))
inspect(ae.tdm)
findFreqTerms(ae.tdm, lowfreq=2)
findAssocs(ae.tdm, "economic",.7)
d<- Dictionary (c("economic", "uncertainty", "policy"))
inspect(DocumentTermMatrix(ae.corpus, list(dictionary = d)))

person stochastiq    schedule 19.12.2013    source источник
comment
Не удалось обновить stackoverflow.com / questions / 20673143 /?   -  person Freddy    schedule 19.12.2013
comment
Как вы определяете «тот же текст»? Предложение, абзац, книга, файл? Кроме того, вы можете загрузить небольшую часть «D: / correctory» в PasteBin и сделать этот пример воспроизводимым, что означает, что любой может запустить код и попытаться найти для вас ответ: stackoverflow.com/questions/5963269/   -  person Mikko    schedule 19.12.2013
comment
@Freddy Спасибо за советы! Один и тот же текст означает одну и ту же газетную статью, которую я буду отличать друг от друга, сделав одну статью, один абзац.   -  person stochastiq    schedule 19.12.2013


Ответы (1)


Вы можете преобразовать матрицу термодокумента в матрицу со значениями 0/1

dtm$v[dtm$v > 0] <- 1

dtm <- as.matrix(dtm)

и тогда вы можете легко использовать table

table(tdm[which(rownames(tdm)=='uncertainty'),], tdm[which(rownames(tdm)=='economic_policy'),])

что должно дать что-то вроде этого:

     0  1
  0 105  13
  1  7  5
person Zbynek    schedule 19.12.2013