Как структурировать данные для априорного алгоритма?

Я хочу посмотреть, пишут ли пользователи, которые твитят об одном, также о чем-то другом. Я использовал пакет TwittR в студии R для загрузки твитов, содержащих ключевые слова, а затем загрузил временные шкалы этих пользователей в python. Мои данные структурированы следующим образом.

user_name,id,created_at,текст

exampleuser,814495243068313603,2016-12-29 15:36:13, 'MT @nixon1788: Обама и левые - отвратительные антисемитские блевотины! #WithdrawUNFunding'

Можно ли использовать априорный алгоритм для создания правил ассоциации? Кто-нибудь знает, как структурировать эти данные, чтобы использовать их, или если это вообще возможно с данными, которые у меня есть?


person John    schedule 14.01.2017    source источник
comment
см. пакет arule r   -  person Imran Ali    schedule 14.01.2017
comment
Какие ассоциации вы хотите здесь определить? Ассоциации между хэштегами. Или ассоциации между именем Обамы и негативными твитами. В любом случае, я думаю, что предложение @ImranAli будет иметь большое значение.   -  person Abdou    schedule 14.01.2017
comment
Привет, спасибо за ответ, я хочу использовать ключевые слова (поэтому, если кто-то твитит, используя слово обама, он также твитит, используя, например, слово клинтон) моя проблема в том, что я не знаю, как преобразовать мои данные в транзакционные данные для использования с этим пакетом.   -  person John    schedule 14.01.2017


Ответы (1)


Вот пример для начала:

txt <- c("Trump builds a wall", "Trump goes wall", "Obama buys drones", "Drones by Obama")
library(quanteda)
library(arules)
dfm <- dfm(txt)
trans <- as(as.matrix(dfm), "transactions")
rules <- apriori(
  data = trans, 
  parameter = list(minlen = 2L, maxlen=2, conf = 1), 
  appearance = list(lhs = c("obama", "trump"), default="rhs")
)
inspect(rules)
#   lhs        rhs      support confidence lift
# 1 {obama} => {drones} 0.5     1          2   
# 2 {trump} => {wall}   0.5     1          2  
person lukeA    schedule 14.01.2017
comment
Привет, этот пример отлично работает, спасибо! Просто интересно, я получаю эту ошибку при попытке принудительно преобразовать свой большой набор данных в dfm: Ошибка в validObject(r): недопустимый объект класса «dgTMatrix»: длина (Dimnames[1]) отличается от Dim[1], который 8 Есть идеи, как от него избавиться? - person John; 15.01.2017
comment
о подобной проблеме сообщалось в репозитории github пакета Quanteda. Как предлагается на странице, попробуйте обновить Quanteda из github с помощью devtools - person Imran Ali; 15.01.2017