Анализ настроений в R с использованием TDM / DTM - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь применить анализ настроений в R с помощью моего DTM (матрица терминов документа) или TDM (матрица терминов документа).Я не мог найти аналогичные темы на форуме и в Google.Таким образом, я создал корпус, и из этого корпуса я сгенерировал значение dtm / tdm в R. Мой следующий шаг - применить анализ настроений, который мне понадобится позже, для прогнозирования запасов через SVM.Я даю следующий код:

    dtm <- DocumentTermMatrix(docs)
    dtm <- removeSparseTerms(dtm, 0.99)
    dtm <- as.data.frame(as.matrix(dtm))

    tdm <- TermDocumentMatrix(docs)
    tdm <- removeSparseTerms(tdm, 0.99)
    tdm <- as.data.frame(as.matrix(tdm))

Я прочитал, что это возможно через пакет tidytext с помощью функции get_sentiments ().Но было невозможно применить это с DTM / TDM.Как я могу выполнить анализ настроений для моих очищенных фильтрующих слов, которые уже определены, токены и т. Д.?Я видел, что многие люди делали анализ настроений для пробного предложения, но я хотел бы применить его к моим отдельным словам, чтобы увидеть, являются ли они положительными, отрицательными, оценками и т. Д. Большое спасибо заранее!

1 Ответ

1 голос
/ 09 июня 2019

SentimentAnalysis имеет хорошую интеграцию с tm.

library(tm)
library(SentimentAnalysis)

documents <- c("Wow, I really like the new light sabers!",
               "That book was excellent.",
               "R is a fantastic language.",
               "The service in this restaurant was miserable.",
               "This is neither positive or negative.",
               "The waiter forget about my dessert -- what poor service!")

vc <- VCorpus(VectorSource(documents))
dtm <- DocumentTermMatrix(vc)

analyzeSentiment(dtm, 
  rules=list(
    "SentimentLM"=list(
      ruleSentiment, loadDictionaryLM()
    ),
    "SentimentQDAP"=list(
      ruleSentiment, loadDictionaryQDAP()
    )
  )
)
#   SentimentLM SentimentQDAP
# 1       0.000     0.1428571
# 2       0.000     0.0000000
# 3       0.000     0.0000000
# 4       0.000     0.0000000
# 5       0.000     0.0000000
# 6      -0.125    -0.2500000
...