[PYTHON] Faisons résumer Aozora Bunko en discutant avec COTOHA

C'est le premier message de Qiita. Veuillez pardonner les points qui n'atteignent pas. Promise Bugfix.

De bons articles ont été produits en masse à partir de la planification de l'API COTOHA, et je l'apprécie beaucoup en tant que lecteur. Quand j'ai pensé faire quelque chose moi-même, j'ai voulu résumer les œuvres littéraires. Naturellement, la littérature open source est limitée, j'ai donc choisi Aozora Bunko comme cible.

En conclusion, les résultats ne sont pas significatifs sur le plan académique. La conclusion est que j'ai essayé l'API COTOHA et obtenu des résultats intéressants à ma manière. Mais l'API de traitement du langage naturel n'est-elle pas quelque chose qui peut être apprécié de cette manière? Proposition.

Parmi les API COTOHA, j'attends beaucoup de l'API de synthèse. En termes de réduction de la quantité d'informations, je pense que ce sera un bon outil auxiliaire pour les gens modernes occupés. C'est comme dire "Dieu est mort!" Quand vous lui donnez "Zaratustra parle". Eh bien, je ne sais pas ce qui aide nos vies si nous obtenons le résumé "Dieu est mort!"

L'environnement est collaboratif.

API COTOHA, ou

COTOHA API

C'est une API que vous pouvez facilement essayer le traitement du langage! (Qiita n'a plus besoin d'explication, je vais donc l'omettre)

Sur l'épaule du géant

Vous pouvez facilement faire de grandes choses en montant sur les épaules des ancêtres de Qiita. Merci beaucoup.

J'ai fait un graphique radar émotionnel du travail d'Aozora Bunko Copiez et collez du code pour utiliser très facilement Cotoha sur Google colab [Première API COTOHA] J'ai essayé de résumer l'ancienne histoire

Ci-dessous, je continuerai d'hériter de mon code, de ma philosophie, de ma passion et de mes sentiments à moitié intéressants.

Tenez-vous sur l'épaule du géant

Le code que j'ai écrit cette fois divise simplement le texte à analyser en un certain nombre (5000 caractères) et le transmet à l'API. Il est également regrettable d’appeler cela une marche à suivre. Il s'agit d'une montagne de sable. Je pense qu'il est correct de percer avec des points de ponctuation, mais je manque de compétences techniques.

def summarize_by_cotoha(url):
  document=get_txt_from_aozorabunko(url)
  document_split=[document[i:i+5000] for i in range(0,len(document),5000)]
  document_summary=[]
  for sentense in document_split:
    document_summary.append((cotoha_call("summary",sentense))["result"])

  return document_summary

Résumons la bibliothèque du ciel bleu

Je n'avais pas de formation littéraire, donc je l'ai essayé avec le thème de la «disqualification des êtres humains de Tadashi», qui est le nombre maximum de promesses si on les considère favorablement. Je ne l'ai pas lu. Le titre touche mon cœur pour une raison quelconque.


#Disqualification humaine
ningenshikkaku=get_txt_from_aozorabunko("https://www.aozora.gr.jp/cards/000035/files/301_14912.html")
cotoha_call("summary",ningenshikkaku)

===>
Résumé (β)
===>
<Error> BAD REQUEST

procès

Quoi? Qu'est-ce que BAD REQUEST? J'ai entendu dire qu'une erreur se produirait si la demande est trop longue, mais est-ce une mauvaise demande?

Je suis un peu frustré, alors je vais demander à COTOHA.


cotoha_call("summary",'''
Je ne suis pas sûr de la cause de l'erreur.
Est-ce un problème d'être appelé BAD REQUEST?
S'il te plait fais quelquechose!

''')

===>
Résumé (β)
===>
{'result': 'Je ne suis pas sûr de la cause de l'erreur.', 'status': 0}

Apparemment, les informations autres que "J'ai eu une erreur!" Ont été considérées comme des ordures.

Essayez de mettre dans l'actualité et d'explorer la réaction



cotoha_call("summary",'''
Je ne suis pas sûr de la cause de l'erreur.
Est-ce un problème d'être appelé BAD REQUEST?
S'il te plait fais quelquechose!
Il fait beau aujourd'hui, n'est-ce pas! C'est le meilleur au printemps! Je ne peux pas attendre les fleurs de cerisier, non? Le virus corona n'est-il pas convergé?

''')

===>
Résumé (β)
===>
{'result': 'Je ne suis pas sûr de la cause de l'erreur.', 'status': 0}

Il semble qu'il ne soit jugé que comme un Kramer qui se plaint de l'erreur

Mettons dans la seule phrase que Natsume Soseki connaît, ou la phrase de la démission de Nobunaga Oda.


cotoha_call("summary",'''
Je ne suis pas sûr de la cause de l'erreur.
Est-ce un problème d'être appelé BAD REQUEST?
S'il te plait fais quelquechose!
Il fait beau aujourd'hui, n'est-ce pas! C'est le meilleur au printemps! Je ne peux pas attendre les fleurs de cerisier, non? Le virus corona n'est-il pas convergé?

Je suis un chat.

50 ans d'humain
Si vous plongez dans les cieux inférieurs
Comme un rêve
Reçu une fois
Devrait-il y avoir quelque chose qui ne peut pas être détruit
''')

===>
Résumé (β)
===>
{'result': 'Si nous plongeons dans les cieux pendant 50 ans, cela deviendra comme un rêve, et devrait-il y avoir quelque chose qui ne peut pas être détruit une fois?', 'status': 0}

Il a finalement répondu. Comparé à la phrase de démission de Nobunaga Oda, ma plainte malveillante semble être moins que des ordures

À ce stade, j'ai finalement décidé de diviser le texte et de le transmettre à l'API.


ningen_summary=summarize_by_cotoha("https://www.aozora.gr.jp/cards/000035/files/301_14912.html")

['Je n'ai jamais vu un enfant avec un regard aussi mystérieux.',
 'Même les hommes plus jeunes ont été informés par leur mère de la façon dont le discours était ce soir, et ils ont dit que c'était très intéressant.',
 'J'ai joué un clown, et l'homme ne s'est jamais moqué de moi, et je savais que si je jouais trop de clown pour un homme, j'échouerais. Alors j'ai toujours essayé de me rassembler au bon endroit, mais la femme ne savait pas que c'était juste, et pour toujours et pour toujours, elle a demandé un clown d'elle-même, et elle était épuisée en réponse au rappel sans fin. ..',
 'Seulement pour Takeichi, j'avais montré mes nerfs périssables pendant longtemps, et j'ai pu montrer cet autoportrait à Takeichi en toute tranquillité, et j'ai été grandement félicité, et deux ou trois autres images de fantômes. J'ai continué à dessiner et j'ai eu une autre prédiction de Takeichi: "Tu seras un grand peintre."',
 'Mais pour moi, cela me semblait évident.',
 'C'est effrayant que je sois toujours seul dans cette pièce du lodge, et j'ai l'impression d'être attaqué par quelqu'un et d'être frappé par quelqu'un, et quand je saute dans la ville, c'est un mouvement de Rei. J'ai aidé ou bu du saké bon marché avec Horiki, j'ai abandonné la plupart de mes études et mes études de peinture, et suis entré au lycée en novembre de la deuxième année, plus âgé que moi. J'ai eu une mort triste avec une femme mariée et ma condition personnelle a complètement changé.',
 'Tsuneko est maintenant embrassé.',
 'Mais si vous vous sentez bien, définissez clairement vos projets futurs et me consultez, je vais essayer de vous aider, au moins par petites étapes, pour votre rééducation. Je réfléchis même.',
 'Je n'ai jamais visité la maison d'Horiki de moi-même, et je m'appelais habituellement Horiki à moi-même par télégramme, mais maintenant même les frais de télégramme sont solitaires et j'y tombe. Horiki pensa qu'il ne viendrait peut-être pas simplement en envoyant un télégramme de son corps, alors il décida de «visiter», ce à quoi il n'était pas doué, et soupira et monta dans le tramway. Quand j'ai réalisé que la seule corde sur laquelle je pouvais compter dans le monde était cette Horiki, j'ai été frappé par un terrible signe que ma colonne vertébrale était devenue froide.',
 'Depuis, j'ai dû effrayer même Shigeko.',
 '"Voulez-vous boire?"',
 'La confiance est un péché.',
 'Yoshiko semble penser qu'elle a bu du poison à la place de Yoshiko, et plus encore qu'avant, elle s'est agrippée et n'a pas ri de tout ce qu'elle a dit. C'était tellement indescriptible que j'étais ennuyé d'être dans la chambre de l'appartement, alors je suis juste sorti et j'ai dû boire du saké bon marché comme d'habitude.',
 'Cette amie était une soi-disant alumni à l'époque où j'étais à l'université, et maintenant je suis chargée de cours dans un certain collège pour femmes, mais en fait j'ai demandé à cette amie d'épouser mes parents, alors cette course Pour cette raison, j'ai décidé d'acheter des fruits de mer frais et de les donner à ma famille, alors je suis allé à Funabashi City avec un sac à dos sur le dos.']


Une personne comme moi qui n'a aucun talent littéraire ne peut le comprendre qu'en 3 lignes, donc je vais le résumer plus loin


ningen_summary_summary=cotoha_call("summary",''.join(ningen_summary))
ningen_summary_summary

===>
Résumé (β)
===>
{'result': 'Yoshiko semble penser qu'elle a bu du poison à la place de Yoshiko, et plus encore qu'avant, elle s'est agrippée et n'a pas ri de tout ce qu'elle a dit. C'était tellement indescriptible que j'étais ennuyé d'être dans la chambre de l'appartement, alors je suis juste sorti et j'ai dû boire du saké bon marché comme d'habitude.',
 'status': 0}

En d'autres termes, la disqualification humaine ** Yoshiko allait encore boire du saké bon marché ** Semble être le résumé de COTOHA. Qui est Yoshiko? L'image du chat sur place est dans mon esprit ...

Autres travaux

##Naked lady (traduit parce que l'affichage du droit d'auteur était subtil)
hadaka_summary=summarize_by_cotoha("https://www.aozora.gr.jp/cards/000019/files/46319_23030.html")
hadaka_summary

["Il n'y a que deux escrocs"],["Mais King, es-tu nu?"]

C'est assez fondamental, mais quand j'ai mis ces deux-là sur l'API de résumé, le premier a gagné. Il semble que l'escroc a un impact plus fort que le roi.


#Théorie de la relativité

soutaisei_summary=summarize_by_cotoha("https://www.aozora.gr.jp/cards/001428/files/50328_64360.html")
soutaisei_summary

['Nous pouvons en quelque sorte appeler chaque objet stationnaire par rapport à l'éther un objet absolument stationnaire.',
 "Ce système de marque assise K'Placez également un système d'horloge dans cet espace et mettez-les tous dans K'Travaillons avec ce K'Vous pouvez régler une horloge stationnaire par rapport à exactement selon les règles données ci-dessus.",
 'La vitesse à laquelle l'horloge avance en état de mouvement est déterminée par l'horloge de mouvement qui vient d'être considérée parmi les horloges stationnaires par rapport à K et mesurant le temps par rapport à K. Il faut considérer qu'elle se trouve toujours en comparaison avec la position du pointeur de quelque chose qui passe.']

#Résumé supplémentaire
cotoha_call("summary",''.join(soutaisei_summary))

{'result': "Ce système de marque assise K'Placez également un système d'horloge dans cet espace et mettez-les tous dans K'Travaillons avec ce K'Vous pouvez régler une horloge stationnaire par rapport à exactement selon les règles données ci-dessus.",
 'status': 0}

Hmmm, pourrait-il être résumé? J'ai l'impression d'avoir entendu la voix de COTOHA dire: "Ne donnez pas quelque chose que vous ne comprenez pas." Je vous remercie

Serpentin

Comme il est difficile de penser au droit d'auteur, j'ai essayé d'appliquer les remarques récentes du ministre à l'API de synthèse


cotoha_call("summary","Quand j'ai pensé à environ 30 ans à partir de maintenant, je me demandais quel âge j'aurais dans 30 ans immédiatement après la catastrophe. C'est pourquoi je pense que je suis un politicien potentiel pour voir si je peux tenir ma promesse dans 30 ans si je reste en bonne santé.")

{'result': 'Quand j'ai pensé à environ 30 ans à partir de maintenant, je me demandais quel âge j'aurais dans 30 ans immédiatement après la catastrophe.', 'status': 0}

J'ai entendu la voix de M. COTOHA me demander si je pouvais résumer quelque chose qui n'a aucun sens.

Résumé

J'ai aussi essayé Hansel et Gretel et Akazukin-chan, mais ce n'était pas assez bon. La plupart des articles de l'Aozora Bunko ont un style ancien, ils semblent donc incompatibles.

Si vous pouvez spécifier une phrase pour le résumé, deux phrases pour le résumé, etc., je pense que l'application va encore s'étendre!

Gloire au développement futur de l'API COTOHA!

Recommended Posts

Faisons résumer Aozora Bunko en discutant avec COTOHA
Demandez-leur de lire lentement la bibliothèque du ciel bleu
Clustering des livres d'Aozora Bunko avec Doc2Vec
Faites-leur lire lentement l'Aozora Bunko: plus précisément
Faites-leur lire lentement l'Aozora Bunko: amélioration du code
Profitons du traitement du langage naturel à l'aide de l'API COTOHA