sreda, 6. marec 2013

Kaj paše skupaj v loncu glede na omrežno analizo receptov

Včasih v kuhinji zmanjka idej, ali pa jedi zmanjka nekaj malega, kar bi jo naredilo res posebno ... če bi vedeli, kaj. Računalnik na pomoč! 

Sestavine v receptih so v posebnem razmerju. Skupaj pripomorejo k želenemu okusu, zato ni naključje, da se nekatere vedno pojavljajo skupaj. K pašti pač sodi paradižnikova omaka s česnom in baziliko, v sladice pa navadno damo čokolado, sladila in maščobe. Indijske in tajske jedi skoraj vedno vsebujejo ingver, čili in kokosovo mleko ... kombinacije se vrstijo v nedogled, vendar se nekatere ponavljajo.

Najbolje bi bilo analizirati, katere se največkrat pojavljajo skupaj in to nekako narisati. Preglednice in tabele so passe, z grafikoni se je tudi težko hvaliti. Omrežna analiza pa se ne sliši slabo.

Kaj, če bi skonstruirali graf in vanj dali vse sestavine vseh dosegljivih receptov? Sestavine v posameznem receptu so medsebojno povezane, in ko  seštejemo povezave vseh sestavin v vseh receptih in vsoto prikažemo kot omrežje, so sestavine, ki pogosteje nastopajo skupaj, prikazane bliže. Sestavine, ki nastopajo večkrat, so večje.

Celotno omrežje je videti tako:






Sliko je mogoče povečati (2x klik ali kontrolnik spodaj desno), pomanjšati in premikati.

Obdelal sem približno 22.000 receptov z normaliziranimi sestavinami (hvala, Najdi.si) in nastalo omrežje vizualiziral z Gephijem. Povezav med sestavinami je preveč, zato niso prikazane. Najpogostejše sestavine - sol, moka, voda, maslo, jajca, ... - sem moral odstraniti, ker so popolnoma pokvarile diagram.  

Človek bi pričakoval, da bodo skupine sestavin bolj izrazite, da bodo npr. jasno vidne gruče sestavin raznih etničnih kuhinj, a žal ni tako. Večina jedi pade v dve skupini: slane ali sladke. Slane se še delijo v podskupine, sladkih pa glede na omrežno geometrijo ni mogoče razdeliti v skupine tako, da bi bilo na prvi pogled smiselno, kaj te predstavljajo.

Zanimivo je videti sestavine, ki povezujejo slane in sladke jedi, npr. limone, kvas, sladka in kisla smetana in razna vina. Bananini listi in nojeva jajca na prominentnih mestih so posledica slabega delovanja algoritma za prepoznavo sestavin s spletnih strani.

Še približane slike. Najprej sladkarije (klik za povečanje):





in še slane jedi (klik za povečanje):






Orodja: Gephi in nekaj programiranja.
Podatki: Najdi.si.

Dober tek!

Ni komentarjev:

Objavite komentar