Skip to content

Instantly share code, notes, and snippets.

@wiso
Created December 17, 2013 20:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wiso/8012468 to your computer and use it in GitHub Desktop.
Save wiso/8012468 to your computer and use it in GitHub Desktop.
word cloud with python BeautifulSoup ipython notebook
{
"metadata": {
"name": "Untitled0"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": "<h1>Tag cloud with BeautifulSoup</h1>"
},
{
"cell_type": "code",
"collapsed": false,
"input": "from bs4 import BeautifulSoup\nfrom collections import Counter",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 45
},
{
"cell_type": "code",
"collapsed": false,
"input": "comments = ' '.join(set([div.text for div in BeautifulSoup(open(\"wall2013.htm\")).find_all('div') if div['class'][0]==\"comment\"]))\nto_remove = ('di', 'no', 'all', 'proprio', 'che', 'd', 'v', 'Le', 'La', 'a', u'\u00e8', 'And', 'non', 'il', 'la', 'un', 'e', 'in', 'per', 'the', 'Non', 'dell', '-', u'\u2013', 'get', 'una', u'pi\u00f9', 'sta', 'Per', 'ha', 'sono', 'i', 'le', 'Ruggero', 'Turra', 'mi', 'is', 'su', 'si', 'ci', 'to', 'al', 'ma', 'del', 'da', 'se', 'of', 'con', 'fa', 'gli', 'o', 'anche', 'and', 'ho', 'lo', 'dei', 'questo', 'della', 'for', 'questa', 'po\\'', 'come', u'perch\u00e9', 'uno', 'mai', 'ti', 'Mi', 'va', 'about', u'c\\'\u00e8', 'mia', 'hanno', 'cosa', 'at', 'Tanti', 'ne', 'Il', 'ce', 'ad', 'by', 'nel', 'it', 'Ma', 'not', 'this', 'that', 'sul', 'La', 'E', 's', 'c', 'l', 't', 'or', 'tra', 'A', 'era', 'on', 'as', u'pu\u00f2')\nfor tr in to_remove:\n comments = comments.replace(\" %s \" % tr, \" \")\ncomments = comments.replace(u\"'\", ' ').replace(',', ' ').replace(u\"\u2019\", \" \").replace(\"?\", \" \").replace(\"!\", \" \").replace('\"', \" \").replace('.', ' ')\ncounter = Counter(comments.split())",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 128
},
{
"cell_type": "code",
"collapsed": false,
"input": "for c in counter.most_common():\n if c[0] in to_remove: continue\n print \"%s: %d\" % c",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "Auguri: 8\nfare: 6\nrouter: 6\n<3: 6\nproblema: 6\nBerlusconi: 5\nGrillo: 5\nio: 5\n:): 4\nsua: 4\nmore: 4\nCERN: 4\nauguri: 4\nopen: 4\ntalk: 4\ncasa: 4\ncaso: 4\nyou: 4\ngoogle: 4\nsecondo: 4\ntu: 3\nfunziona: 3\nqualcuno: 3\nchi: 3\noggi: 3\ngente: 3\nPozzi: 3\ndopo: 3\nsolo: 3\nAlessandra: 3\nI: 3\nandare: 3\npubblicit\u00e0: 3\nvedi: 3\nwireless: 3\nfreddo: 3\ndomani: 3\ndovrebbe: 2\nmesso: 2\nfai: 2\nsconosciuto: 2\nvero: 2\n:D: 2\nsicuro: 2\navere: 2\nsuo: 2\nbancomat: 2\nMy: 2\ncern: 2\nlove: 2\nitaliani: 2\nsvizzero: 2\ntesi:: 2\nprovi: 2\nloro: 2\nme: 2\npalle: 2\nbene: 2\nChe: 2\nvari: 2\nvolte: 2\nalcuni: 2\n2013: 2\ndal: 2\nbang: 2\nthey: 2\naccelerator: 2\nnuovo: 2\ndays: 2\none: 2\nmanagement: 2\ntheir: 2\naltro: 2\nquando: 2\nben: 2\nancora: 2\ntalking: 2\nmio: 2\ninvece: 2\nfirmware: 2\ncompleanno: 2\nphenomenon: 2\ndici: 2\nmeno: 2\ndo: 2\nelettori: 2\nprimo: 2\ncontrollo: 2\ncomputer: 2\nposso: 2\nvolta: 2\nstato: 2\nemail: 2\ncrede: 2\npunto: 2\nlast: 2\netc: 2\ncellulare: 2\ncillit: 2\nvedere: 2\nscaricare: 2\nmare: 2\ncarino: 2\ndue: 2\nn: 2\nvi: 2\nmesi: 2\nL: 2\ngiorno: 2\nIs: 2\ncol: 2\nInternet: 2\nquello: 2\nsenza: 2\nu: 2\nQuando: 2\nNo: 2\ndegli: 2\nquestion: 2\neditor: 2\nricorda: 2\nwith: 2\nniente: 2\npeccato: 2\ninterested: 2\nnuova: 2\nbuon: 2\nPiscina: 1\ncos\u00ec: 1\nnavighi: 1\nabbiamo: 1\nminore: 1\nenfused: 1\nvuole: 1\nsbarazzarsi: 1\nfalchi: 1\nhttp://nbviewer: 1\nwhose: 1\nflash): 1\nistruzioni: 1\nSeeking: 1\nspesso: 1\nMulaz: 1\nlavoro: 1\nimpresa: 1\n(not: 1\natlas: 1\nchicca: 1\ncanzoni: 1\nscoprendo: 1\n@: 1\npiega: 1\nadvantage: 1\nvery: 1\nQuesto: 1\nfacebook: 1\nbevo: 1\nfamily+friends: 1\ndecidi: 1\ncool: 1\nEnjoy: 1\nportarsi: 1\nInteressante: 1\nAPPLAUSI: 1\n29%: 1\ntre: 1\nupload: 1\nfatto: 1\nsempre: 1\nturno: 1\nappare: 1\nMarmotta: 1\ndiversi: 1\n->: 1\necco: 1\nguardando: 1\n[DONE]: 1\nbe: 1\nbravo: 1\novvero: 1\ntex: 1\nzero: 1\nvideo: 1\nuncomfortable: 1\ncammini: 1\nPalazzo: 1\ninglese: 1\nabbastanza: 1\nbirthdays): 1\nCaldo: 1\ncicli: 1\ndello: 1\n+: 1\nnello: 1\nprevisto: 1\nFederico: 1\narredato: 1\npgf-tikz: 1\nversion: 1\nleggere: 1\nnew: 1\n3g: 1\nausterit\u00e0: 1\nHiggs: 1\nuguale: 1\nricottura: 1\nfacesse: 1\nhere: 1\nCi\u00f2: 1\nquell: 1\nles: 1\nlet: 1\nsfuggano: 1\nmaking: 1\nsolito: 1\nnegli: 1\nColon: 1\nstupisce: 1\nresettarlo: 1\nforum: 1\norgoglio: 1\nconto: 1\n3): 1\nscoprire: 1\ndiagnosed: 1\nsfoglia: 1\nDear: 1\n(\\w+)\\s\\1: 1\nresta: 1\nperfetta: 1\nparlamento: 1\nrisultato: 1\nflash: 1\norg/mbostock/4360892: 1\napp: 1\nenorme: 1\nitaliano: 1\nDimostrato: 1\naccade: 1\nseconda: 1\ngiammai: 1\npresidente: 1\ntutto: 1\nuse: 1\ndicono: 1\nsoldi: 1\ntutti: 1\ncittadinanza: 1\n10mila: 1\nsports: 1\ngoing: 1\nmusic: 1\npartita: 1\n6: 1\npartito: 1\nzio: 1\nsembra: 1\nThose: 1\n9): 1\nBuon: 1\nridere: 1\np-valore: 1\n99: 1\ntifosi: 1\ndemocrazia: 1\nfinita:: 1\nstavolta: 1\ncontattata:: 1\nCiatto: 1\nbambola: 1\npartito): 1\nepoca: 1\nwomen: 1\nsembrava: 1\ncambiare: 1\nchild-bearing: 1\nmm: 1\nscience: 1\nguardi: 1\nwork: 1\ndev: 1\nmovies: 1\ndrastica: 1\nSO: 1\ncan: 1\natterrare: 1\nAutobus: 1\nmale: 1\npenoso: 1\nimposizioni: 1\nallegra: 1\ndetto: 1\neveryone: 1\nandrebbe: 1\ntac: 1\ngusto: 1\n(demo): 1\nsomething: 1\npartner: 1\nATLAS: 1\norganizer: 1\nsenso: 1\nBersani: 1\negrep: 1\nawkward: 1\ntechnology: 1\nbreaking: 1\nfar: 1\namazing: 1\nFatto: 1\nmusica: 1\n(del: 1\nGli: 1\ngrass:: 1\nconveniente: 1\ncollegare: 1\ncomplottismo: 1\nafter: 1\nvotare: 1\nwrong: 1\nbirthday: 1\npreoccupa: 1\npresident: 1\nAnzi: 1\ndove: 1\nmese: 1\nPiccolo: 1\n(HAL: 1\ntethering: 1\nKnowledge: 1\nmezz: 1\nAle: 1\npiacere: 1\ndjango: 1\ndispone: 1\nalimentatore:: 1\nattacchi: 1\nsa: 1\noperazione: 1\nlinea: 1\nwine: 1\ndown:: 1\nyears: 1\nPer\u00f2: 1\npaper: 1\nthrough: 1\nlooks: 1\nthesis: 1\nperfettamente: 1\nvita: 1\nalle: 1\nMarco: 1\n20: 1\nduomo: 1\npets+animals: 1\ndica: 1\nparlamentari: 1\nqualcosa: 1\neskimo: 1\ncarri: 1\niniziale: 1\nsomewhat: 1\nzerocalcare: 1\naddormenter\u00f2: 1\nJura: 1\n2): 1\nnazioni: 1\nthem: 1\naffected: 1\nnoi: 1\ndimmi: 1\nmba: 1\n#scipy: 1\nraffredarlo: 1\nRoma: 1\ntabellone: 1\nday: 1\nriesco: 1\nappunto: 1\nhttp://openflights: 1\nairports: 1\ncareer+money: 1\nopera: 1\nimportanti: 1\n#opendata: 1\nproposito: 1\nluce: 1\ncugino: 1\n2a: 1\nKate: 1\nosterie: 1\nBosone: 1\n8): 1\nmalattie: 1\nM: 1\nalimentatore: 1\nresettare: 1\nprolonged: 1\npersona: 1\nSe: 1\npossono: 1\nentrambi: 1\naggredito: 1\ninstallato: 1\nsiano: 1\nspecial: 1\nout: 1\nhacker: 1\nrosso: 1\ntrasmissibili: 1\nprincipessa: 1\nsignifica: 1\nspace: 1\nblu: 1\nvado: 1\nRisiko: 1\npoco: 1\nhealth: 1\ncadavere: 1\n7: 1\nrm: 1\ncause: 1\nfisici: 1\neravamo: 1\nsettimana: 1\navventura: 1\nfree: 1\ninviate: 1\ntelevisore: 1\ndire: 1\nask: 1\nreddito: 1\n\u201criforma\u201d: 1\nore: 1\ncredere: 1\nora: 1\ntravisate: 1\nsurprisingly): 1\nPenso: 1\ntimelapse: 1\nveloce: 1\nuniversit\u00e0: 1\nrisposta:: 1\nw: 1\ncompaiono: 1\nscrivania: 1\nciccione: 1\nsagge: 1\nflying: 1\nconfusa: 1\nvolete: 1\nPlease: 1\nbruciato: 1\nImu: 1\nvote: 1\nhautains: 1\nADSL: 1\narmati: 1\nAltro: 1\norg/: 1\nesistenzialista: 1\nmerda: 1\nsystem: 1\nleast: 1\nanyone: 1\nbecause: 1\n2: 1\npower:: 1\naver: 1\nTanta: 1\nindicato: 1\norg/6755034: 1\nfriend: 1\n\u201cspecial: 1\n16kHz: 1\npare: 1\nPerch\u00e9: 1\nwomen\u2014and: 1\nmostly: 1\nhotel: 1\ncoscienza: 1\nDomani: 1\nCiampino: 1\nMiddleton: 1\nparlasse: 1\nCerto: 1\nthan: 1\nessere: 1\nRifugio: 1\ntelevision: 1\n12: 1\naereo: 1\ninteressante:: 1\nfacile: 1\nr: 1\ndiktat: 1\nwere: 1\n1): 1\nkindle: 1\nvincere: 1\nmatplotlib:: 1\nfocaccina: 1\nCLs: 1\n20s: 1\nfantastico: 1\nGod: 1\nciclare: 1\nitaly: 1\nwarning:: 1\nsull: 1\nstyle: 1\nsmettere: 1\nhave: 1\n+89%: 1\nmy: 1\ncinque: 1\ntriste:: 1\nseminar: 1\nshtml: 1\nissue: 1\ncavi: 1\nsessualmente: 1\ndiretta: 1\nalso: 1\ninternal: 1\ntake: 1\ndoors: 1\nhttp://www: 1\nsaggezza: 1\nnegligible: 1\nsapevo: 1\nNiente: 1\nprogressively: 1\nparli: 1\nschool+university: 1\nmeglio: 1\nrisolto: 1\nreach: 1\nzia:: 1\n7): 1\negizia: 1\n20%: 1\npreferito: 1\nhttp://bl: 1\n--color: 1\napproved: 1\nrimangono: 1\nanch: 1\nCosa: 1\nYouTube: 1\nwindows: 1\naccenderebbe: 1\nlater: 1\nmilano: 1\nPulizia: 1\ncombriccola: 1\nmucche: 1\naiuta: 1\ntypically: 1\nfosse: 1\ngain: 1\nPerfect: 1\nfranchi: 1\nelectoral: 1\nchiedermi: 1\nCandidato: 1\nfinalmente: 1\npreghiere: 1\nilludersi:: 1\nusando: 1\npostale: 1\nMUST: 1\npoi: 1\nguardano: 1\nonly: 1\narrivata: 1\nricevute: 1\nproposto: 1\nchiuderlo: 1\nIncredibile: 1\nstessi: 1\nRISK: 1\nfamiliar: 1\n/usr/share/texmf/tex/latex: 1\n99%: 1\nLHC): 1\nhtml#new-plotting-features: 1\nones: 1\nidoli: 1\nconsiderato: 1\nletto: 1\ntesta: 1\ndomestica: 1\nteens: 1\nevolution: 1\nweekend:: 1\nprima: 1\ncapivo: 1\nvestito: 1\nveramente: 1\nbottiglia: 1\nprimi: 1\nsegno: 1\nbad: 1\nacrobazie: 1\ndiciamo: 1\nammazzi: 1\nalimentazione: 1\nordine: 1\n(CHF/EUR): 1\nsteam: 1\n(quantum: 1\nacceleratori: 1\nsquadra: 1\nvino: 1\nDecommissioning: 1\nFontana: 1\nAlaska: 1\nimpressione: 1\ncollege: 1\nare: 1\nsesso: 1\nriduzione: 1\nspetta: 1\nbest: 1\nGrillo]: 1\nmiei: 1\nsemplicemente: 1\ncapacity: 1\nAnche: 1\nhttp://matplotlib: 1\ntesselation: 1\ndovrebbero: 1\nlui: 1\nspiegano: 1\nchampagne: 1\nROOT: 1\nsuoi: 1\nsaggio: 1\nmetal: 1\nalbergo: 1\nmacchina: 1\ntuo: 1\nipython: 1\ninutile: 1\nBrunero: 1\nsala: 1\nGinevra: 1\nalla: 1\noperai: 1\ntaking: 1\nquesti: 1\nrottura: 1\nfilosofo: 1\nsalata: 1\nsbandierandola: 1\ndeciso: 1\nYes: 1\n-wn: 1\ninteressante: 1\nscappato: 1\n6): 1\npop: 1\n#matplotlib: 1\nshutdown: 1\nlinux: 1\nbackend: 1\nstatunitense: 1\nrestituirgli: 1\nspessa: 1\ntrademark: 1\nfunzionano: 1\nritenermi: 1\nommioddio: 1\ngelato: 1\ninterest: 1\nperiodo: 1\nfotogramma: 1\n(tutte): 1\nfantastica: 1\ntornanti: 1\naccontentiamo: 1\ntrovato: 1\nsappiamo: 1\n+13%: 1\n398: 1\nelse: 1\nsiamo: 1\nvuoi: 1\nocchi: 1\ndemand: 1\npolpelmo: 1\nseggi: 1\n3000+: 1\norg/users/whats_new: 1\ncalcare: 1\nsmartphones: 1\nTEDxCERN: 1\nabbiano: 1\nfunzionare:: 1\nfatica: 1\nvecchi: 1\nsvariate: 1\nsfiga: 1\ncancelled: 1\nfiglio: 1\nchiede: 1\nsvariati: 1\nengineers: 1\nloggarsi: 1\nemployees: 1\nsushi: 1\ncanon: 1\nsurprisingly: 1\nVoglio: 1\npreso: 1\nfarsi: 1\nmani: 1\nutile: 1\nlavorare: 1\nparte: 1\neventi: 1\nPython: 1\npagliaccio: 1\naccensione: 1\n(mostly: 1\nread: 1\nparts: 1\nbasta: 1\nparty: 1\nMachete: 1\nphysical: 1\nmancanza: 1\nfattibile: 1\nmostra: 1\nquantistica: 1\n[done]: 1\nAffare: 1\nVoronoi: 1\nstatua: 1\nprimarie: 1\nuser: 1\nnulla: 1\ngiorni: 1\npermettano: 1\nnormale: 1\ntask: 1\nadesso: 1\ncontact: 1\nsenzo: 1\nIn: 1\nMeloni: 1\nannealing):: 1\nleone: 1\nyear): 1\nciarlatani: 1\nThank: 1\nless: 1\nbeing: 1\npareva: 1\nstesso: 1\ntechnicians: 1\nmacroeconomic: 1\nit/tecnologia/cyber-cultura/13_luglio_16/reggiseno-arduino_2d3de41c-ee1c-11e2-98d0-98ca66d4264e: 1\nvedevo: 1\ndannazione: 1\nyes: 1\nbrillantemente: 1\nperdere: 1\nhai: 1\nquella: 1\nsia: 1\ntablet: 1\nquelli: 1\nrosa: 1\nprobabile: 1\ndifficile: 1\nbook: 1\ncomportamento: 1\ncancro: 1\nhas: 1\nlxplus: 1\ncui: 1\nDirac: 1\naround: 1\nmancava: 1\ndata:: 1\nricerca: 1\nhaus: 1\nnotte: 1\nnemmeno: 1\ncapo: 1\nguarire: 1\nusing: 1\ndolcezza: 1\nconosco: 1\ncalcola: 1\n50: 1\n5): 1\nAre: 1\npropria: 1\ncontinua: 1\npopular: 1\nbecome: 1\nsenato: 1\nclamorosi: 1\npeople: 1\nve: 1\nReader: 1\nultimi: 1\nplay: 1\nbach: 1\nsuccede: 1\nfacendo: 1\nItalia: 1\nmotivo: 1\nfissa: 1\nneanche: 1\nOpenStreetMap: 1\ngradually: 1\narrivare: 1\npuzza: 1\ninquilino: 1\nMen: 1\n/: 1\nPeople: 1\nanno: 1\nasking: 1\nxkcd: 1\nUn: 1\nscollegare: 1\nfuori: 1\ncarta: 1\nstrada: 1\ndonna: 1\naccuser\u00e0: 1\npepper: 1\ninizi: 1\ncarattere:: 1\nnella: 1\ncredito: 1\nstep: 1\npaese: 1\ncapisca: 1\nfrom: 1\npost: 1\nchrome: 1\nbocconiane: 1\nok: 1\nmoschea: 1\nscenari: 1\nbanale: 1\nhot: 1\ndollari: 1\ncercasi: 1\ngoogle:: 1\nacceso: 1\ntristezza: 1\nsudafricano: 1\nsilence: 1\nfargli: 1\ntecnologia: 1\ntrenitalia: 1\nartista: 1\n(un: 1\nLittle: 1\nWomen: 1\nbanca: 1\ndovevo: 1\nrossa: 1\nsmesso: 1\n\u201cgiocando\u201d: 1\nThe: 1\nutility: 1\n(since: 1\ncorriere: 1\ntrovare: 1\nsemplice: 1\nAperitivo: 1\n*: 1\ngrazie: 1\nfucking: 1\noccasions\u201d: 1\nquanto: 1\n:: 1\npotpourri: 1\nhappy: 1\npochissimo: 1\ntasca: 1\nsiete: 1\nbut: 1\nserie: 1\nLasciando: 1\naltezza: 1\n#ipythonnotebook: 1\nfotografo: 1\nlamentare:: 1\nInterpretation: 1\ninside: 1\nmobile: 1\nocks: 1\nconcept:: 1\nEinstein: 1\nkite: 1\ndisplay: 1\nfotografica: 1\nvestire: 1\nscanner: 1\nfigurati: 1\ndeep: 1\nprive: 1\nsostanzialmente: 1\nHow: 1\nfedora:: 1\nespressione:: 1\nuomo: 1\npiu: 1\nfilm: 1\nadulti: 1\nrainbow: 1\nvista: 1\nmalincuore: 1\ncollo: 1\nragionano: 1\nvisto: 1\nevent: 1\npoich\u00e9: 1\nalberghi: 1\nragione:: 1\n4): 1\ncomposto: 1\ntelefonica: 1\n-rf: 1\nsbagliata: 1\ngran: 1\nnice: 1\npicture: 1\navevo: 1\ncolon: 1\nrelationships\u2014and: 1\nMbps: 1\nguardare: 1\ncambiato:: 1\nm: 1\nvignette: 1\nstay: 1\ncaricatore: 1\nMolto: 1\npeak: 1\nsulla: 1\n(LaTeX): 1\nweekend: 1\nlampeggiante: 1\n200+: 1\nage: 1\nrequired: 1\ninsaputa: 1\ngeniale: 1\nmisura: 1\nippopotamo: 1\npersoncina: 1\ntime: 1\n[Berlusconi: 1\nlampeggia: 1\n"
}
],
"prompt_number": 129
},
{
"cell_type": "code",
"collapsed": false,
"input": "",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 131
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment