Ich habe summpy ausprobiert, ein von Recruit Technologies veröffentlichtes Tool zur Zusammenfassung von Texten.
summpy https://github.com/recruit-tech/summpy
Die Umgebung ist Ubuntu 16.4. Benötigt Python 2.7, um zu funktionieren. Da es standardmäßig nicht enthalten ist, bereiten wir mit anaconda eine Umgebung von 2.7 vor.
$ conda create -n 2.7 python=2.7 anaconda
Überprüfen Sie, ob es richtig installiert wurde
$ source activate 2.7
(2.7)$
(2.7)$ conda info -e
# conda environments:
#
base /home/croso/anaconda3
2.7 * /home/croso/anaconda3/envs/2.7
3.5 /home/croso/anaconda3/envs/3.5
3.6 /home/croso/anaconda3/envs/3.6
Installieren Sie Mecab-Python, da MeCab oder Janome für die morphologische Analyse erforderlich sind
(2.7)$ pip install mecab-python
Dann installiere summpy mit pip
(2.7)$ pip install summpy
Beispielskript erstellen
# -*- coding: utf-8 -*-
from summpy.lexrank import summarize
text=u'''
Die vom Ministerium für innere Angelegenheiten und Kommunikation angekündigte (saisonbereinigte) Arbeitslosenquote für September betrug 2,4% und lag damit um 0,2 Punkte unter dem Vormonat.
Laut einer Reuters-Umfrage wurden 2,3% erwartet.
Die Arbeitslosenquote liegt seit Januar 2018 unter 2,5%.
Das Ministerium für innere Angelegenheiten und Kommunikation fasste zusammen: "Obwohl die Arbeitslosenquote gestiegen ist, ist das Niveau auf dem niedrigsten Stand seit etwa 26 Jahren geblieben, und die Beschäftigungssituation verbessert sich stetig", sagte eine Führungskraft.
Die Zahl der Mitarbeiter (saisonbereinigt) betrug 67,3 Millionen, ein Rückgang von 50.000 gegenüber dem Vormonat.
Die Zahl der Arbeitslosen (wie oben) betrug 1,67 Millionen, ein Anstieg von 130.000 gegenüber dem Vormonat.
Die Zahl der Arbeitslosen hat zum ersten Mal seit 6 Monaten zugenommen.
In Bezug auf die Aufteilung war die Anzahl der unfreiwilligen Umsätze dieselbe wie im Vormonat, aber die Anzahl der freiwilligen Umsätze (Selbstbequemlichkeit) stieg um 10.000 und die Anzahl der neuen Arbeitssuchenden um 90.000. "Die Zahl der Menschen, die neu arbeiten wollen, steigt", sagte er.
Nach den ursprünglichen Zahlen stieg die Zahl der Beschäftigten gegenüber dem Vorjahresmonat um 530.000 auf 67,68 Millionen.
Es hat 81 aufeinanderfolgende Monate zugenommen, den höchsten seit 1953, was vergleichbar ist.
Die Beschäftigungsquote für 15- bis 64-Jährige beträgt 77,9% und ist damit die höchste in Thailand.
Die vom Ministerium für Gesundheit, Arbeit und Soziales angekündigte effektive Einstellungsquote (saisonbereinigt) für September war 1,57-mal niedriger als im Vormonat.
Laut einer Reuters-Umfrage wurde ein 1,59-facher Wert erwartet.
'''
sentences, debug_info = summarize(
text, sent_limit=2
)
for sent in sentences:
print sent.strip().encode('utf-8')
Lassen Sie uns einen Artikel analysieren, der aus einer Nachrichtenseite extrahiert wurde.
sent_limit Wie viele Zeilen setzen Sie die Ergebnisse zusammen? Es sieht aus wie
.
Bis zu diesem Punkt ist es eine Form, die README.md von summpy so wie es ist verfolgt.
Beim Betrieb ist ein Fehler aufgetreten.
"error": "add_edge() takes exactly 3 arguments (4 given)"
Als ich es nachgeschlagen habe, war es eine Versionsinkongruenz mit networkx. https://teratail.com/questions/114565 Ich werde die Version anpassen.
(2.7)$ pip install multiqc==1.2
(2.7)$ pip install networkx==1.11
Installiere zuerst multiqc
. Wenn Sie multiqc installieren, installiert networkx automatisch 2.2, sodass Sie die Umgebung nur dann gut reproduzieren können, wenn Sie 1.11 von networkx darüber überschreiben.
Der vollständige Satz ist unten
Die Zahl der Mitarbeiter (saisonbereinigt) betrug 67,3 Millionen, ein Rückgang von 50.000 gegenüber dem Vormonat.
Die Zahl der Arbeitslosen (wie oben) betrug 1,67 Millionen, ein Anstieg von 130.000 gegenüber dem Vormonat.
Wie ist es? Aus der Zusammenfassung geht hervor, dass sich die japanische Wirtschaft abgekühlt hat, weil die Zahl der Beschäftigten gesunken und die Zahl der Arbeitslosen gestiegen ist. Ich habe jedoch das Gefühl, dass ich den Satz übersehen habe, der als "0,2 Punkte schlechter als im Vormonat" bezeichnet wird.
Ich habe es auch falsch verstanden, aber es scheint, dass er den Text nicht "zusammenfasst". Es scheint richtig zu sein, "ein Werkzeug, das nur wichtige Zeilen aus einem Satz extrahiert" zu sagen.
Übrigens denke ich, dass nur wenige Leute Mecab installieren und es so verwenden, wie es ist. Es ist nutzlos, wenn Sie kein Wörterbuch hinzufügen. Installieren Sie also Folgendes.
https://github.com/neologd/mecab-ipadic-neologd
Es ist ein Mecab-Wörterbuch, das die neuesten Wörter unterstützt. Die Wörterbuchinformationen sollten nach der Installation unten enthalten sein.
(2.7)$ ls /usr/local/lib/mecab/dic/mecab-ipadic-neologd
char.bin dicrc left-id.def matrix.bin pos-id.def rewrite.def right-id.def sys.dic unk.dic
Ich möchte, dass das Wörterbuch automatisch gelesen wird, aber summpy hatte keine solche Funktion, deshalb habe ich einen Teil der Quelle neu geschrieben, um damit umzugehen. (Es könnte richtiger sein, Mecab-Python zu ändern ...)
(2.7)$ vi ~/anaconda3/envs/2.7/lib/python2.7/site-packages/summpy/misc/mecab_segmenter.py
_mecab = MeCab.Tagger()
Zu
_mecab = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
Ersetzt mit. Dies sollte etwas genauer sein ...
Es ist irrelevant, aber maschinelles Lernen erfordert eine große Menge an Trainingsdaten. Unter ihnen hielt ich die Zusammenfassung von Sätzen für eine relativ einfache Aufgabe, um Lerndaten zu sammeln. Wenn Sie den Artikeltitel für die richtigen Antwortdaten und den Artikelkörper für die Lerndaten von vielen Nachrichtenseiten verwenden, können Sie im Internet so viele Beispiele finden, wie Sie möchten. Daher dachte ich, dass dies ein gutes Fach für das Studium sein könnte.
Recommended Posts