donné mes données d'entrée dans userid, le format Itemid:générant des combinaisons de bigrammes à partir des données regroupées en porc
raw: {userid: bytearray,itemid: bytearray}
dump raw;
(A,1)
(A,2)
(A,4)
(A,5)
(B,2)
(B,3)
(B,5)
(C,1)
(C,5)
grpd = GROUP raw BY userid;
dump grpd;
(A,{(A,1),(A,2),(A,4),(A,5)})
(B,{(B,2),(B,3),(B,5)})
(C,{(C,1),(C,5)})
Je voudrais générer toutes les combinaisons (pour ne pas important) des éléments de chaque groupe. J'ai finalement l'intention d'effectuer une similitude jaccard sur les éléments de mon groupe.
idéalement mes bigrams les seraient générés et puis j'Aplatir la sortie pour ressembler à:
(A, (1,2))
(A, (1,3))
(A, (1,4))
(A, (2,3))
(A, (2,4))
(A, (3,4))
(B, (1,2))
(B, (2,3))
(B, (3,5))
(C, (1,5))
Les lettres ABC, qui représentent le userid, ne sont pas vraiment nécessaires à la sortie, je suis juste en les montrant à des fins d'illustration. De là, je compterais le nombre d'occurrences de chaque bigram afin de calculer jaccard. J'aimerais savoir si quelqu'un d'autre utilise cochon pour des similitudes similaires (désolé!) Et ont déjà rencontré cela.
J'ai regardé le NGramGenerator fourni avec les tutoriels pig, mais il ne correspond pas vraiment à ce que j'essaye d'accomplir. Je me demande si un streaming UDF en python est le chemin à suivre.
Vous recherchez exactement la même chose - avez-vous trouvé une réponse? – Jilles
esprit partageant votre solution ici? –