Восстановление текста с использованием R - PullRequest
3 голосов
/ 01 ноября 2010

Я использую пакет интеллектуального анализа текста R, и это действительно отличный инструмент. Я не нашел поддержку поиска или, возможно, некоторые функции, которые мне не хватает. Как реализовать простую модель VSM с помощью пакета интеллектуального анализа текста R?

Ответы [ 2 ]

1 голос
/ 02 ноября 2010
# 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))})
0 голосов
/ 01 ноября 2010

Предполагая, что VSM = Vector Space Model, вы можете использовать простую поисковую систему следующим образом:

  • Создайте матрицу условий документа из вашей коллекции / корпуса
  • Создайте функцию для вашего показателя сходства (Jaccard, Euclidean и т. Д.). Есть пакеты, доступные с этими функциями. RSiteSearch должен помочь в их поиске.
  • Преобразование вашего запроса в матрицу условий документа (которая будет иметь 1 строку и отображается с использованием того же словаря, что и для первого шага)
  • Вычислить сходство с запросом и матрицей из первого шага.
  • Оцените результаты и выберите верхний номер.

Не-R метод заключается в использовании индекса GINI для текстового столбца (строки - документы) таблицы в PostgreSQL. Используя методы запросов ts_vector, вы можете получить очень быструю систему поиска.

...