Skip to content

github repo for MyAnimeList analysis. Also links to the MAL dataset.

Notifications You must be signed in to change notification settings

racinmat/mal-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anime analysis

This is repo for analysing anime from big anime databases. The main datasource will be MyAnimeList (MAL), and maybe later some others.

Anime sources:

User sources: As the first source, I am using the Dibakarroy1997/myanimelist-data-set-creator repo, for that I need user IDs. So I need user ids (ideally active users) for scrapping ratings per user. So far I am scraping forum topics to get user ids: command for scrapping with sample id: python .\createUserListFromPost.py 1582476 user-lists/UserListPost1582476.txt Topics scraped so far - all 8 watching challenge threads

user location and gender must be scraped from official page :(

Previous analyses - for baseline:

DataSet

Some data are already scraped and can be downloaded here https://uloz.to/tam/_uNFuK0YI1Vmk They are not cleaned and normalized, and far from complete yet. It contains:

  • 204 334 unique usernames
  • 19 200 users with downloaded ratings and animelists
  • 6 014 042 animelist records
  • 3 564 447 ratings in animelists
  • 13 983 unique anime ids based on ratings and animelists
  • 11 800 anime with downloaded data

The newer version of part of scraped data can be downloaded here: https://uloz.to/tam/_jGFnKV19IIrD As above, data are not normalized, only in pickle for easier manipulation and compression during scraping. It contains:

  • 204 334 unique usernames
  • 46 800 users with downloaded ratings and animelists
  • 14 704 980 animelist records
  • 8 634 113 ratings in animelists
  • 13 983 unique anime ids based on ratings and animelists
  • 13 983 anime with downloaded data The newer version is also available in CSV form, more useful to work with. It can be downloaded here: https://uloz.to/tam/_xZxO5NeiaNqO It contains same data as binary files above.

3rd version of harvested data can be downloaded here: https://uloz.to/tam/_jU7mHh94xIWB It contains both pickle and CSV files. It contains:

  • 302 841 unique usernames
  • 75 800 users with downloaded ratings and animelists
  • 23 753 842 animelist records
  • 14 009 170 ratings in animelists
  • 14 426 unique anime ids based on ratings and animelists
  • 14 269 anime with downloaded data

4th version of harvested data can be downloaded here: https://uloz.to/tam/_c1ESfrgpyqrJ It contains both pickle and CSV files. It contains:

  • 302 841 unique usernames
  • 125 200 users with downloaded ratings and animelists
  • 39 184 237 animelist records
  • 23 096 715 ratings in animelists
  • 14 430 unique anime ids based on ratings and animelists
  • 14 269 anime with downloaded data

5th version of harvested data can be downloaded here: https://uloz.to/tam/_1VwDx2NIBaYh It contains both pickle and CSV files. It contains:

  • 302 841 unique usernames
  • 146 700 users with downloaded ratings and animelists
  • 45 626 200 animelist records
  • 26 832 473 ratings in animelists
  • 14 441 unique anime ids based on ratings and animelists
  • 14 269 anime with downloaded data
  • 68 975 of users also have demographics data

6th version of harvested data can be downloaded here: https://uloz.to/tam/_Rl1XPwuqnsvn It contains only CSV files. It contains:

  • 302 841 unique usernames
  • 235 200 users with downloaded ratings and animelists
  • 65 233 633 animelist records
  • 37 987 916 ratings in animelists
  • 14 466 unique anime ids based on ratings and animelists
  • 14 269 anime with downloaded data
  • 183 188 of users also have demographics data

7th, final version of harvested data can be downloaded here: https://uloz.to/tam/_5fvufuNgAMBa It contains only CSV files. It contains:

  • 302 841 unique usernames
  • 302 675 users with downloaded ratings and animelists
  • 80 076 112 animelist records
  • 46 358 322 ratings in animelists
  • 14 478 unique anime ids based on ratings and animelists
  • 14 478 anime with downloaded data
  • 302 573 of users also have demographics data loaded
  • 217 817 of them have gender
  • 217 800 of them have ratings and gender
  • 282 918 of them have all annotations and some anime in animelist

last dataset with filtered data (only users with location, birth date and gender) can be downloaded here: https://uloz.to/tam/_T8ba4GEWWEpe The native .rick version can be loaded into python as

import pickle
with open('UserList.rick', 'rb') as f:
    users = pickle.load(f)
    
with open('AnimeList.rick', 'rb') as f:
    animes = pickle.load(f)

The CSV can be loaded with pandas as you are used to

import pandas as pd

animes = pd.read_csv('AnimeList.csv')
users = pd.read_csv('UserList.csv')
animeLists = pd.read_csv('UserAnimeList.csv')

or you just can open it in Excel or whatever.

just other stuff and notes

tools and other ideas: voyager - web based tool for datasets exploratory analysis:

vega-lite - other tool for visualizations, specifications in json:

lyra - completely code-less, only web-based GUI:

jinak klasika: paraview, tableau, gephi

pro python: networkx pro grafy, plot.ly + dash na interaktivní vizualizace https://dash.plot.ly/getting-started

d3 for nice javascript graphs: https://github.com/d3/d3/wiki/gallery

nápady:

  • zjistit velké rozdíly v hodnocení anime, s velkým rozptylem, kde je hodnotí hodně lidí velmi kladně a hodně lidí velmi záprně
  • podívat se na rozdíly mezi hodnoceními v čase
  • rozdíl mezi lidmi co hodnotili málo a co hodnotili hodně anime, co viděli a co hodnotili za díla
  • korelace score, žánrů, sledovanosti, a času, a lidí, co sledují hodně, málo
  • rozclusterovat lidi na málohodnotící, a hodně hodnotící, podle střední hodnoty hodnocení apod.
  • prozkoumat recency bias u vydání anime, gender split
  • prozkoumat plan to watch listy
  • prozkoumat sledovatnost žánrů v závislosti na zemi, věku, pohlaví, ale i času, a časový vývoj různých věcí, zkusit změnu trendů v čase, vývoj počtu děl v žánru, průměrné oblíbenosti žánrů v čase apod
  • udělat časový vývoj podobně jako https://www.gapminder.org/videos/200-years-that-changed-the-world/?
  • vývoj do spiral chartu, například průměrné hodnocení anime podle data vydání: https://stackoverflow.com/questions/46575723/creating-a-temporal-range-time-series-spiral-plot
  • časový výoj počtu anime různých žánrů a proměrné hodnocení jako video podobné 200 years? průměr hodnocení na ose a počet kusů jako velikost kolečka?
  • u těch žánrů to zkusit kumulativně, anime do té doby, a anime co vyšly v daném roce, nebo v intrvalu např. 5 let a posouvat interval v čase
  • zjistit vztahy mezi žánry na základě toho, kolik anime dané řánry sdílí (vzdálenost žánrů podle anime, co je mají, a embedding, případě ukáztat v čase)
  • podívat se na nejdropovanější série
  • korelace mezi dokončenými a dropnutými žánry?
  • zkusit nějaké graphical models a podmíněné grafové věci jako jsme měli v SMU?
  • ukázt source v závislosti na čase u anime, i žánry a studia v čase
  • ukázat jointploty kde, bude to vypadat hezky
  • zkusit metriky co popisuje Šlerka http://databoutique.cz/post/161312186128/slu%C5%A1n%C3%AD-lid%C3%A9-na-facebooku
  • spojitost studií a žánrů, prozkoumat žánrové zastoupení, demografii fanoušků a vývoj v čase u jednotlivých studií
    • tohle nešlo dohledat jinde a tím pádem to může být hodně zajímavé
    • souvislost průměrného hodnocení a žánrů u jednotlivých studií? komu jaký žánr "jde lépe"?
  • zkusit znormovat hodnocení anime na normální rozdělení s mean=5.5, upravit podle toho hodnocení a ukázat, jak si některé tituly povedou
  • zkusit embeddované žánry sgroupovat do menšího počtu žánrů -> představit menší počet ensemble žánrů?
  • zkusit rozdělit anime podle ratingů? (slide na anime is not for children apod.), a pak zkusit studia a ratingy apod.
  • funny nápad:
    • stahnout data o seyiu, a v jakých anime byli
    • definovat Erdosovo číslo
    • napočítat to samé pro seiyu (kolaborace = stejné anime)
    • definovat Picovo číslo jakožto kolaborativní vzdálenost os seiyu Pica z Boku no Pico
    • nějak vizualizovat, napočítat průměrnou vzdálenost apod.
    • ukázat na tom míru kolaborace mezi seiyu
    • už existuje pro herce Bacona https://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon#Bacon_numbers
    • zmínit nejdříve Erdose, potom Bacona a vybrat nějakého slavného / neobvyklého seiyu, a definovat čísla pro seiyu
    • použít někoho z Hanazawa Kana a Kamiya Hiroshi, ty jsi nejznámější
  • spočítat vlastní popularity, porocnat s tou MALovou?
  • ukázat rozložení žánrů a studií pro populární anime (top 2k anime?) a porovnat s rozložením pro všechna
  • vztah mezi řánry a ratingy? jak hodnocení, tak omezení na věkovou kategorii
  • srovnat jak velká část anime je skutečně pro děti
  • co porovnávám v čase, porovnat i u všech X populárních anime (jsou tam různá zastoupení žánrů apod.?)

strukturova přednášku:

  • pipeline a obecné věci
  • současný stav (anime, useři a vůbec)
    • useři - jen určitá věková skupina apod.
    • anime, nezávisle na userech
  • nějaké top 10 apod.?
  • vývoj v čase (anime, useři, možná i hodnocení apod.) - kde na ose X je čas
  • sem možná vývoj v čase jako gify?
  • složitější věci, jako jsou vzdálenosti, embedding apod.
    • u metrik (cosine similarity apod.) dát vzorec a malou ukázku pomocí vektorů a šipek na podporu reality

popis podobnosti visual novel v grafech: For the attraction value specifically, IIRC, it went along these lines (for nodes A and B)

bunnyadvocate similarityAB = /

similarityBA = /

attraction = (1-sqrt((1-similarityAB)*(1-similarityBA)))^3 the attraction between two nodes was always the same going each way, A->B and B->A or else you get messy situations where one node is constantly chasing the other as the other is repelled by it more

data notes: days spent watching anime should not be takes seriously because of mismatches. E.g. here: https://myanimelist.net/profile/Tationika 1 332.1 days are spent watching anime because there are 9001 rewatches for Akira and Perfect Blue https://graph.anime.plus/Tationika/profile?referral=search

showing piecharts on world map: http://www.geophysique.be/2010/11/26/matplotlib-basemap-tutorial-06-real-case-pie-charts/

ukázat gif s porovnáním boxplotů a violit plotů a proč je lepší používat violin ploty? pokud tam budu nějaké violin ploty mít ofc

About

github repo for MyAnimeList analysis. Also links to the MAL dataset.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published