https://qiita.com/dely13/items/5e949a384161c961d8ce Si vous lisez cet article et que vous l'essayez vous-même après avoir pratiqué ~~ play ~~, le résultat sera différent → Cet article 2017 J'ai donc essayé de publier la dernière version (à 10h00 le 29 juin 2020)
J'utiliserai l'article de @ dely13 tel quel
dely13.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/"
#Spécifiez les paramètres d'API dans le dictionnaire
#Dans cette condition, sortez les données au format json dans l'ordre de l'évaluation globale.
payload = {'of': 't-gp-gf', 'order': 'hyoka','out':'json'}
st = 1
lim = 500
data = []
while st < 2000:
payload = {'of': 't-gp-gf-n', '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)
#Prétraitement ('year'Ajouter une colonne,'title_len'Ajouter une colonne)
df['general_firstup'] = pd.to_datetime(df['general_firstup'])
df['year'] = df['general_firstup'].apply(lambda x:x.year)
df['title_len'] = df['title'].apply(len)
Veuillez lire l'article original pour plus de détails car il est vraiment tel qu'il est
En 2017
Des chiffres intéressants. La valeur moyenne est de 17 caractères, ce qui équivaut au nombre de caractères dans le haïku. En d'autres termes, le titre de Naruro était Haiku! Le bruit des vieux étangs et des grenouilles sautant dans l'eau ...
On m'a dit, mais en 2020 ...?
df['title_len'].hist()
df['title_len'].describe()
Diagramme d'histogramme df ['title_len']. Hist ()
Données df ['title_len']. Describe ()
count 2000.000000 mean 24.179500 std 15.528356 min 2.000000 25% 12.000000 50% 21.000000 75% 32.000000 max 100.000000 Name: title_len, dtype: float64
Wwwwwww qui augmente de 7 caractères en moyenne
per_year.py
title_by_year = df.groupby('year')['title_len'].agg(['mean','count','std']).reset_index()
#terrain
title_by_year.plot(x='year',y='mean')
#Les données
title_by_year
Plot title_by_year.plot (x = 'year', y = 'mean')
* mean
= moyenne
Agréger title_by_year
year | mean | count | std |
---|---|---|---|
2008 | 7.500000 | 2 | 2.121320 |
2009 | 12.428571 | 7 | 8.182443 |
2010 | 10.882353 | 17 | 5.278285 |
2011 | 10.180000 | 50 | 4.684712 |
2012 | 13.294737 | 95 | 6.963237 |
2013 | 14.115942 | 138 | 8.541930 |
2014 | 16.065476 | 168 | 8.780176 |
2015 | 18.218009 | 211 | 9.701245 |
2016 | 21.577358 | 265 | 12.326472 |
2017 | 24.476015 | 271 | 11.750113 |
2018 | 29.425856 | 263 | 13.890288 |
2019 | 31.327327 | 333 | 15.861156 |
2020 | 40.483333 | 180 | 22.348053 |
** Le titre de 2019 sera une courte chanson ** La personne que j'ai devinée dans l'article de 2017 est incroyable. C'est Don Pisha.
Puisque c'est un gros problème, je vais essayer de trouver le maximum et le minimum
title_by_year = df.groupby('year')['title_len'].agg(['mean','min','max']).reset_index()
#terrain
title_by_year.plot(x='year')
#Les données
title_by_year.plot
Tracer title_by_year.plot (x = 'year')
Données title_by_year
year | mean | min | max |
---|---|---|---|
2008 | 7.500000 | 6 | 9 |
2009 | 12.428571 | 5 | 25 |
2010 | 10.882353 | 2 | 23 |
2011 | 10.180000 | 4 | 26 |
2012 | 13.294737 | 3 | 40 |
2013 | 14.115942 | 3 | 54 |
2014 | 16.065476 | 4 | 63 |
2015 | 18.218009 | 3 | 59 |
2016 | 21.577358 | 2 | 77 |
2017 | 24.476015 | 4 | 69 |
2018 | 29.425856 | 5 | 74 |
2019 | 31.327327 | 4 | 100 |
2020 | 40.483333 | 4 | 100 |
Ces données de 100 caractères ne dépassent-elles pas le nombre de caractères ...?
max_100.py
df[['ncode','title','year','title_len']].set_index('ncode').query('title_len==100')
ncode | title | year | title_len |
---|---|---|---|
N7855GF | Traitée comme incompétente et bannie de ma fête des amis d'enfance, je suis un imbécile qui utilise pleinement le cadeau «traduction»... | 2020 | 100 |
N6203GE | Un forgeron qui a été exilé de la dictature, en fait, avec la protection de "Blacksmith Goddess", tout à coup avec un équipement complet d'armure "Super Legendary Class"... | 2020 | 100 |
N0533FS | [Version série] J'ai vu l'idole chasseuse marcher avec un beau mec, alors j'ai acheté un emploi à temps partiel... | 2019 | 100 |
N4571GF | Dans la 7ème semaine de la boucle, j'ai appris que j'étais équipé de mes amis croyants, donc au 8ème tour j'ai activement fait la fête... | 2020 | 100 |
... ce n'est pas plus de 100 caractères ...?
Quand je l'ai recherché après avoir écrit l'article, c'était exactement 100 caractères
Y a-t-il une limite de caractères? C'est ce que je combat à la limite.
Au contraire, je m'intéressais aux titres courts
mini_len.py
df.groupby('title_len')['title_len'].agg(['count']).head(9).T
Liste de correspondance entre le nombre de caractères et le nombre d'œuvres Depuis qu'il est devenu plus long, il est placé horizontalement
title_len | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
count | 2 | 8 | 18 | 35 | 41 | 38 | 64 | 75 | 89 |
title2_4.py
df[['title','year','title_len']].set_index('title').sort_values('title_len').query('title_len<5')
4 personnages sont des extraits
title | year | title_len |
---|---|---|
lettre | 2016 | 2 |
Aube | 2010 | 2 |
Arc et épée | 2013 | 3 |
Raison de l'eau | 2012 | 3 |
Roi des tombes! | 2013 | 3 |
Ami d'enfance | 2016 | 3 |
Chercheur | 2013 | 3 |
Ombre de la tour | 2012 | 3 |
Personne d'extermination | 2015 | 3 |
Chat et dragon | 2013 | 3 |
Saint de l'oubli | 2020 | 4 |
J/53 | 2012 | 4 |
Roi démon noir | 2011 | 4 |
Mon serviteur | 2019 | 4 |
L'amour de la foule | 2015 | 4 |
Petit-fils de Sage | 2015 | 4 |
Septième | 2014 | 4 |
Même quelques lettres sont célèbres. J'ai été impressionné par les anciens Moba qu'il y avait un «titre» dans les quatre lettres.
Est-ce l'influence de l'animation des romans mobiles que de nombreux débutants entrent, sinon autant que Moba (actuellement Ebu)? J'ai été formé par Moba, donc même si c'est un peu difficile à lire, je vais le lire si le contenu est intéressant, mais quand même, le titre est long. Je suis accro à this et this sont également de longs titres. (Ebudato ce * Stemmer)
Je voulais essayer différentes choses car je peux affiner les conditions de recherche avec l'API Naro. Et si vous souhaitez extraire plus de 2000 éléments ...
Recommended Posts