Load required packages

library(wordcloud)
library(tm)
library(readtext)
library(wordcloud)
library(dplyr)

Read data.

ia-opinions.txt is a file containing several student’s opinions about current state of AI.

rtxt <- readtext("ia-opinions.txt")
rtxt$text %>% substr(., start=1, stop=1500)
[1] "Comenzando con lo tratado sobre la Inteligencia Artificial débil. Actualmente las Inteligencias artificiales relacionadas con este tipo son las más útiles y de mayor uso comercial hoy en día. Supongo que en el futuro habrá muchísimos más avances en este tipo de IA, principalmente por la complejidad que representa la inteligencia artificial fuerte en su lugar.\n\nEs, entonces, comprensible que una inteligencia artificial pueda verse como un agente con entradas y salidas que además tiene la capacidad de aprender de ellas. Pero difiero en la idea de que sean capaces de pensar realmente.\n\nSi bien una IA que sea capaz de pasar la Test de Turing de forma satisfactoria, supondría llegar a un nivel en el que la IA sea percibida completamente como un ser pensante por la sociedad. No quiere decir que este lo sea. Y creo que hacer hincapié en esto resulta de suma importancia. Debido a que llegado a este punto en la investigación de la Inteligencia artificial podría tener implicaciones éticas y sociales de gran repercusión. Por ejemplo, se pondría en cuestión atribuirle derechos a la IA, como ya se ha ilustrado en varias obras de ciencia ficción.\n\nSi hablamos de la Inteligencia Artificial fuerte, creo que sería necesario continuar realizando investigaciones en este enfoque de la IA pero no con fines comerciales, sino más bien con fines de entendimiento del razonamiento, la singularidad, y la conciencia. Esto, para poder determinar si realmente una Inteligencia Artificial es consciente y re"

Preprocessing

Convert to lowercase, remove punctuation, etc. etc.

rtxt$text <- rtxt$text %>% tolower()
docs <- VCorpus(VectorSource(rtxt$text))
docs <- tm_map(docs, removePunctuation)
docs <- tm_map(docs, removeNumbers)
docs <- tm_map(docs, removeWords, stopwords("spanish"))
docs <- tm_map(
  docs,
  removeWords,
  c(
    "aun",
    "con",
    "por",
    "tan",
    "pero",
    "lleva",
    "vez",
    "algun",
    "sino",
    "cada"
  )
)
# moved stripWhitespace
docs <- tm_map(docs, stripWhitespace)
#docs <- tm_map(docs, stemDocument)
tdm <- TermDocumentMatrix(docs)
#findFreqTerms(tdm, 5)
m <- as.matrix(tdm)
v <- sort(rowSums(m), decreasing = TRUE)
d <- data.frame(word = names(v), freq = v)
head(d, 10)
NA
wordcloud(
  d$word[9:nrow(d)],
  freq = d$freq[9:nrow(d)],
  min.freq = 2,
  max.words = 50,
  colors = brewer.pal(8, "Dark2"),
  random.order = FALSE,
  rot.per = 0.25,
  scale = c(4, 1
  )
)

LS0tCnRpdGxlOiAiU2ltcGxlIFdvcmRDbG91ZCBleGFtcGxlIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgojIExvYWQgcmVxdWlyZWQgcGFja2FnZXMKYGBge3J9CmxpYnJhcnkod29yZGNsb3VkKQpsaWJyYXJ5KHRtKQpsaWJyYXJ5KHJlYWR0ZXh0KQpsaWJyYXJ5KHdvcmRjbG91ZCkKbGlicmFyeShkcGx5cikKYGBgCgojIFJlYWQgZGF0YS4KCmBpYS1vcGluaW9ucy50eHRgIGlzIGEgZmlsZSBjb250YWluaW5nIHNldmVyYWwgc3R1ZGVudCdzIG9waW5pb25zIGFib3V0IGN1cnJlbnQgc3RhdGUgb2YgQUkuCgpgYGB7cn0KcnR4dCA8LSByZWFkdGV4dCgiaWEtb3BpbmlvbnMudHh0IikKcnR4dCR0ZXh0ICU+JSBzdWJzdHIoLiwgc3RhcnQ9MSwgc3RvcD0xNTAwKQpgYGAKCiMgUHJlcHJvY2Vzc2luZwoKQ29udmVydCB0byBsb3dlcmNhc2UsIHJlbW92ZSBwdW5jdHVhdGlvbiwgZXRjLiBldGMuCgpgYGB7cn0KcnR4dCR0ZXh0IDwtIHJ0eHQkdGV4dCAlPiUgdG9sb3dlcigpCmRvY3MgPC0gVkNvcnB1cyhWZWN0b3JTb3VyY2UocnR4dCR0ZXh0KSkKZG9jcyA8LSB0bV9tYXAoZG9jcywgcmVtb3ZlUHVuY3R1YXRpb24pCmRvY3MgPC0gdG1fbWFwKGRvY3MsIHJlbW92ZU51bWJlcnMpCmRvY3MgPC0gdG1fbWFwKGRvY3MsIHJlbW92ZVdvcmRzLCBzdG9wd29yZHMoInNwYW5pc2giKSkKZG9jcyA8LSB0bV9tYXAoCiAgZG9jcywKICByZW1vdmVXb3JkcywKICBjKAogICAgImF1biIsCiAgICAiY29uIiwKICAgICJwb3IiLAogICAgInRhbiIsCiAgICAicGVybyIsCiAgICAibGxldmEiLAogICAgInZleiIsCiAgICAiYWxndW4iLAogICAgInNpbm8iLAogICAgImNhZGEiCiAgKQopCiMgbW92ZWQgc3RyaXBXaGl0ZXNwYWNlCmRvY3MgPC0gdG1fbWFwKGRvY3MsIHN0cmlwV2hpdGVzcGFjZSkKI2RvY3MgPC0gdG1fbWFwKGRvY3MsIHN0ZW1Eb2N1bWVudCkKdGRtIDwtIFRlcm1Eb2N1bWVudE1hdHJpeChkb2NzKQojZmluZEZyZXFUZXJtcyh0ZG0sIDUpCm0gPC0gYXMubWF0cml4KHRkbSkKdiA8LSBzb3J0KHJvd1N1bXMobSksIGRlY3JlYXNpbmcgPSBUUlVFKQpkIDwtIGRhdGEuZnJhbWUod29yZCA9IG5hbWVzKHYpLCBmcmVxID0gdikKaGVhZChkLCAxMCkKCmBgYAoKYGBge3Igd2FybmluZz1GQUxTRSwgZmlnLmhlaWdodD0xMiwgZmlnLndpZHRoPTEyfQp3b3JkY2xvdWQoCiAgZCR3b3JkWzk6bnJvdyhkKV0sCiAgZnJlcSA9IGQkZnJlcVs5Om5yb3coZCldLAogIG1pbi5mcmVxID0gMiwKICBtYXgud29yZHMgPSA1MCwKICBjb2xvcnMgPSBicmV3ZXIucGFsKDgsICJEYXJrMiIpLAogIHJhbmRvbS5vcmRlciA9IEZBTFNFLAogIHJvdC5wZXIgPSAwLjI1LAogIHNjYWxlID0gYyg0LCAxCiAgKQopCmBgYAoK