Доступ к определенным элементам из уникальных слов / терминов в документе - PullRequest
0 голосов
/ 05 октября 2018

этот код дает вывод в виде матрицы.Но здесь следует избегать повторяющихся слов, таких как is,am, i.Я просто хочу матрицу, содержащую cool ,mark и neo4j.Я пытался с grep("cool",tdm).Это не работает здесь.Есть ли альтернативный метод?

output: tdm
       Docs
Terms   1 2
  am    2 0
  cool  0 2
  i     2 0
  is    0 2
  mark  2 0
  neo4j 0 2

1 Ответ

0 голосов
/ 05 октября 2018

Небольшой пример кода на основе вашего примера.

library(tm)
text <- c("I am Mark I am Mark", "Neo4j is cool Neo4j is cool")
corpus <- VCorpus(VectorSource(text))

# wordLengths set to 3, basicly the default removes all words of length 1 and 2
tdm <- TermDocumentMatrix(corpus, control = list(wordLengths = c(3, Inf)))
as.matrix(tdm)

# only words cool and mark
# create a dictionary
my_dict <- c("cool", "mark")
tdm <- TermDocumentMatrix(corpus, control = list(dictionary = dict ))
as.matrix(tdm)
      Docs
Terms  1 2
  cool 0 2
  mark 2 0

Будьте осторожны с простым преобразованием матриц терминов документа в нормальную матрицу.Это может израсходовать много памяти, если у вас много текста.

Но, глядя на ваши вопросы, вам нужно ознакомиться с анализом текста.

Вот начало с tidy text-mining

Вот информация о интеллектуальном анализе текста с quanteda

И прочитайте виньетка tm

И, конечно, ищите ТАК для примеров.Многое уже было так или иначе получено.

...