[PYTHON] J'ai essayé le roman Naro API 2

J'ai trouvé une commande intéressante en lisant Narurou Novel API, je vais donc la présenter et l'analyser.

Taux de conversation

|Paramètres|valeur|La description| |:--|:--|:--| |kaiwaritu |int string |Le taux de conversation du roman à extraire%Il peut être spécifié en unités. Lors de la spécification d'une plage, tirez les nombres minimum et maximum(-)Veuillez séparer avec un symbole.

Je vois. Taux de conversation …… Je me demande si c'est juste une conversation ou une partie du terrain

Puis immédiatement

Préparez-vous au chargement et au chargement de la bibliothèque

before_load.py


import pandas as pd
import requests
import numpy as np
import seaborn as sns
from scipy import stats
import matplotlib.pyplot as plt
%matplotlib inline

url = "http://api.syosetu.com/novelapi/api/"

narou_load.py


st = 1
lim = 500

data = []
while st < 2000:
    payload = {'of': 't-gp-gf-n-ka', 'order': 'hyoka',
          'out':'json','lim':lim,'st':st}
    r = requests.get(url,params=payload)
    x = r.json()
    data.extend(x[1:])
    st = st + lim
df = pd.DataFrame(data)

df.head()

payload = {'of': 't-gp-gf-n Vous pouvez le charger en ajoutant une partie appelée ka à cette partie. (Ajouté ci-dessus) Et les données qui sortent

title kaiwaritu(%)
C'était de la boue quand je me suis réincarné 14
Le plus fort du monde dans une profession commune 40
Errant dans un autre monde avec une compétence ridicule 36
Réincarnation sans emploi-Si tu vas dans un autre monde, tu deviendras sérieux- 22
Une autre chanson fantastique du monde à partir de Death March (version Web) 38

Je vois. C'est assez cher (fan) Cependant, je ne sais pas à quel point cela coûte en premier lieu, alors essayez describe ()

kaiwaritu
count 2000.00000
mean 38.00800
std 10.66831
min 0.00000
25% 31.00000
50% 38.00000
75% 45.00000
max 96.00000

Je vois. S'agit-il de la moyenne alors que la moyenne est de 38%? Ou plutôt, le nombre de caractères est si grand qu'il est assez courant?

Réduisons un peu le nombre de caractères.

Temps de lecture

J'ose utiliser le temps de lecture sans préciser le nombre de caractères Mais quel est le temps de lecture?

|Paramètres|valeur|La description| |:--|:--|:--| |time|int string|Vous pouvez spécifier l'heure de lecture du roman à extraire. Le temps de lecture est le nombre de personnages du roman divisé par 500. Lors de la spécification d'une plage, tirez le nombre minimum et maximum de caractères(-)Veuillez séparer avec un symbole.|

Comme vous pouvez le voir, le nombre est proportionnel au nombre de caractères, il ne devrait donc y avoir aucun problème sauf que le nombre devient plus petit.

Ajoutez ti à ʻof of payload` et chargez immédiatement

Puisque c'est un gros problème, essayez describe () sur time

time
count 2000.000000
mean 1395.985500
std 1823.680635
min 11.000000
25% 434.750000
50% 889.500000
75% 1608.250000
max 26130.000000

Il semble qu'il y ait au moins 5001 caractères. (... je ne pense pas que Max soit Summoner) df[['title','time']].sort_values('time').tail()

title time
Magi Craft Meister 14868
Labyrinthe frontalier et magicien d'un autre monde 16410
Une autre route du monde culinaire 17653
Summoner va 25536
Légende 26130

** Non **

Relation entre le temps de lecture (nombre de caractères) et le taux de conversation

doku_kai.py


#Diviser par le temps
df['part']=pd.qcut(df.time,4,labels=['D','C','B','A'])
#Moyenne pour chaque pièce
df.groupby('part').agg({'kaiwaritu':['mean']})
part kaiwaritu(moyenne:%)
D 36.990
C 38.180
B 38.322
A 38.540

C'était une surprise. En particulier, le taux de conversation ne semble pas changer, qu'il s'agisse d'une histoire longue ou d'une histoire courte.

Style

J'ai été déçu, alors j'ai essayé d'utiliser une autre fonction appelée style d'écriture. Cela semble être au stade du prototype, et il y a des cas où les données ne sont pas clairement sorties (c'est ambigu en premier lieu), et comme il ne peut pas être réglé sur de, je vais faire deux types de lecture de trame de données

|Paramètres|valeur|La description| |:--|:--|:--| |buntai |int string|Vous pouvez spécifier le style. trait d'union(-)Vous pouvez effectuer une recherche OR en les séparant par un symbole. 1: Travail non déclassé et comportant de nombreux sauts de ligne continus 2: Travail non déclassé mais comportant un nombre moyen de sauts de ligne 4: Travail approprié pour le déclassement mais comportant de nombreux sauts de ligne continus 6: Travail non déclassé mais comportant de nombreux sauts de ligne continus Fonctionne avec un nombre moyen de sauts de ligne|

Commencez par diviser en «df1», «df2», «df4» et «df6», respectivement.

Le plus fort sage de l'écusson de disqualification-Le sage le plus fort du monde s'est réincarné pour devenir plus fort- Le goût de la fille de Duke Une autre vie mondiale d'un sage réincarné - j'ai eu une deuxième profession et je suis devenue la plus forte du monde - Je me suis réincarné en tant que fille méchante qui n'a que le drapeau de la ruine du premier jeu ... Donjon en direct!

Une autre cafétéria du monde Quelqu'un veuillez expliquer cette situation Hariko Maiden Je vais disparaître tranquillement Un salarié en milieu de carrière (d'âge moyen) relaxant la révolution industrielle mondiale différente

Le plus fort du monde dans un métier commun Réincarnation sans emploi - je suis sérieux quand je vais dans un autre monde - Une autre chanson fantastique du monde à partir de Death March (version Web) Re: La vie dans un monde différent à partir de zéro Je veux être une personne puissante dans l'ombre![Version Web]

C'était de la boue quand je me suis réincarné Errant dans un autre monde avec une compétence ridicule J'ai dit que la capacité est moyenne! C'est une araignée, qu'est-ce que c'est? Le pouvoir magique du saint est polyvalent

Il y a des classifications que je ne comprends pas, mais je vais les accepter ici.

df1 df2 df4 df6
count 500.000000 500.000000 500.00000 500.000000
mean 36.506000 35.246000 38.74200 37.668000
std 11.489211 14.927396 9.70091 13.106691
min 1.000000 0.000000 6.00000 0.000000
25% 28.000000 25.000000 32.75000 30.000000
50% 36.000000 35.000000 39.00000 38.000000
75% 44.000000 44.250000 45.00000 46.000000
max 70.000000 98.000000 71.00000 96.000000

En regardant ce résultat, même s'il n'y avait pas de grande différence, df2 était globalement petit et df6 était grand. La raison pour laquelle les populations sont fixées à 500 chacune est que la première population était de 2000, et lorsque les populations ont été affichées par incréments de 2000, df2 a chuté encore à 34%.

En regardant cela, le taux de conversation ne semble pas être lié au style d'écriture. ~~ Je me demande si c'est un genre ~~

Impressions

Le résultat de l'analyse ne s'est pas très bien passé, mais je me suis demandé si c'était une pratique lorsque je suis allé travailler à l'avenir. Si je propose une analyse de données intéressante, j'aimerais l'essayer. Quand je l'ai relu, j'ai été surpris par le faible taux de conversation de Tosura. Est-ce parce qu'il y a beaucoup de conversations dans mon cœur?

Recommended Posts

J'ai essayé le roman Naro API 2
J'ai essayé l'API du roman Naruro
J'ai essayé d'utiliser l'API checkio
J'ai essayé de toucher l'API COTOHA
J'ai essayé d'utiliser l'API BigQuery Storage
J'ai essayé d'accéder à l'API Qiita depuis le début
J'ai essayé d'utiliser l'API Google Cloud Vision
J'ai essayé de toucher l'API Qiita
J'ai essayé la bibliothèque changefinder!
J'ai essayé d'utiliser l'API de Sakenowa Data Project
J'ai essayé de frapper l'API avec le client python d'echonest
J'ai essayé d'analyser les émotions de tout le roman "Weather Child" ☔️
[Première API COTOHA] J'ai essayé de résumer l'ancienne histoire
J'ai essayé le tutoriel TensorFlow 1er
J'ai essayé de créer l'API Quip
J'ai essayé le tutoriel TensorFlow 2ème
J'ai touché l'API de Tesla
J'ai essayé de sauvegarder l'historique des demandes d'API DRF avec django-request
J'ai essayé de toucher la bibliothèque d'API de contrôle de routeur multi-fournisseur NAPALM
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
J'ai essayé l'API Google Cloud Vision pour la première fois
J'ai essayé d'obtenir diverses informations de l'API codeforces
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection
J'ai essayé d'utiliser l'API COTOHA (il y a aussi du code sur GitHub)
Suite ・ J'ai essayé de toucher la bibliothèque d'API de contrôle de routeur multifournisseur NAPALM
Tutoriel TensorFlow J'ai essayé MNIST 3rd
J'ai essayé le serveur asynchrone de Django 3.0
J'ai essayé de résumer la commande umask
J'ai essayé tensorflow pour la première fois
J'ai essayé de reconnaître le mot de réveil
J'ai essayé d'utiliser l'API de données YOUTUBE V3
Je suis tombé sur l'API Hatena Keyword
J'ai essayé l'outil de visualisation OSS, sur-ensemble
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
Python: j'ai essayé le problème du voyageur de commerce
J'ai essayé de jouer avec l'image avec Pillow
J'ai créé une API Web
J'ai essayé le framework de test Python Tornado
J'ai essayé d'appeler l'API de prédiction du modèle d'apprentissage automatique de WordPress
J'ai essayé de gratter
J'ai essayé PyQ
J'ai essayé AutoKeras
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé de résumer diverses phrases à l'aide de l'API de synthèse automatique "summpy"
J'ai essayé le moulin à papier
J'ai essayé de visualiser le texte du roman "Weather Child" avec Word Cloud
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé django-slack
J'ai essayé Django
J'ai essayé spleeter
J'ai essayé cgo
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé Web Scraping pour analyser les paroles.
J'ai essayé d'utiliser l'API Detect Labels d'AWS Rekognition