Gå til innhold

Anbefalte innlegg

Hei, husker da jeg tok et grunnkurs i programmering på UiO så fikk vi et problem hvor vi skulle lage et program for å håndtere filminformasjon. Vi fikk utgitt en .txt fil med alle filmene i imdb sin database. Hvordan får man tak i slik data, gjerne i .txt format. Skal ha ta et statistikk kurs nå snart, kunne vært gøy å brukt statisiske metoder på datamengder sammen med feks Python for å få litt mer intuisjon. :)

Lenke til kommentar
Videoannonse
Annonse

Generelt: man undersøker / spør kilden om hvilke betingelser som gjelder for bruk av data på den måten.

Når det gjelder imdb, så kan man ikke lenger bruke data derfra slik man vil. De skriver blant annet (conditions):

"Robots and Screen Scraping: You may not use data mining, robots, screen scraping, or similar data gathering and extraction tools on this site, except with our express written consent as noted below."

og

"Licensing IMDb Content; Consent to Use Robots and Crawlers: If you are interested in receiving our express written permission to use IMDb content for your non-personal (including commercial) use, please visit our Content Licensing section or contact our Licensing Department. We do allow the limited use of robots and crawlers, such as those from certain search engines, with our express written consent. If you are interested in receiving our express written permission to use robots or crawlers on our site, please contact our Licensing Department."

Lenke til kommentar

I link over postet av @Tom_ ligger det meste fra imdb sin database i .txt filer.

Kan være fin trening og øve seg på dem og ta ut diverse statistikk.

 

Ettersom du nevner Python kan jeg slenge sammen noe som kan være til hjelp\inspirasjon.

Her bruker jeg også nyere verktøy i Python som jeg liker veldig godt collections og itertools

 

Bruker rating.list og tar ut topp 20 filmer i dette eksemplet.

Første steg er og og få data i en strukturert form som f.eks list,dictionary.

Her bruker jeg nested list,må bruke pastebin da kode tag system her på "diskusjon.no" ikke fungere som det skal.

http://pastebin.com/4DQz5XSi

 

Når jeg har fått alt data inn i en nested list struktur(kunne ha været mere elegant),kan man starte og ha det gøy med statistikk.

Hvilket år var det beste film året blant filmer i topp 20?

>>> from collections import Counter
>>> top_year = Counter([i[-1] for i in top_20])
>>> top_year.most_common(3)
[('1994', 3), ('1999', 2), ('1990', 1)]

Vi ser at 1994 var et bra flim år med 3 filmer blant top_20,her bruker jeg collections.Counter og function most_common().

Hmm hvilke filmer var dette?

>>> [movie[3] for movie in top_20 if movie[-1] == '1994']
['The Shawshank Redemption', 'Pulp Fiction', 'Forrest Gump']

 

Originalt er filmene sortert etter rank,her sortere dem etter år.

>>> sort_by_year = sorted(top_20, key=lambda x: int(x[-1]))
>>> sort_by_year[0]
['0000000124', '141413', '8.7', 'Shichinin no samurai', '1954']
>>> sort_by_year[-1]
['0000000124', '683062', '8.7', 'Inception', '2010']

Tar ut første og siste film,vi ser at eldste film i top_20 er fra 1954 og den nyeste er fra 2010

 

Her lager jeg en top_20 teller,med og kombinere collections og itertools.

>>> import itertools
>>> from collections import Counter
>>> top_20_counter = Counter(itertools.chain(*top_20))

Bruke top_20_counter,hvor mange filmer har 8.8 i rank?

>>> top_20_counter['8.8']
5

>>> #Antall filmer fra 1999
>>> top_20_counter['1999']
2

 

Hvilke filmer har rank 9 eller bedere?

>>> for movie in top_20:
      if float(movie[2]) >= 9:	
      print movie[3]

The Shawshank Redemption
The Godfather
The Godfather: Part II

Endret av SNIPPSAT
Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...