[PYTHON] [PyTorch] Einführung in die Klassifizierung japanischer Dokumente mit BERT

Einführung

In diesem Artikel werden wir den Prozess der Feinabstimmung eines vorab geschulten BERT-Modells durch die Kategorisierung von Nachrichtenartikeln verfolgen. Es kann auf jede japanische Dokumentklassifizierungsaufgabe angewendet werden, indem einfach die Eingabedaten geändert werden.

Fühlen Sie sich frei zu kommentieren, wenn Sie Fehler oder bessere Wege bemerken.

Vorbereitungen

Google Colaboratory wird für die Implementierung verwendet. Ausführliche Informationen zum Einrichten und Verwenden von Google Colaboratory finden Sie in [diesem Artikel](https: // cpp-fu learning.com/python_colaboratory/). Es sind jedoch keine speziellen Einstellungen erforderlich. Wenn Sie über ein Google-Konto verfügen, können Sie es sofort, einschließlich der GPU, kostenlos verwenden. ** Wenn Sie die GPU für die Reproduktion verwenden möchten, ändern Sie den Hardwarebeschleuniger von "Laufzeit" -> "Laufzeittyp ändern" auf "GPU" und speichern Sie ihn. ** ** **

Dokumentenklassifizierung durch BERT

Wir werden die öffentlichen Daten Livedoor News Corpus verwenden. Diese Daten werden jedem Nachrichtenartikel in einer von neun Genrekategorien zugeordnet. Wir werden ein Dokumentklassifizierungsmodell von BERT für Aufgaben implementieren, die in diese Kategorie fallen.

Daten lesen

Laden Sie zunächst die Zieldaten herunter und formatieren Sie sie. Für die Bearbeitung dieses Teils habe ich auf [diesen Artikel] verwiesen (https://radiology-nlp.hatenablog.com/entry/2019/11/25/124219).

#Laden Sie den Newskorpus "Livedoor" herunter
!wget https://www.rondhuit.com/download/ldcc-20140209.tar.gz
!tar zxvf ldcc-20140209.tar.gz
#Erstellen einer Datei zum Speichern von Formatierungsergebnissen
!echo -e "filename\tarticle"$(for category in $(basename -a `find ./text -type d` | grep -v text | sort); do echo -n "\t"; echo -n $category; done) > ./text/livedoor.tsv
#Nach Kategorie speichern
!for filename in `basename -a ./text/dokujo-tsushin/dokujo-tsushin-*`; do echo -n "$filename"; echo -ne "\t"; echo -n `sed -e '1,3d' ./text/dokujo-tsushin/$filename`; echo -e "\t1\t0\t0\t0\t0\t0\t0\t0\t0"; done >> ./text/livedoor.tsv
!for filename in `basename -a ./text/it-life-hack/it-life-hack-*`; do echo -n "$filename"; echo -ne "\t"; echo -n `sed -e '1,3d' ./text/it-life-hack/$filename`; echo -e "\t0\t1\t0\t0\t0\t0\t0\t0\t0"; done >> ./text/livedoor.tsv
!for filename in `basename -a ./text/kaden-channel/kaden-channel-*`; do echo -n "$filename"; echo -ne "\t"; echo -n `sed -e '1,3d' ./text/kaden-channel/$filename`; echo -e "\t0\t0\t1\t0\t0\t0\t0\t0\t0"; done >> ./text/livedoor.tsv
!for filename in `basename -a ./text/livedoor-homme/livedoor-homme-*`; do echo -n "$filename"; echo -ne "\t"; echo -n `sed -e '1,3d' ./text/livedoor-homme/$filename`; echo -e "\t0\t0\t0\t1\t0\t0\t0\t0\t0"; done >> ./text/livedoor.tsv
!for filename in `basename -a ./text/movie-enter/movie-enter-*`; do echo -n "$filename"; echo -ne "\t"; echo -n `sed -e '1,3d' ./text/movie-enter/$filename`; echo -e "\t0\t0\t0\t0\t1\t0\t0\t0\t0"; done >> ./text/livedoor.tsv
!for filename in `basename -a ./text/peachy/peachy-*`; do echo -n "$filename"; echo -ne "\t"; echo -n `sed -e '1,3d' ./text/peachy/$filename`; echo -e "\t0\t0\t0\t0\t0\t1\t0\t0\t0"; done >> ./text/livedoor.tsv
!for filename in `basename -a ./text/smax/smax-*`; do echo -n "$filename"; echo -ne "\t"; echo -n `sed -e '1,3d' ./text/smax/$filename`; echo -e "\t0\t0\t0\t0\t0\t0\t1\t0\t0"; done >> ./text/livedoor.tsv
!for filename in `basename -a ./text/sports-watch/sports-watch-*`; do echo -n "$filename"; echo -ne "\t"; echo -n `sed -e '1,3d' ./text/sports-watch/$filename`; echo -e "\t0\t0\t0\t0\t0\t0\t0\t1\t0"; done >> ./text/livedoor.tsv
!for filename in `basename -a ./text/topic-news/topic-news-*`; do echo -n "$filename"; echo -ne "\t"; echo -n `sed -e '1,3d' ./text/topic-news/$filename`; echo -e "\t0\t0\t0\t0\t0\t0\t0\t0\t1"; done >> ./text/livedoor.tsv

Wenn Sie den obigen Befehl ausführen, wird nach dem Dateinamen und dem Artikelkörper `` `/ text / livingoor.tsv``` eine Tabelle mit 0 oder 1 Flags angezeigt, die angibt, zu welcher der 9 Kategorien sie gehört Es sollte gemacht werden als.

#Bestätigung
!head -10 ./text/livedoor.tsv

Ausgabe



filename	article	dokujo-tsushin	it-life-hack	kaden-channel	livedoor-homme	movie-enter	peachy	smax	sports-watch	topic-news
dokujo-tsushin-4778030.txt Juni, der bald Juni Braut genannt wird. Ich denke, es gibt viele alleinstehende Frauen, die sich in einem Zustand der "Feierarmut" befinden und gerade angerufen wurden, obwohl ihre Zeremonie noch nicht durchgeführt wurde. Da die Zahl der Besucher zunahm, war es nicht ungewöhnlich, dass solche Anfragen gestellt wurden. "Ich habe eine Anfrage ... Können Sie mir eine Rede von einem Vertreter eines Freundes halten?" Was sollte eine einzelne Frau in einem solchen Fall tun? Wenn Sie in letzter Zeit im Internet usw. suchen, werden viele Beispielsatzseiten für Reden von Freunden angezeigt. Wenn Sie also darauf verweisen, kann jeder sichere Reden erstellen. Yuri (33 Jahre alt) hat es jedoch mit Bezug auf das Internet erstellt, sagte aber: "Ich habe mir Sorgen gemacht, ob dies wirklich gut ist. Da ich alleine lebe, kann mir niemand sagen, was ich denke, aber ich werde mich die Mühe machen, andere Freunde zu fragen. Ich habe mich gefragt, ob das der Fall ist ... ", also habe ich es als Website zur Problemberatung im Internet verwendet. Er postete den dort verfassten Vortragstext und schickte eine Nachricht mit der Aufschrift: "Ist das in Ordnung? Bitte korrigieren Sie ihn." "Ungefähr drei Leute haben es über Nacht korrigiert. Übrigens gab es viele andere Leute wie diese, und es gab viele Stellen auf der Konsultationsseite, die ebenfalls um Korrekturen baten." (Yuri) .. Als ich mir die Seite ansah, die mir als Probe beigebracht wurde, gab es sicherlich mehr als 1000 Beiträge mit der Aufschrift "Bitte korrigieren Sie Ihre Hochzeitsrede." Ich wusste nicht, dass es im Schatten einer glücklichen Hochzeit eine solche Internet-Community gibt. "Ich bin immer noch froh, wenn ich für die im Voraus angeforderte Rede bereit bin. Das Ekelhafteste ist die Überraschungsrede!", Sagte die arme alleinstehende Glückwunschfrau, die sagte, dass allein im letzten Jahr mehr als 100.000 Feiern stattgefunden hätten. Kaoru (35 Jahre alt) "Ich kann im Grunde nicht gut in der Öffentlichkeit sprechen. Wenn ich plötzlich nominiert werde, bin ich verwirrt und kann nichts sagen. Dann kann ich es überhaupt nicht genießen, selbst wenn ich in Selbsthass verfallen bin." Das Verdienst der Überraschungsrede ist, dass sie nicht vorbereitet ist. Es scheint also Spaß zu machen, Frank seine wahren Absichten aussprechen zu lassen. Wenn Sie jedoch eine Person sind, die gut damit umgehen kann, aber nicht gut darin ist, besteht ein großes Risiko, dass Sie "schlammig" statt "offen" werden. Übrigens, im Fall eines professionellen Moderators scheint es während der Zeremonie oft ein Wort zu geben, anstatt eine echte Überraschung: "Ich werde Sie später als Überraschungsrede nominieren", aber Kaoru sagt: "Wie viele Minuten her Es ist unmöglich zu sagen! " Der Punkt ist, dass es wichtig ist, Menschen auszuwählen, die Überraschungen genießen können. Auf der anderen Seite sagte Herr Yukie (30 Jahre alt): "Es ist auf weltliche Weise langweilig, und als ich im Internet nach Beispielsätzen suchte, dachte ich: 'Gibt es so einen Weg?'" "Rede". "Es ist eine Möglichkeit, einen Brief an den Freund der Braut zu schreiben und ihn wie XX vorzulesen. In diesem Fall ist es in Ordnung, ihn ein wenig offen zu schreiben, und vor allem können Sie ihn vorlesen, ohne ihn auswendig zu lernen. Wenn Sie es einem Freund geben, wird es ein Denkmal sein. "(Mr. Yukie) Ich verstehe, es ist wahr, dass Sie dies nur lesen müssen, damit selbst Leute, die nicht gut in der Öffentlichkeit sprechen können, nicht scheitern. Obwohl der Protagonist das Brautpaar war, war ich nervös, wenn es um die Situation ging, und ich probte heimlich über den Inhalt.
dokujo-tsushin-4778031.txt Vor der Verbreitung von Mobiltelefonen waren allgemeine Telefone das übliche Werkzeug, um Liebhaber zu kontaktieren. Wenn Sie mit Ihrem Geliebten Schluss machen, löschen Sie unter Tränen die Kontaktinformationen der Person in Ihrem Notizbuch. Dann würde die Kante abgeschnitten. Heutzutage gibt es jedoch ein Mobiltelefon, eine E-Mail und wenn Sie das Internet öffnen, können Sie das Abendessen der anderen Partei auf dem Blog sehen. Was denken die alleinstehenden Frauen über die Beziehung zu dem Ex-Freund, der es nicht schaffen kann? "Ich war überrascht, eine E-Mail von ihm zu erhalten, der sich vor fünf Jahren getrennt hat", sagte Naomi (36 Jahre alt). "Ich habe mich wegen seines Betrugs getrennt, aber jetzt heißt es, dass er Single zu sein scheint." Ich habe einen Liebhaber, der sich verloben will, also bin ich fertig. Wenn ich keinen Partner gehabt hätte, hätte ich vielleicht eine Auferstehungsliebe gehabt. Ist es nicht eine gute Zeit für eine alleinstehende Frau, die nur wenige Chancen hat, sich zu treffen? 」 Zu dieser Zeit lebte Naomi im Haus ihrer Eltern. Wenn es keine E-Mails oder Handys gäbe, hätte er ihn wahrscheinlich nicht kontaktieren können. Auf der anderen Seite sagte Mikako (38 Jahre alt): "In Zeiten gewöhnlicher Telefone war es schwieriger, die Krawatten zu lösen." "Jetzt, da ich auf Speicher angewiesen bin, gibt es bis dahin einen Platz, wenn ich meine Telefonnummer und E-Mail-Adresse lösche. Wenn ich versuche, ihn zu ziehen, wird er gezogen, wenn ich versuche, ihn zu schneiden, wird er geschnitten. Vor langer Zeit Früher habe ich seine Telefonnummer auswendig gelernt. Ich habe den Hörer abgenommen und wieder aufgelegt ... Es war schwierig, meine Gefühle abzuschneiden. "Mr. Chie (34 Jahre alt) stimmt zu. "Informationen kommen herein, wenn Sie das Informationsnetzwerk nutzen, aber Sie können es selbst ausschließen. Aber ich denke nicht, dass Sie ihn vor der Trennung schützen sollten. Die Zeit bis zur Heilung des Herzens Ich unterbreche oft den Kontakt und sende dann E-Mails, um zu Freundschaften zurückzukehren. “Im Vergleich zu früher war alles oder nichts, jetzt schneide ich ab, kehre zu Freunden zurück und habe eine Freundschaft mit mir. Es wurde möglich, die Beziehung nach dem Abschied auszuwählen, z. B. fortzufahren. Es ist schmerzhaft, solange noch etwas ungenutzt ist, aber wenn Sie die Werkzeuge gut verwenden, können Sie davon profitieren. Es gibt jedoch einige Fallstricke. Abschließend möchte ich Ritsukos (35-jährige) Tohoho-Geschichte vorstellen. "Ich sende per E-Mail einen Meilenstein mit meinem Ex-Freund, den ich vor 10 Jahren getroffen habe. Ich schreibe auch Kommentare in mein Tagebuch mit" My Miku "und tausche Neujahrskarten aus. Der Ex-Freund ist bereits verheiratet und hat Kinder. Es gibt zwei davon. Vor kurzem bin ich mitten in meinem Leben fett geworden und fühle mich wie mein Vater zu Hause. Ich bin ein guter Mensch, aber jetzt, wo ich völlig entspannt bin, warum bin ich so besessen von ihm? Wenn Sie die Erinnerungen an Ihre vergangene Liebe behalten möchten, müssen Sie es möglicherweise nicht wissen. “Die Erinnerungen an die Liebe werden in Ihrem Gehirn verschönert. Es ist gut, Freundschaften im Internet fortzusetzen, aber gleichzeitig können die Erinnerungen an eine schwache und traurige Liebe mit einem Gefühl für das Leben und die Realität bedeckt werden. Achten Sie also darauf, nicht zu viele Verbindungen herzustellen. Nun, sie sind wie einander. (Towa Kurufu) 1 0 0 0 0 0 0 0 0 0
dokujo-tsushin-4782522.txt Herr Kaori (Pseudonym / 31 Jahre alt), der in der Verlagsbranche arbeitet, beschwert sich: "Lieben Männer das" Make-up "von Frauen wirklich?" Das liegt daran, dass viele Entertainer kürzlich ihre Fotos in ihren Blogs veröffentlicht haben, die zu Nachrichten und Gesprächen werden können. Seit Anfang dieses Jahres sind Yuko Ogura, Natsumi Abe und Morning Musume die Entertainer, die "Suppin" auf ihrem Blog gezeigt haben. Es gibt verschiedene Genres wie Reina Tanaka, Maomi Yuuki und Yisa Nakazato, die in ihrem Alter aktiv sind. Da es sich um einen Blog handelt, der das Privatleben in Echtzeit versenden kann, veröffentlicht jeder sein Make-up mit einem entspannten Look. Für Fans wird es ein netter Service sein, einen Blick auf das wahre Gesicht ihres Lieblingsunterhalters zu werfen. Warum hatte sie dann irgendwelche Zweifel daran, dass die Berühmtheit kein Make-up hat? "Ich weiß, dass es meine Schuld ist, aber ich kann seine Schönheit nicht wirklich zugeben, weil ich so selbstbewusst bin", sagt Kaori. "Im Kommentar" Es ist so süß! Oder "Keine Notwendigkeit, es zu schaffen!" "Es ist ziemlich kompliziert zu denken, dass ich meine Make-up-Fotos in Erwartung all des Lobes veröffentliche", fügte er hinzu. Ist es nicht so, weil es ursprünglich ein Fan-Service ist und weil "ich ein Thema anrufen oder von Kommentaren gelobt werden möchte"? Und es scheint, dass die alleinstehende Frau nur "Naname" ansieht. Außerdem sagte Yumi (Pseudonym / 32 Jahre alt), der bei einem Hersteller arbeitet: "Ich werde mich der" Make-up-Illusion "der Männer anschließen. Aber ich möchte, dass Sie die Anstrengung anerkennen, die Sie unternehmen, um schön zu sein ", enthüllte er als Jungfrau. "Ich denke aus tiefstem Herzen, dass junge Mädchen in ihren Teenagern und frühen Zwanzigern sich schminken" Oh, es ist süß ", aber wenn Leute in meinem Alter angeben, verglichen mit meinen eigenen. Nachdem sie die schöne Entertainerin Suppin gesehen haben, sind die alleinstehenden Frauen unwissentlich verletzt. Übrigens, was ist mit der No-Make-up-Show der Berühmtheit und dem tatsächlichen Ruf der Männer? Yusuke (Pseudonym / 34 Jahre alt), der für eine Bekleidungsfirma arbeitet, sagte: "Ich persönlich mag das Gesicht von Frauen nicht, deshalb finde ich es wirklich süß, wenn ich mir Make-up anschaue." Auf der anderen Seite sagte Toru (Pseudonym / 28 Jahre alt), der in einem IT-Unternehmen arbeitet: "Es hängt von der Person ab, aber ich frage mich, warum ich mir die Mühe mache, es in meinem Blog zu veröffentlichen. Ursprünglich möchte ich, dass Frauen-Make-up nur wichtigen Personen gezeigt wird. "Oh, ich habe es mir gerade gezeigt" (lacht), "sagten die Männer. Es wird auf einem Blog gezeigt, der das Gefühl hat, in Zukunft zu boomen. Es scheint, dass es Affirmationen und Oppositionen gibt, aber es ist sicher, dass Männer ein besonderes Gefühl für das "Make-up" von Frauen haben. Es kann notwendig sein, dass die alleinstehenden Frauen ihre echten Gesichter für die Zeit polieren, in der sie ihre Kasuppin zeigen werden. 1 0 0 0 0 0 0 0 0
dokujo-tsushin-4788357.txt Die Veränderung aufgrund der Alterung der Hüfte wird als "Ablenkung → niedriger → Fluss nach innen" und die Brust als "Ablenkung → Biegung → Fluss nach außen" bezeichnet. Die Veränderung der Büste hat bereits in den zwanziger Jahren begonnen, und einige Menschen sind in ihren zwanziger Jahren "flexibel" geworden. Und niemand ist zurückgekehrt. Betrachtet man die Veränderungen in jedem Körperteil von den 20ern bis zu den 50ern, so sind die Veränderungen in Taille und Bauch am größten, und der Bauch hat die gleiche Größe wie die Brust. Dies ist ein Teil des Inhalts der Pressemitteilung des Wacoal-Instituts für Humanwissenschaften vom April, "Entdeckung bestimmter Regeln bezüglich der Körperalterung (Änderung der Körperform aufgrund des Alterns)". Die Überzeugungskraft ist herausragend, da sie mit Fotos und Videos zusammen mit den Daten erklärt wird, die die numerischen Werte des weltlichen Wandels für insgesamt 40.000 Menschen aggregieren und analysieren. Einführung in die körperlichen Eigenschaften und das tägliche Verhalten / Bewusstsein von Menschen mit geringer Veränderung der Körperform, nachdem sie sich der Realität gestellt haben. Der Hauptinhalt besteht darin, den Körper täglich zu bewegen, die Haltung zu überprüfen und immer die Unterwäsche anzuprobieren, um die Passform zu überprüfen. In der Podiumsdiskussion zeigten die Ergebnisse der Person, die ein Jahr lang an dem Experiment mit einem großen Schritt teilgenommen hatte, dass ihre Wirbelsäule gedehnt war und ihr Fett verloren ging. Ich war nicht erschöpft und als ich meinen Bekannten von dem Inhalt erzählte, hörte ich verschiedene Meinungen und Erfahrungen. Es gab auch die Frage: "Ist die Person mit wenig Veränderung im Körper beim Sport, weil sie ständig gemessen wurde?", Aber diese Antwort lautete: "Sei vorsichtig mit deinem täglichen Leben, anstatt dich zu bemühen, Sport zu treiben." Ich habe den starken Eindruck, dass ich nicht viel auf Diät gemacht habe. " Es war Yoko, der sagte: "Meine Tante hat das auch gesagt." Als eine Tante in den Sechzigern mit ihren Freunden einen Ausflug in die heißen Quellen unternahm, war sie erfreut darüber, dass sie gelobt wurde, dass sich an ihrer Brust wenig verändert habe, und fragte sie, wie sie ihre Brust pflegen solle. "Meine Tante trägt immer einen Büstenhalter, und ich messe und probiere ihn immer an, wenn ich ihn kaufe. Andererseits tragen meine Freunde zu Hause manchmal keinen Büstenhalter, weil er" schmerzhaft "ist." Seitdem Yoko das gehört hat, probiert sie Unterwäsche an und misst sie, wenn sie sie kauft. Koko, der unter Rückenschmerzen litt, sagte: "Ich bin auch dünn geworden." Ein Arzt wies darauf hin, dass meine Muskeln schwach waren, also hielt ich mein Fahrrad zum Bahnhof an und beschloss, jeden Tag 30 Minuten lang hin und her zu gehen. Als ich anfing, Kraft aufzubauen, wurde der ganze Körper gestrafft, und als Ergebnis gelang es mir, Gewicht zu verlieren. Ein Kind, das sagte: "Aber wenn Sie Sport treiben, wird es Ihnen gut gehen", verbesserte sich, indem es zu einem Sportverein um die Taille ging, der aufgrund ungesunder Bedingungen Angst bekam. Ich bin froh, dass meine Jeans eine Nummer kleiner sind. In der Podiumsdiskussion heißt es: "Altern ist eine Einbahnstraße, aber der Status quo kann beibehalten werden" und "Anti-Aging zieht in der medizinischen Gemeinschaft Aufmerksamkeit auf sich, aber die Beziehung zwischen der Erhaltung der körperlichen Schönheit und der Erhaltung der Gesundheit sollte zwei Seiten derselben Medaille sein." Es war. In diesem Fall ist es besser, den Alterungswiderstand, dh die Veränderung der Körperform, nicht aufzugeben. Aya Sugimoto sagte: "Ich möchte nicht in meine Jugend zurückkehren oder jünger aussehen. Ich möchte verfolgen, wie schön ich jetzt bin." (Office M2 / Onomaki) Klicken Sie hier für Details 1 0 0 0 0 0 0 0 0
dokujo-tsushin-4788362.txt Das Kindergeld wird ab Juni gezahlt, sollte aber ursprünglich 26.000 Yen pro Kind und Monat gezahlt werden. Die Zahlung wird jedoch im ersten Jahr zum halben Preis erfolgen, und es scheint, dass die monatliche Zahlung von 26.000 Yen pro Kind nach 2011 verschoben wird. Neulich wurde berichtet, dass die Stadt einen Versuch abgelehnt habe, ein Kindergeld für 554 ausländische Männer zu beantragen, die behaupteten, ein Kind in Thailand adoptiert zu haben, aber es scheint, dass schlechte Menschen leicht schummeln können, wenn sie darüber nachdenken. Was ist los mit dem Kindergeld voller Mängel? Von der alleinstehenden Frau, die nicht bezahlt wird, ist eine Stimme des Zweifels zu hören. Yuri, die derzeit ledig ist, beschwert sich, dass sie mit der einheitlichen Zahlung nicht zufrieden sein kann und fragt: "Warum brauchen Sie ein Kindergeld für ein Haus, das von Benz in einem privaten Kindergarten abgeholt wird?" "Ich habe gehört, dass das Kindergeld Frankreich nachahmte, aber in Frankreich wird das Kindergeld als" Familiengeld "bezeichnet und es gibt keine Einkommensgrenze. Das Familiengeld wird jedoch vom zweiten Kind bis zum Alter von 20 und 3 Jahren gezahlt Es scheint, dass Sie eine Premium-Familienbeihilfe aus den Augen bekommen können. Wenn die Kinderbeihilfe zum Zweck von Maßnahmen gegen die sinkende Geburtenrate bestimmt ist, sollte die Zulage nicht wie in Frankreich von der zweiten Person gewährt werden? “ Es ist seltsam, es zu tun. Obwohl gesagt wurde, dass dies eine Gegenmaßnahme gegen die sinkende Geburtenrate sei, gab es keine Stimmen, die sagten, dass sie gebären würden, indem sie sich auf Kindergeld stützen. "In Erwartung einer Zulage, die bei einem Regierungswechsel möglicherweise verschwindet, selbst wenn Sie von nun an heiraten, werden Sie möglicherweise nicht sofort schwanger, und die Kinderzulage wird möglicherweise abgeschafft, wenn Sie sicher gebären." Es gibt keine Möglichkeit oder nichts. Auf die Frage nach der Verwendung von Kindergeld für Hausfrauen mit Kindern sagten viele Menschen, dass sie Geld für zukünftige Bildungsausgaben sparen würden. In Bezug darauf: "Es tut mir sehr leid, dass eine Familie, die es nicht tun konnte, selbst wenn sie ein Kind wollte, die Kosten tragen würde. Es wäre schön, wenn es wirklich für Kinder verwendet würde, aber Eltern würden spielen. Ich möchte nicht, dass Sie unsere Steuern ausgeben, um sie auszugeben oder für die Unterhaltungskosten Ihrer Eltern ", sagt Yuri. Aya Batsuichi sagte: "Sowohl Paare ohne Kinder als auch Singles werden dazu beitragen, Kinder zu erziehen, die die nächste Generation führen, indem sie arbeiten und Steuern zahlen. Ich dachte, das wäre ein Kindergeld, aber für Kinder Der Geldbetrag, der nach Hause gehen soll, wird reduziert, ich weiß nicht, wohin er gehen wird, und ich bin nicht davon überzeugt, dass unsere Steuern aufgrund des verschleierten Antragsformulars an ausländische Kinder gehen werden. " Ich bin verärgert. "Wir sollten das Kindergeld mit der Einkommensgrenze erhöhen, aber es scheint nur bei Wahlen beliebt zu sein, das Kindergeld gleichmäßig auf alle Haushalte zu verteilen. Was passiert mit dem Kindergeld, wenn sich die Verwaltung damit ändert?" Aya war besorgt, dass die Kinder, die das Kindergeld erhielten, künftig in Form einer Steuererhöhung bezahlt würden, wenn das Kindergeld so verteilt würde, aber die lokale Regierung rief nach finanziellen Schwierigkeiten in der lokalen Regierung. Die Stimme der Abstoßung erhebt sich aus. Was wird passieren? Ich möchte zukünftige Kindergelder im Auge behalten. Übrigens habe ich diesmal alleinstehende Menschen ohne Kinder gefragt, aber es gab viele alleinstehende Frauen, die "Kindergeld" nicht verstanden haben, weil es nichts mit ihnen zu tun hatte. Viele Menschen wussten nur dann von der Krankenversicherung, wenn sie in der Lage waren, für ihre Eltern zu sorgen. Wenn jedoch nach der Verabschiedung des Parlaments ein System durchgesetzt wird, wird die von uns gezahlte Steuer verwendet. Es wird gemacht. Ich denke, es ist unser Recht zu wissen und sich zu beschweren. Ist es nicht besser als gleichgültig zu sein? (Büro M2 / Setsuko Saeda) 1 0 0 0 0 0 0 0 0
dokujo-tsushin-4788373.txt Durch Zufall in einer Buchhandlung "Rabbit's Ballet Shoes"(Komine Buchhandlung Naoko Abo/Geschrieben von Naoko Minamizuka/Eine Illustration)Motoko (27-jähriger Apotheker), der das Bilderbuch fand, war voller Nostalgie und Freude. "Ich lernte Ballett und fühlte mich ermutigt, als ich dieses Bilderbuch las. Deshalb las ich es oft in der Bibliothek der Grundschule. Ich suchte mit meiner Mutter in der Nachbarschaft nach einem Buchladen, konnte ihn aber nicht finden. … “Mr. Motoko. In Motokos Zimmer ist jetzt "Rabbit's Ballet Shoes" mit einer beeindruckenden sanften rosa Farbe zu sehen, so dass das Cover sichtbar ist. Masae (40 Jahre alt), der für eine Werbeagentur arbeitet, mag "eine Katze, die millionenfach gelebt hat" (Kodansha Yoko Sano)/Geschrieben von).. Dies ist ein Buch, das ich oft aus der Bibliothek ausgeliehen habe, als ich in der Grundschule war. "In der sechsten Klasse las ich immer noch" Eine Katze, die millionenfach lebte ", obwohl die Kinder um mich herum einen dicken Roman lasen. Meine Mutter warnte mich, ein anständigeres Buch zu lesen. Mir wurde gesagt, dass ... Jetzt kann ich meiner Mutter sagen: "Dies ist ein besonderes Buch." Zu dieser Zeit denke ich, ich war ein Kind und fühlte verschiedene Dinge aus den Bildern und Geschichten. " ) Viele Frauen werden durch die sanften Geschichten und weichen Bilder von Bilderbüchern geheilt. Als ich die Frauen um mich herum fragte, schienen die Bilderbücher, die ich nach meiner Kindheit gekauft hatte, mehr "Bücher, die ich in meiner Kindheit gelesen habe" und "Bücher mit besonderen Erinnerungen" als neu veröffentlichte. "Gongitsune" mit einem beeindruckend schönen Bild (Kaiseisha Niimi Nankichi)/Geschrieben von、黒井健/Eine Illustration)Und "Tebukuro kaufen" (Kaiseisha Niimi Nankichi/Geschrieben von、黒井健/Eine Illustration), "Samugariya no Santa" (Buchhandlung des Gospel Museum, Raymond Briggs) mit einem etwas schrulligen Weihnachtsmann/Geschrieben von、すがはらひろくに/Übersetzung)Usw. sind auch sehr beliebt. Wenn Sie ein nostalgisches Bilderbuch öffnen, wird die "Sensibilität" Ihrer Kindheit, die Sie vergessen haben, plötzlich wieder lebendig. Einige Menschen haben den Charme von Bilderbüchern entdeckt, seit sie erwachsen wurden. Naomi (36 Jahre alt, arbeitet bei einem Hersteller), die als Kind von Bilderbüchern kaum beeindruckt war, fühlte sich von Bilderbüchern angezogen, weil sie dem Kind ihrer Freundin "Guritogura" (Gospel Museum Bookstore Nakagawa Eko) ein Geschenk machte./Geschrieben von、おおむらゆりこ/Eine Illustration)。  「絵も可愛いし、大きなカステラは美味しそうだし、何より『ぐりぐら ぐりぐら』という言い回しに、はまっちゃいました。『ぐりぐら ぐりぐら』ってつぶやくと、ちょっとくらい嫌なことがあっても、どうでもよくなっちゃいます(笑)」(ナオミさん)  読んで癒される絵本だが、最近は、自分で絵本を描いてみたいと思う女性も増えているらしい。大阪で「大人のための絵本講座」を開いているEine Illustrationレーターのおおさわまきさん(星未来工房)に、絵本を描く魅力について伺った。  「絵本は目でイメージしその世界に入り込める奥深いものです。文章と絵で構成されているので、いろいろな見方ができるし、たくさんのことを伝えられるのが魅力です。絵本講座を受講した生徒さんたちは、一度絵本を仕上げると『もっと作りたい、楽しい!』と目を輝かせますよ。絵本作りは、年齢関係なく誰にでもできる癒しの世界だと思っています」  絵本作りのコツについてお聞きすると「私が絵本作りの勉強し始めた頃、先生から『難しく考えたらダメだよ』と繰り返し言われました。難しいと思うとどんどん描けなくなるんですよね。だから、自分も含めて、難しくないことからはじめていこうと強く思いました。そして、何よりも童心に戻ることが大切です。子どもは何でも素直に楽しむでしょう。大人も『恥』とか『かっこよく』とか考えないで、遊び感覚で自然に絵本作りに取組むことが大切です」(おおさわさん)。  子どものように素直に描けるようになると、考え方も自然と柔軟になってくるはず。大人という枠組みや常識という枠組みから離れて、自由に空想し、自由に描くことで、心が癒されていくのだろう。  最後に、おおさわさんにお勧め絵本を紹介していただいた。「『ちきゅうになった少年』(フレーバル館 みやざきひろかず/Ich liebe es zu schreiben und zu zeichnen. Für diejenigen, die jeden Tag beschäftigt und gestresst sind, halte ich es für einen interessanten Ausdruck des Wunsches, als nichtmenschliches Wesen wiedergeboren zu werden. Dies ist ein Buch, in dem Sie sich ausruhen können, wenn Sie müde sind, es schwer haben oder entkommen möchten. Aquarellmalerei ist auch ein Malmaterial, das Gehirn und Geist entspannt und heilt. Es wird daher dringend empfohlen. "(Mr. Osawa) Wenn Sie ein Bilderbuch lesen möchten, aber nicht wissen, welche Art von Buch für Sie geeignet ist, ist zunächst das Bilderbuch in der Bibliothek Gehen Sie in die Ecke und sehen Sie. Sie sollten in der Lage sein, auf Ihre Lieblingsbilder und -geschichten zu stoßen, während Sie viele Bücher in die Hand nehmen. Ich mag ein Buch, in dem ich mich positiv fühle, wenn ich es zu Ende gelesen habe. (Büro M2 / Haruhi Kanda) ・ Interviewkooperation-Hoshi Mirai Kobo Osawa Maki 1 0 0 0 0 0 0 0 0
dokujo-tsushin-4788374.txt Herr Kanako (30 Jahre alt / arbeitet bei einem Handelsunternehmen), der im vergangenen Herbst seinen Arbeitsplatz in den gewünschten Beruf gewechselt hat. Ich dachte, ich könnte einen lohnenden Job bekommen und ein erfülltes Leben führen, aber ich leide unter unerwarteten Problemen. "Weibliche Mitarbeiter essen zusammen im Pausenraum zu Mittag, aber das Thema zu dieser Zeit wird von all den Gerüchten und schlechten Gesprächen im Unternehmen überrascht. Aus der Geschichte der internen Affäre, der Auswahl männlicher Mitarbeiter, weiblicher Mitarbeiter anderer Branchen Ich bin so beeindruckt, dass mir nicht jeden Tag die Geschichten ausgehen, wie zum Beispiel schlechte Worte. “(Mr. Kanako) Natürlich gehen einige Frauen draußen essen, aber ältere Frauen haben sich später darüber beschwert. Sie können Gerüchte machen, dass es keine Wurzeln oder Blätter gibt ... "Ich fühle mich deprimiert, wenn sich das Mittagessen nähert. Als ich in den Dreißigern war, hätte ich nie gedacht, dass ich mir Sorgen um das Mittagessen machen würde." (Mr. Kanako) Das einzige, was ich an einem anstrengenden Tag ausruhen konnte, war das Mittagessen. Es sollte viele Leute geben, die sagen. Wenn Sie mit Ihren Freunden einen guten Mittag- und Mittagsservice haben und ein gutes Gespräch führen können, können Sie am Nachmittag hart arbeiten. Es läuft jedoch oft nicht wie geplant. Herr Mutsumi (29 Jahre alt, medizinisch verwandt) kann nur von 4 weiblichen Mitarbeitern, einschließlich Herrn Mutsumi, wieder eingestellt werden. Das Problem ist, dass die drei Frauen, die schon lange zusammenarbeiten, eine enge Bindung haben. "Da es nur einen Pausenraum gibt, essen wir zusammen zu Mittag, aber die drei Senioren sind zu nahe beieinander, so dass ich nicht darüber sprechen kann. Zuerst hörte ich mir die Geschichte schweigend an, aber nach und nach blieb ich. Es wird schwieriger ... Sobald ich mit dem Essen fertig bin, gehe ich zurück zu meinem Schreibtisch und lese die Zeitschrift. "(Mr. Mutsumi) Selbst wenn eine neue Mitarbeiterin eingestellt wird, kündigt sie in dieser Firma oft in kurzer Zeit. Als er Mr. Mutsumi sieht, der die Mittagspause alleine verbringen kann, scheint sein Chef zu erwarten, dass er möglicherweise noch lange arbeiten kann. Eri (27 Jahre alt), eine Zeitarbeitnehmerin, hatte das Gefühl, dass es schwierig ist, eine Mittagspause alleine zu verbringen. Als sie Zeitarbeiterin wurde und mehrere Unternehmen erlebte, sagte sie: "Der Komfort einer Person." Es wird gesagt, dass er aufgewacht ist. "Manchmal gehe ich mit Leuten in derselben Abteilung essen, aber ich esse oft an meinem Schreibtisch, während ich Zeitschriften anschaue. Danach verbringe ich Zeit damit, E-Mails zu schreiben. Es ist sehr einfach, weil es keine Bindung zwischen Frauen gibt (lacht) "(Eri-san) Laut Eri-san gibt es Unternehmen, in denen jeder während der Mittagspause" Lunch Dora "sieht. Eri, die Drama liebt, hatte viel Spaß, aber einige weibliche Angestellte mussten sich zuerst hinsetzen und die Zeit im Warmwasserversorgungsraum töten. "Die Art und Weise, wie Sie Ihre Mittagspause verbringen, ist je nach Unternehmen sehr unterschiedlich. In Unternehmen, die implizit die Regel haben, dass weibliche Mitarbeiter immer zusammen essen, essen sie, während sie still auf ihre Handys schauen. Obwohl es 7 bis 8 Personen als Szene gibt Das war ziemlich schmerzhaft. Einige Unternehmen sagen auch, dass die älteste Mitarbeiterin gerne spricht und dass jeder während der Mittagspause auf sie hören muss. Es gab. “(Mr. Eri) Als ich vor der Exkursion in der Grundschule war, wurden im Klassenzimmer Versprechungen ausgetauscht, dass„ ○○ -chan, lass uns zusammen zu Mittag essen “. Ich glaube immer, ich war begeistert und habe darauf gewartet, dass es meinem Freund gut geht. Der Lehrer machte sich Sorgen um das schüchterne Kind und sagte zu dem leitenden Schüler: "Bitte lade XX mittags ein" oder "Lass uns diesmal zusammen essen." …. Die Nichte, die gerade die High School betreten hatte, sagte glücklich: "Ich bin froh, dass ich Freunde gefunden habe, um sofort zu Mittag zu essen." Egal wie oft Sie Ihre Mittagspause verbringen, wer und wo Sie Ihr Mittagessen verbringen, ist ein großes Problem. Abgesehen davon ändert sich mit zunehmender Anzahl von Nichtraucherbüros auch die Art und Weise, wie Raucher ihre Mittagspausen verbringen. An dem Ort, an dem mein Bekannter arbeitet, gibt es ab diesem Frühjahr keinen Platz mehr zum Rauchen im Gebäude, daher habe ich keine andere Wahl, als zum Raucherbereich an der nächsten Station zu gehen, um zu rauchen. "Ich kann nicht in ein Café gehen, in dem ich jeden Tag rauchen kann, nur um zu rauchen, und wenn ich drinnen rauche, durchdringt der Geruch von Zigaretten meine Kleidung, deshalb bin ich jetzt dankbar für den Raucherbereich im Freien am Bahnhof." Bekanntschaft. Die Mittagspause an einem regnerischen Tag scheint angesichts des Weges zum Bahnhof deprimierend. (Büro M2 / Haruhi Kanda) 1 0 0 0 0 0 0 0 0
dokujo-tsushin-4788388.txt Es gibt eine alleinstehende Frau, die zögert zu heiraten und sagt: "Ich muss arbeiten, weil sein Einkommen niedrig ist, und ich denke, es ist in Ordnung, ein bisschen weiter zu heiraten." Sie will ihren Job sofort kündigen, wenn sie allein von seinem Einkommen leben kann. Mit anderen Worten, er wollte eine Vollzeit-Hausfrau sein, aber als er sein Jahreseinkommen hörte, legte er den Kopf schief. Ist es wirklich unmöglich, mit diesem Geldbetrag zu leben? In den Tagen, als es viele Vollzeit-Hausfrauen gab, gab es keinen Arbeitsplatz für Hausfrauen, und es gab viele Familien, die nur vom Einkommen ihres Mannes lebten, obwohl sie auch diesen Monat verschüttet wurden. Obwohl das Einkommen meines Mannes aufgrund der Rezession gesunken ist, wird er auch auswärts essen, Markenprodukte kaufen und ins Ausland reisen, obwohl es eine billige Tour ist. Ist es nicht wirklich extravagant im Vergleich zu den alten Zeiten, als man es einfach essen konnte? Kiyoko, eine 56-jährige Vollzeit-Hausfrau mit zwei erwachsenen Kindern, sagte: "Jetzt sollen Vollzeit-Hausfrauen Berühmtheiten sein, aber wenn ich noch nie ein Markenprodukt besessen habe, werde ich mit meiner Familie ins Ausland reisen. Ich war noch nie in. Das Einkommen meines Mannes reicht nicht aus, aber wenn ich nicht den Luxus habe, habe ich es jeden Monat geschafft. " Als ein Kind in die Grundschule kam, gingen einige Hausfrauen zu dem Teil, um die Cram-Schule zu bezahlen, aber Kiyokos Familie ging aufgrund der Politik ihres Mannes überhaupt nicht zur Cram-Schule, ihr Bruder schwamm und ihre Schwester schrieb. Es scheint, dass er ihn nur zu einer Lektion gehen ließ. "Es schien für eine Familie schwierig, eine private Realschulprüfung zu besuchen. Ich war überrascht zu hören, dass die Kosten für eine Privatschule 50.000 Yen pro Monat betrugen. Ich schickte sie auf eine Privatschule und es war danach riesig. Ich dachte, es wäre schwierig, viel Geld für Bildung auszugeben. “Kisekos älteste Tochter besuchte eine private Frauenuniversität, aber einige ihrer Freunde, die von der Junior High School und der High School abheben konnten, waren Klassenkameraden von der Grundschule. "Ich bin mir nicht sicher, ob eine integrierte Mittel- und Oberschulbildung erforderlich ist, aber wenn Sie an derselben Universität studieren, müssen Sie keine Hochschulgebühr zahlen, um die Mittelschule zu verlassen", sagt Kiyoko. Es gibt Hausfrauen, die den Zweck haben, für sich selbst zu arbeiten und zu arbeiten, aber es gibt auch Hausfrauen, die daran arbeiten, ihren Lebensstandard zu verbessern, indem sie mit ihren Familien ins Ausland gehen, auswärts essen und so weiter. Einige Hausfrauen kaufen Markenprodukte selbst, aber der größte Teil ihrer Arbeit besteht darin, die Ausbildung ihrer Kinder zu bezahlen. Es wird gesagt, dass die Bildungskosten von der Geburt eines Kindes bis zum Abschluss der Universität in der Regel mehr als 10 Millionen Yen kosten. Privat vom Kindergarten zur Universität kostet über 20 Millionen Yen. Dann muss man für die Ausbildung arbeiten, aber warum vom Kindergarten zum privaten gehen? „Weil ich meinem Kind einen Bildungshintergrund geben möchte, auf den ich stolz sein kann.“ Ein Kind, eine Mutter eines Kindes, das einen privaten Kindergarten betreten möchte, sagt, dass es die Werte ihrer Mutter sind, stolz zu sein, und im Vergleich zu anderen Kindern ihr Kind Es mag den Anschein haben, dass die Mutter selbst etwas Besonderes tut. Wenn Sie Ihr Kind in einen privaten Kindergarten schicken oder es mit einer Marke bekleiden, muss Ihre Mutter die entsprechende Kleidung und Tasche tragen. Wenn Sie so leben wollen, aber mit dem Einkommen Ihres Mannes nichts anfangen können, können Sie es ertragen. Wenn Sie es nicht aushalten können, können Sie arbeiten. Aber wenn der Zweck der Arbeit für das Kind ist, sollten wir überlegen, was für das Kind wirklich glücklich ist. In den Herzen von Frauen, die sich darüber beschwerten, dass sein Einkommen niedrig war oder sein Mann nicht genug verdiente, habe ich das Gefühl, dass er nach einem Leben suchte, das es wagte, etwas zu wollen, das er nicht brauchte. Es kann verbessert werden, indem man mit Menschen konkurriert, aber ich denke nicht, dass es vergleichbar ist oder mit dem Glück zu Hause konkurriert. Herr Kiyoko erwähnte oben, sie sagte, dass sie froh sei, eine Mutter zu haben, die immer auf sie wartete, wenn sie von der Schule zurückkam. „Ich hatte weder die Fähigkeiten noch die Qualifikationen, also lebte ich nur zu Hause und sparte Geld, aber ich verbrachte gerne Zeit mit meinen Kindern.“ Kiyoko sagte, dass sie ihrem Ehemann dankbar sei, dass er sie gefüttert habe. Es klang frisch. Es gibt Dinge, die Sie durch Arbeiten erreichen können, aber es gibt auch Dinge, die Sie durch Zeitersparnis erreichen können. Wenn Sie denken, dass sein Einkommen niedrig ist, warum versuchen Sie nicht, sich an den Trick zu erinnern, über die Runden zu kommen? Die Ehe ist etwas, das man im wirklichen Leben tun kann, anstatt darüber nachzudenken. (Büro M2 / Setsuko Saeda) 1 0 0 0 0 0 0 0 0
dokujo-tsushin-4791665.txt In der kommenden Saison ist der natürliche Feind Ihrer Haut "ultraviolett". Das Marketingunternehmen Trenders Co., Ltd. führte eine Sensibilisierungsumfrage zum Thema "UV-Pflege" für Frauen in den 20ern und 30ern durch, 99%Beantwortet, dass "UV-Pflege beim Ausgehen erforderlich ist". Es stellt sich heraus, dass UV-Pflege für Frauen mittlerweile an der Tagesordnung ist. UV-Pflege kann auch für eine alleinstehende Frau, die Anti-Aging anstrebt, nicht übersehen werden. Auf die Frage "Was für eine Szene interessieren Sie sich für UV-Strahlen an einem Tag?" Lautete die häufigste Antwort "beim Pendeln", und mehr als die Hälfte antwortete. In Bezug auf die "Zeitzone, in der UV-Strahlen ein Problem darstellen" war die häufigste "12:00 bis 15:00", also 83%.. Als nächstes ist "9:00 bis 12:00" 67%, "~ 9 Uhr"(43%)Es stellt sich heraus, dass berufstätige Frauen in den Morgenstunden auf UV-Pflege achten. Tatsächlich machen 87 "UV-Pflege am Morgen"%"Die morgendliche Pendelzeit ist am stärksten ultravioletten Strahlen ausgesetzt. (36 Jahre, Design von Immobilienwerbung)" "Ich vermisse sie nicht, weil ich beim Pendeln einen Sonnenbrand bekomme. (29 Jahre, Buchhaltung eines Handelsunternehmens)" "Morning UV" -Pflege ist ein Muss, um Sonnenbrand und Flecken vorzubeugen. Als spezifische UV-Pflegemethode war die häufigste Methode das "Auftragen von Sonnenschutzmitteln", die insgesamt 92 betrug.%Antwortete. Als nächstes "Sonnenschirm"(59%),"Hut"(39%)Es geht weiter mit. "Sonnenschutzmittel", die leicht angewendet werden können und einen guten UV-Schutz haben, haben die Unterstützung von Frauen gewonnen. Als Antwort auf die Frage "Wie oft am Tag tragen Sie Sonnenschutzmittel erneut auf?", Durchschnittlich "0"..Es ist klar, dass es ungefähr einmal am Tag "94 Mal" neu gestrichen wird. Wenn ich viel schwitze, mache ich mir natürlich Sorgen, dass der Effekt nachlässt, ohne es zu wissen. Deshalb wende ich ihn oft an, aber für eine einzelne Frau, die jeden Tag beschäftigt ist, ist selbst diese Zeit bedauerlich. Ich mache mir auch Sorgen um die Belastung meiner Haut. Entsprechend der Frage "Wonach suchen Sie in einem Sonnenschutzmittel?", "Sonnenschutzmitteleffekt" (93)%), Neben der Antwort, die die Wirkung des Mastes ist, "weniger Belastung für die Haut"(88%), "Nicht klebrig"(73%)Es gibt viele Meinungen, und es scheint, dass "hautfreundlich" wichtig ist, nicht nur UV-Pflege. Der neue Sonnenschutz "Anessa" wird Frauen empfohlen, die sowohl UV-Pflege als auch Schonung der Haut schätzen möchten. Es blockiert nicht nur alle ultravioletten Strahlen auf dem Boden, sondern fühlt sich auch glatt an, ohne die bei Sonnenschutzmitteln übliche Klebrigkeit und Weißfärbung. Wenn Sie eine alleinstehende Frau sind, die das Sonnenschutzmittel in letzter Zeit nicht verwendet hat und sagt "Ich möchte meine Haut nicht belasten", während Sie die ultravioletten Strahlen auf meiner Haut spüren, probieren Sie es aus. Klicken Sie hier für Details ・ Anessa-Shiseido 1 0 0 0 0 0 0 0 0 0

Lesen Sie es anschließend als Datenrahmen und teilen Sie es in Trainingsdaten, Verifizierungsdaten und Bewertungsdaten auf.

import pandas as pd
from sklearn.model_selection import train_test_split
from tabulate import tabulate

#Daten lesen
df = pd.read_csv('./text/livedoor.tsv', sep='\t')

#Datenaufteilung
categories = ['dokujo-tsushin', 'it-life-hack', 'kaden-channel', 'livedoor-homme', 'movie-enter', 'peachy', 'smax', 'sports-watch', 'topic-news']
train, valid_test = train_test_split(df, test_size=0.2, shuffle=True, random_state=123, stratify=df[categories])
valid, test = train_test_split(valid_test, test_size=0.5, shuffle=True, random_state=123, stratify=valid_test[categories])
train.reset_index(drop=True, inplace=True)
valid.reset_index(drop=True, inplace=True)
test.reset_index(drop=True, inplace=True)

#Bestätigung der Anzahl der Fälle
table = [['train'] + [train[category].sum() for category in categories],
         ['valid'] + [valid[category].sum() for category in categories],
         ['test'] + [test[category].sum() for category in categories]]
headers = ['data'] + categories
print(tabulate(table, headers, tablefmt='grid'))

Ausgabe


+--------+------------------+----------------+-----------------+------------------+---------------+----------+--------+----------------+--------------+
| data   |   dokujo-tsushin |   it-life-hack |   kaden-channel |   livedoor-homme |   movie-enter |   peachy |   smax |   sports-watch |   topic-news |
+========+==================+================+=================+==================+===============+==========+========+================+==============+
| train  |              696 |            696 |             691 |              409 |           696 |      673 |    696 |            720 |          616 |
+--------+------------------+----------------+-----------------+------------------+---------------+----------+--------+----------------+--------------+
| valid  |               87 |             87 |              87 |               51 |            87 |       84 |     87 |             90 |           77 |
+--------+------------------+----------------+-----------------+------------------+---------------+----------+--------+----------------+--------------+
| test   |               87 |             87 |              86 |               51 |            87 |       85 |     87 |             90 |           77 |
+--------+------------------+----------------+-----------------+------------------+---------------+----------+--------+----------------+--------------+

Vorbereitung auf das Lernen

Installieren Sie die Transformatorbibliothek, um das BERT-Modell zu verwenden. Durch Transformatoren können neben BERT viele vorgefertigte Modelle sehr einfach mit Funktionscode verwendet werden.

!pip install transformers

Installieren Sie außerdem MeCab für die morphologische Analyse. Dies wird von Transformatoren im Prozess aufgerufen und verwendet.

!apt install mecab libmecab-dev mecab-ipadic-utf8
!pip install mecab-python3

Importieren Sie die Bibliotheken, die zum Trainieren und Bewerten Ihres Modells erforderlich sind.

import numpy as np
import transformers
from transformers import BertJapaneseTokenizer, BertModel
import torch
from torch.utils.data import Dataset, DataLoader
from torch import optim
from torch import cuda
import time
from matplotlib import pyplot as plt

Geben Sie als Nächstes das japanische vorgelernte BERT-Modell an, das dieses Mal verwendet werden soll. Derzeit können Transformatoren vier Arten von Modellen verwenden, die vom Inui-Suzuki-Labor der Tohoku-Universität veröffentlicht wurden. Hier werde ich "Bert-Base-Japanisch-Ganzwort-Maskierung" versuchen.

#Bestimmung eines vorgefertigten Modells
pretrained = 'cl-tohoku/bert-base-japanese-whole-word-masking'

Als nächstes formen Sie die Daten in ein Formular, das in das Modell eingegeben werden kann. Definieren Sie zunächst eine Klasse, um ein `Dataset``` zu erstellen, das den Merkmalsvektor und den Beschriftungsvektor zusammenhält, was in PyTorch häufig verwendet wird. Durch Übergeben von `Tokenizer``` an diese Klasse ist es möglich, eine Verarbeitung wie eine morphologische Analyse des Eingabetextes durchzuführen, ihn auf die angegebene maximale Serienlänge aufzufüllen und ihn dann in eine Wort-ID zu konvertieren. .. Da jedoch der "Tokenizer" selbst, in dem die gesamte Verarbeitung für BERT geschrieben ist, später über die Transkriptoren erhalten wird, ist in der Klasse die Verarbeitung und das Ergebnis erforderlich, die an den "Tokenizer" übergeben werden sollen. Es ist nur der Prozess des Empfangens.

#Datensatzdefinition
class CreateDataset(Dataset):
  def __init__(self, X, y, tokenizer, max_len):
    self.X = X
    self.y = y
    self.tokenizer = tokenizer
    self.max_len = max_len

  def __len__(self):  # len(Dataset)Geben Sie den Wert an, mit dem zurückgegeben werden soll
    return len(self.y)

  def __getitem__(self, index):  # Dataset[index]Geben Sie den Wert an, mit dem zurückgegeben werden soll
    text = self.X[index]
    inputs = self.tokenizer.encode_plus(
      text,
      add_special_tokens=True,
      max_length=self.max_len,
      pad_to_max_length=True
    )
    ids = inputs['input_ids']
    mask = inputs['attention_mask']

    return {
      'ids': torch.LongTensor(ids),
      'mask': torch.LongTensor(mask),
      'labels': torch.Tensor(self.y[index])
    }

Erstellen Sie einen `Datensatz``` mit den oben genannten. Eines der Argumente, `MAX_LEN```, repräsentiert die maximale Serienlänge, längere Anweisungen werden abgeschnitten und kürzere Anweisungen werden aufgefüllt, um sie an dieser Länge auszurichten. Ursprünglich können in BERT bis zu 512 angegeben werden, diesmal jedoch 128 aufgrund von Speicherbeschränkungen.

#Angabe der maximalen Serienlänge
MAX_LEN = 128

#Holen Sie sich Tokenizer
tokenizer = BertJapaneseTokenizer.from_pretrained(pretrained)

#Erstellen eines Datensatzes
dataset_train = CreateDataset(train['article'], train[categories].values, tokenizer, MAX_LEN)
dataset_valid = CreateDataset(valid['article'], valid[categories].values, tokenizer, MAX_LEN)
dataset_test = CreateDataset(test['article'], test[categories].values, tokenizer, MAX_LEN)

for var in dataset_train[0]:
  print(f'{var}: {dataset_train[0][var]}')

Ausgabe


ids: tensor([    2,  5563,  3826,     7,     9,     6,  5233,  2110,    10,  4621,
           49,  1197,    64,    14, 10266,     7,  3441,  1876,    26,    62,
            8,    70,   825,     6,  9749,    70,  3826,     7,  1876,    15,
           16,  7719,  1549,  4621,    11,  1800,    15,    16,  6629,    45,
           28,   392,     8,  5880,     7,  1800,    34,  1559,    14,    31,
          947,     6,  8806,    16,  6629,    13,  1755,  3002,  4621,    11,
         1942,     7,  9626,   392,   124,     7,   139,     8, 25035,  4021,
          489,  7446,   143, 16430, 13901,  1993,    49,  8365,  2496, 12084,
           40,  5880,  1800,  9749,  1876,    15,    16,  7719,  1549,  4621,
           14,     6,  5563,  3826,     5,  4314,  5233,  2110,    10,   120,
         4118,     7,  1876,    26,    20,    16,    33,   344,     9,     6,
        10843,   329, 11426,    11,  1943,    10,    72,     7, 10485,     7,
         1876,    26,    62, 26813,  7004,    11, 20718,     3])
mask: tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1])
labels: tensor([0., 1., 0., 0., 0., 0., 0., 0., 0.])

Die Informationen des ersten Satzes werden ausgegeben. Sie können sehen, dass die Eingabezeichenfolge als `` ids``` in eine ID-Reihe konvertiert wurde. In BERT werden während des Konvertierungsprozesses am Anfang und am Ende des ursprünglichen Satzes spezielle Trennzeichen [CLS] und [SEP] eingefügt, sodass sie auch "2" und "3" sind. In der Serie enthalten als . Die richtigen Antwortetiketten werden auch im One-Hot-Format als "Etiketten" gespeichert. Behalten Sie außerdem die "Maske" bei, die die Polsterposition darstellt, damit sie während des Trainings zusammen mit den "IDs" an das Modell übergeben werden kann.

Definieren Sie als Nächstes das Netzwerk. Durch die Verwendung von Transfomeren kann der gesamte BERT-Teil durch "BertModel" ausgedrückt werden. Definieren Sie dann ein Dropout, das den BERT-Ausgabevektor und eine vollständig verbundene Ebene empfängt, um die Klassifizierungsaufgabe zu erfüllen, und fertig.

#Definition des BERT-Klassifizierungsmodells
class BERTClass(torch.nn.Module):
  def __init__(self, pretrained, drop_rate, otuput_size):
    super().__init__()
    self.bert = BertModel.from_pretrained(pretrained)
    self.drop = torch.nn.Dropout(drop_rate)
    self.fc = torch.nn.Linear(768, otuput_size)  #Geben Sie 768 Dimensionen gemäß der Ausgabe von BERT an
    
  def forward(self, ids, mask):
    _, out = self.bert(ids, attention_mask=mask)
    out = self.fc(self.drop(out))
    return out

Lernen des BERT-Klassifizierungsmodells

Nachdem Sie den `Datensatz``` und das Netzwerk bereit haben, erstellen wir die übliche Lernschleife. Hier wird eine Reihe von Flüssen als `train_model``` Funktion definiert. Die Bedeutung der angezeigten Komponenten finden Sie im Ablauf des Problems im Artikel [Sprachverarbeitung 100 Knock 2020] Kapitel 8: Neuronales Netz. Bitte beachten Sie die Erklärung dazu.

def calculate_loss_and_accuracy(model, loader, device, criterion=None):
  """Berechnen Sie den Verlust / die richtige Antwortrate"""
  model.eval()
  loss = 0.0
  total = 0
  correct = 0
  with torch.no_grad():
    for data in loader:
      #Gerätespezifikation
      ids = data['ids'].to(device)
      mask = data['mask'].to(device)
      labels = data['labels'].to(device)

      #Vorwärtsausbreitung
      outputs = model.forward(ids, mask)

      #Verlustberechnung
      if criterion != None:
        loss += criterion(outputs, labels).item()

      #Richtige Berechnung der Antwortrate
      pred = torch.argmax(outputs, dim=-1).cpu().numpy() #Voraussichtliches Etikettenarray für die Chargengrößenlänge
      labels = torch.argmax(labels, dim=-1).cpu().numpy()  #Batch-Größenlänge korrektes Etikettenarray
      total += len(labels)
      correct += (pred == labels).sum().item()
      
  return loss / len(loader), correct / total
  

def train_model(dataset_train, dataset_valid, batch_size, model, criterion, optimizer, num_epochs, device=None):
  """Führt ein Modelltraining durch und gibt ein Protokoll mit Verlust / korrekter Antwortrate zurück"""
  #Gerätespezifikation
  model.to(device)

  #Erstellen eines Datenladers
  dataloader_train = DataLoader(dataset_train, batch_size=batch_size, shuffle=True)
  dataloader_valid = DataLoader(dataset_valid, batch_size=len(dataset_valid), shuffle=False)

  #Lernen
  log_train = []
  log_valid = []
  for epoch in range(num_epochs):
    #Startzeit aufzeichnen
    s_time = time.time()

    #Auf Trainingsmodus einstellen
    model.train()
    for data in dataloader_train:
      #Gerätespezifikation
      ids = data['ids'].to(device)
      mask = data['mask'].to(device)
      labels = data['labels'].to(device)

      #Gradient auf Null initialisieren
      optimizer.zero_grad()

      #Vorwärtsausbreitung+Fehler bei der Weitergabe+Gewichtsaktualisierung
      outputs = model.forward(ids, mask)
      loss = criterion(outputs, labels)
      loss.backward()
      optimizer.step()
      
    #Verlustberechnung und korrekte Rücklaufquote
    loss_train, acc_train = calculate_loss_and_accuracy(model, dataloader_train, device, criterion=criterion)
    loss_valid, acc_valid = calculate_loss_and_accuracy(model, dataloader_valid, device, criterion=criterion)
    log_train.append([loss_train, acc_train])
    log_valid.append([loss_valid, acc_valid])

    #Checkpoint speichern
    torch.save({'epoch': epoch, 'model_state_dict': model.state_dict(), 'optimizer_state_dict': optimizer.state_dict()}, f'checkpoint{epoch + 1}.pt')

    #Endzeit aufzeichnen
    e_time = time.time()

    #Ausgabeprotokoll
    print(f'epoch: {epoch + 1}, loss_train: {loss_train:.4f}, accuracy_train: {acc_train:.4f}, loss_valid: {loss_valid:.4f}, accuracy_valid: {acc_valid:.4f}, {(e_time - s_time):.4f}sec') 

  return {'train': log_train, 'valid': log_valid}

Stellen Sie die Parameter ein und führen Sie eine Feinabstimmung durch.

#Parametereinstellungen
DROP_RATE = 0.4
OUTPUT_SIZE = 9
BATCH_SIZE = 16
NUM_EPOCHS = 4
LEARNING_RATE = 2e-5

#Modelldefinition
model = BERTClass(pretrained, DROP_RATE, OUTPUT_SIZE)

#Definition der Verlustfunktion
criterion = torch.nn.BCEWithLogitsLoss()

#Optimierungsdefinition
optimizer = torch.optim.AdamW(params=model.parameters(), lr=LEARNING_RATE)

#Gerätespezifikation
device = 'cuda' if cuda.is_available() else 'cpu'

#Modelllernen
log = train_model(dataset_train, dataset_valid, BATCH_SIZE, model, criterion, optimizer, NUM_EPOCHS, device=device)

Ausgabe


epoch: 1, loss_train: 0.0976, accuracy_train: 0.8978, loss_valid: 0.1122, accuracy_valid: 0.8575, 405.6795sec
epoch: 2, loss_train: 0.0468, accuracy_train: 0.9622, loss_valid: 0.0802, accuracy_valid: 0.8942, 405.0562sec
epoch: 3, loss_train: 0.0264, accuracy_train: 0.9822, loss_valid: 0.0688, accuracy_valid: 0.9077, 407.3759sec
epoch: 4, loss_train: 0.0164, accuracy_train: 0.9907, loss_valid: 0.0708, accuracy_valid: 0.9050, 407.4937sec

Überprüfen Sie das Ergebnis.

#Protokollvisualisierung
x_axis = [x for x in range(1, len(log['train']) + 1)]
fig, ax = plt.subplots(1, 2, figsize=(15, 5))
ax[0].plot(x_axis, np.array(log['train']).T[0], label='train')
ax[0].plot(x_axis, np.array(log['valid']).T[0], label='valid')
ax[0].set_xlabel('epoch')
ax[0].set_ylabel('loss')
ax[0].legend()
ax[1].plot(x_axis, np.array(log['train']).T[1], label='train')
ax[1].plot(x_axis, np.array(log['valid']).T[1], label='valid')
ax[1].set_xlabel('epoch')
ax[1].set_ylabel('accuracy')
ax[1].legend()
plt.show()

bert-ja.png

#Berechnung der richtigen Antwortrate
dataloader_train = DataLoader(dataset_train, batch_size=1, shuffle=False)
dataloader_valid = DataLoader(dataset_valid, batch_size=1, shuffle=False)
dataloader_test = DataLoader(dataset_test, batch_size=1, shuffle=False)

print(f'Richtige Antwortrate (Lerndaten):{calculate_loss_and_accuracy(model, dataloader_train, device)[1]:.3f}')
print(f'Richtige Antwortrate (Verifizierungsdaten):{calculate_loss_and_accuracy(model, dataloader_valid, device)[1]:.3f}')
print(f'Richtige Antwortrate (Bewertungsdaten):{calculate_loss_and_accuracy(model, dataloader_test, device)[1]:.3f}')

Ausgabe


Richtige Antwortrate (Lerndaten): 0.991
Richtige Antwortrate (Verifizierungsdaten): 0.905
Richtige Antwortrate (Bewertungsdaten): 0.904

Die korrekte Antwortrate in den Bewertungsdaten lag bei etwa 90%.

Normalerweise denke ich, dass es häufig vorkommt, dass Parameter wie die Festlegung von Gewichten für jede BERT-Schicht und die Lernrate angepasst werden, während die Genauigkeit der Verifizierungsdaten überprüft wird.

abschließend

Diesmal wurden die Parameter festgelegt, aber die Genauigkeit war relativ hoch, und das Ergebnis zeigte die Stärke des Vorlernens. Durch Verwendung der Transformatorbibliothek zur Implementierung ist es ausreichend, nur die Teile vorzubereiten, die im herkömmlichen neuronalen Netz verwendet werden. Bitte versuchen Sie es mit verschiedenen Daten.

Referenz

transformers BERT (offiziell) BERT: Vorschulung von tiefen bidirektionalen Transformatoren für das Sprachverständnis, Devlin, J. et al. (2018) (Originalartikel) [Sprachverarbeitung 100 Knock 2020] Zusammenfassung der Antwortbeispiele von Python

Recommended Posts

[PyTorch] Einführung in die Klassifizierung japanischer Dokumente mit BERT
[PyTorch] Einführung in die Dokumentklassifizierung mit BERT
Einführung in Lightning Pytorch
[PyTorch] Verwendung von BERT - Feinabstimmung japanischer vorab trainierter Modelle zur Lösung von Klassifizierungsproblemen
Ich habe versucht, Satzklassifizierung und Aufmerksamkeitsvisualisierung durch das japanische BERT mit PyTorch zu implementieren
Ich habe versucht, die Genauigkeit der japanischen BERT- und der japanischen Distil-BERT-Satzklassifizierung mit PyTorch & Einführung der BERT-Technik zur Verbesserung der Genauigkeit zu vergleichen
Einführung in PyTorch (1) Automatische Differenzierung
Einführung in discord.py (3) Verwenden von Stimme
Einführung in die Bayes'sche Modellierung mit pymc3 Bayesianische Modellierung in Python Japanische Übersetzung (Kapitel 0-2)
[Details (?)] Einführung in Pytorch ~ CNN von CIFAR10 ~
[PyTorch] Japanische Satzgenerierung mit Transformer
Dokumentklassifizierung mit toch Text von PyTorch
[Einführung in Pytorch] Ich habe mit sinGAN ♬ gespielt
Erstellen Sie Dokumentklassifizierungsdaten schnell mit NLTK
Einführung in die diskrete Ereignissimulation mit Python # 2
Einführung in Tornado (3): Entwicklung mit Vorlagen [Übung]
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
Lernen Sie die Kategorisierung japanischer Dokumente mit spaCy / GiNZA (Fehler)
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
[Einführung in cx_Oracle] (5.) Umgang mit japanischen Daten
Einführung in Tornado (2): Einführung in die Entwicklung mit Vorlagen - Dynamische Seitengenerierung -
Einführung in Scapy ② (ICMP, HTTP (TCP) -Übertragung mit Scapy)
Einführung in MQTT (Einführung)
Einführung in Scrapy (1)
Einführung in Scrapy (3)
Erste Schritte mit Supervisor
Einführung in Tkinter 1: Einführung
Einführung in PyQt
Einführung in Scrapy (2)
[Linux] Einführung in Linux
Einführung in Scrapy (4)
Einführung in discord.py (2)
[Erklärung zur Implementierung] Verwendung der japanischen Version von BERT in Google Colaboratory (PyTorch)
[PyTorch] Tutorial (japanische Version) ④ ~ TRAINING A CLASSIFIER (Bildklassifizierung) ~
[Einführung in Pytorch] Ich habe versucht, Cifar10 mit VGG16 ♬ zu kategorisieren
[Einführung in Python] Wie stoppe ich die Schleife mit break?
[Einführung in RasPi4] Umgebungskonstruktion; OpenCV / Tensorflow, japanische Eingabe ♪
[Einführung in cx_Oracle] (13.) Verbindung über Verbindungspool (Client-Seite)
[Einführung in Python] So schreiben Sie sich wiederholende Anweisungen mit for-Anweisungen
[Technisches Buch] Einführung in die Datenanalyse mit Python -1 Kapitel Einführung-