[PYTHON] Ich habe versucht, Sätze mit summpy zusammenzufassen

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 
  1. Zeile
_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

Ich habe versucht, Sätze mit summpy zusammenzufassen
Ich habe versucht, Summpy zu verwenden
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, mit Elasticsearch Ranking zu lernen!
Ich habe versucht, mit PyCaret zu clustern
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe maschinelles Lernen mit liblinear versucht
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Essen mit SinGAN zu bewegen
Ich habe versucht, DeepPose mit PyTorch zu implementieren
Ich habe versucht, das Gesicht mit MTCNN zu erkennen
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe versucht, Sätze mit GPT-2 zu generieren
Ich habe versucht, LightGBM mit Yellowbrick zu lernen
Ich habe versucht, das Gesicht mit OpenCV zu erkennen
Ich habe eine multiple Regressionsanalyse mit Polypoly-Regression versucht
Ich habe versucht, eine SMS mit Twilio zu senden
Ich habe versucht, Amazon SQS mit Django-Sellerie zu verwenden
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe Linebot mit Flasche (Anaconda) + Heroku ausprobiert
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, Selen mit Headless-Chrom zu verwenden
Ich habe versucht, Faktoren mit Titanic-Daten zu analysieren!
Ich habe versucht, mit Kaggles Titanic (kaggle②) zu lernen.
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
Ich habe eine funktionale Sprache mit Python ausprobiert
Ich habe versucht, mit Python ② (Fibonacci-Zahlenfolge) aufzuklären.
Ich habe versucht, DeepPose mit PyTorch PartⅡ zu implementieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe versucht, mit Pillow mit dem Bild zu spielen
Ich habe versucht, TSP mit QAOA zu lösen
Ich habe mit Jupyter eine einfache Bilderkennung versucht
Ich habe versucht, CNN mit Resnet fein abzustimmen
Ich habe versucht, natürliche Sprache mit Transformatoren zu verarbeiten.
# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert
Ich habe versucht zu kratzen
Ich habe PyQ ausprobiert
Ich habe AutoKeras ausprobiert
Ich habe versucht, verschiedene Sätze mit der automatischen Zusammenfassungs-API "summpy" zusammenzufassen.
Ich habe es mit Papiermühle versucht
Ich habe versucht, Django-Slack
Ich habe es mit Django versucht
Ich habe es mit Spleeter versucht
Ich habe es mit cgo versucht
Ich habe versucht, Runenfiguren mit Scikit-Learn handschriftlich zu erkennen
Ich habe versucht, nächstes Jahr mit AI vorherzusagen
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe Hunderte Millionen SQLite mit Python ausprobiert
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Ich habe versucht, Bilder mit CIFAR-10 mit Keras-Learning- zu erkennen.
Ich habe versucht, mit TF Learn die logische Operation zu lernen
Ich habe versucht, GAN (mnist) mit Keras zu bewegen
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"