All Projects → racinmat → mal-analysis

racinmat / mal-analysis

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

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to mal-analysis

arm-server
📃 A service for mapping Anime ID's between AniList, AniDB, MAL, and Kitsu (using https://github.com/manami-project/anime-offline-database)
Stars: ✭ 46 (+48.39%)
Mutual labels:  anime, mal
scrobbly
↩️ Scrobble your animes to Anilist, Kitsu!
Stars: ✭ 23 (-25.81%)
Mutual labels:  anime, mal
diffbot-php-client
[Deprecated - Maintenance mode - use APIs directly please!] The official Diffbot client library
Stars: ✭ 53 (+70.97%)
Mutual labels:  crawling, scraped-data
Kitsu
A kitsu.io api wrapper written in C# .NET Core
Stars: ✭ 15 (-51.61%)
Mutual labels:  anime, mal
arm
A JSON-based database to relational mapping Anime ID's between MyAnimeList, Annict, AniList and Syoboi Calendar
Stars: ✭ 25 (-19.35%)
Mutual labels:  anime, mal
nyaamal
A chrome extension to download anime torrents directly from MyAnimeList and Anilist
Stars: ✭ 75 (+141.94%)
Mutual labels:  anime, mal
anilist-to-mal
A python tool that will export your Anilist.co anime list for MAL importing
Stars: ✭ 33 (+6.45%)
Mutual labels:  anime, mal
kuristina
An API that lets you fetch user lists from MyAnimeList.
Stars: ✭ 14 (-54.84%)
Mutual labels:  anime, mal
Mal4J
Java wrapper for the official MyAnimeList API
Stars: ✭ 23 (-25.81%)
Mutual labels:  anime, mal
Sonarr-AnimeDownloader
It is a Docker Container that uses Sonarr to download anime from AnimeWorld site (ITALY).
Stars: ✭ 28 (-9.68%)
Mutual labels:  anime
anime-seasons
Season data for Taiga
Stars: ✭ 15 (-51.61%)
Mutual labels:  anime
podcastcrawler
PHP library to find podcasts
Stars: ✭ 40 (+29.03%)
Mutual labels:  crawling
scrape-github-trending
Tutorial for web scraping / crawling with Node.js.
Stars: ✭ 42 (+35.48%)
Mutual labels:  crawling
Anime-Boys-Holding-Programming-Books
Anime Boys Holding Programming Books
Stars: ✭ 84 (+170.97%)
Mutual labels:  anime
anime-streaming
📺 A curated list of worldwide legal anime streaming.
Stars: ✭ 49 (+58.06%)
Mutual labels:  anime
market-monitor
Interactive app to monitor market using Python
Stars: ✭ 20 (-35.48%)
Mutual labels:  analysis
common-osint-model
Converting data from services like Censys and Shodan to a common data model
Stars: ✭ 35 (+12.9%)
Mutual labels:  analysis
prop-types-definition
Patch for prop-types to get property type definition in runtime
Stars: ✭ 15 (-51.61%)
Mutual labels:  analysis
marv
Marv your Swiss streaming tool!
Stars: ✭ 149 (+380.65%)
Mutual labels:  anime
double-agent
A test suite of common scraper detection techniques. See how detectable your scraper stack is.
Stars: ✭ 123 (+296.77%)
Mutual labels:  crawling

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].