2017-01-14 13 views
-1

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

user_name, идентификатор, created_at, текст

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

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

+0

увидеть [г пакет arule] (https://cran.r-project.org/web/packages/arules/index.html) –

+0

Каких ассоциаций вы хотите определить здесь? Ассоциации между хэштегами. Или ассоциации между именем Обамы и отрицательными твитами. В любом случае, я думаю, что предложение @ImranAli пройдет долгий путь. – Abdou

+0

Привет, спасибо за ответ, я хочу использовать ключевые слова (поэтому, если кто-то твит использует слово obama, они также будут чирикать, используя слово «clinton», например), моя проблема заключается в том, что я не знаю, как принуждать мои данные к транзакционным данные для использования с этим пакетом. – John

ответ

0

Вот пример, как стартер:

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 
+0

Привет, этот пример отлично работает! Просто интересно, я получаю эту ошибку, пытаясь принудить свой собственный большой набор данных к dfm: «Ошибка в validObject (r): Недопустимый класс« dgTMatrix »object: length (Dimnames [1]) отличается от Dim [1] который составляет 8 "Любая идея, как избавиться от него? – John

+0

Аналогичная проблема была сообщена в [github repo пакета quanteda] (https://github.com/kbenoit/quanteda/issues/168). Как предложено на странице попытаться обновить quanteda из github, используя [devtools] (https://cran.r-project.org/web/packages/devtools/index.html) –