Dies ist eine von Recruit Technologies veröffentlichte automatische Textzusammenfassungs-API. Es fasst den eingegebenen Text mit der angegebenen Anzahl von Zeilen zusammen.
Veröffentlicht GitHub https://github.com/recruit-tech/summpy
Dieses Mal habe ich verschiedene Sätze in diese API eingefügt und Ich habe versucht zu überprüfen, was das Ergebnis sein würde.
EC2(Amazon Linux release 2) python2.7
Installieren Sie pip, summpy, mecab-python3
Wenn Sie für mecab-python3 keine Version 0.996.5 angeben, Da der Fehler "Keine solche Datei oder kein solches Verzeichnis: / usr / local / etc / mecabrc" angezeigt wird, wird die Version angegeben.
$ sudo easy_install pip
$ sudo pip install summpy
$ sudo pip install mecab-python3==0.996.5
Stellen Sie gleichzeitig die networkx-Version auf 1.11 ein. Wenn Sie dies nicht tun, erhalten Sie einen "Fehler": "add_edge () akzeptiert genau 3 Argumente (4 angegeben)" "Fehler zur Laufzeit.
$ sudo pip install multiqc==1.2
$ sudo pip install networkx==1.11
Es startet an Port 8080. Nohup wird hinzugefügt, um es im Hintergrund auszuführen.
nohup python -m summpy.server -h 127.0.0.1 -p 8080 &
summpy_test.py
#!/usr/bin/env python2
# coding:utf-8
import requests
limit = 3 #Geben Sie hier die Anzahl der Zeilen an, die Sie zusammenfassen möchten
text = 'Geben Sie hier den Text ein, den Sie zusammenfassen möchten.'
p = {'sent_limit':limit, 'text':text}
r = requests.get('http://localhost:8080/summarize', params=p)
print(r.text)
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"Geben Sie hier den Text ein, den Sie zusammenfassen möchten."
]
}
Da der Text eine Zeile ist, ist das Ergebnis auch eine Zeile. Ich möchte den Text hier auf verschiedene Arten ändern.
Von hier aus werde ich verschiedene Sätze für jedes Thema zusammenfassen. Der für das Abstract verwendete Text verwendet den Inhalt des folgenden Artikels.
Wie interpretieren Sie "Adler-Psychologie" aus der Sicht eines Ingenieurs? https://qiita.com/keki/items/0542d9d121cf89d6154e
Lassen Sie uns zunächst die folgenden Sätze zusammenfassen. Nachdem ich die Zeilenumbrüche gelöscht habe, habe ich sie außerdem in die Zusammenfassungs-API eingefügt.
In diesem Alter interessieren mich die Gefühle, Gefühle und Denkweisen der Menschen.
In der Zwischenzeit bin ich vor einigen Jahren in diesem Titel auf "Adler Psychology" gestoßen.
Ingenieure konzentrieren sich manchmal auf die spezialisierte Arbeit der Programmierung, und es wird oft gesagt, dass sie nicht gut mit Menschen kommunizieren können und dass sie nicht gut darin sind, sich dem Kreis der Teams anzuschließen.
Außerdem mache ich mir Sorgen um menschliche Beziehungen und unter Depressionen....Ich denke, dass es viele Fälle gibt.
Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Art zu denken und zu denken ist, um solche Probleme der menschlichen Beziehungen zu lösen.
Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Sicht eines Ingenieurs zu interpretieren, da ich ein Ingenieur auf diesem Gebiet bin.
Es ist übrigens ein ziemlich langer Satz.
Ich hoffe, Sie werden es mit der Absicht lesen, ein kleines Buch zu lesen.
summpy_test.py
#!/usr/bin/env python2
# coding:utf-8
import requests
limit = 3 #Geben Sie hier die Anzahl der Zeilen an, die Sie zusammenfassen möchten
text = 'In diesem Alter interessieren mich die Gefühle, Gefühle und Denkweisen der Menschen. In der Zwischenzeit bin ich vor einigen Jahren in diesem Titel auf "Adler Psychology" gestoßen. Ingenieur programmiert
Manchmal wird gesagt, dass ich nicht gut mit Menschen kommunizieren kann und nicht gut darin bin, mich dem Kreis der Teams anzuschließen, weil ich mich auf meine Spezialarbeit konzentriere. Außerdem mache ich mir Sorgen um menschliche Beziehungen und unter Depressionen....Jobs, die oft sind>Ich denke, es ist ein Same. Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Art zu denken und zu denken ist, um solche Probleme der menschlichen Beziehungen zu lösen. Dieses Mal bin ich Ingenieur auf dem Gebiet einer solchen "Adler-Psychologie", aber aus der Sicht des Ingenieurs
Ich möchte einen Artikel darüber schreiben, was es bedeutet, wenn es in interpretiert wird. Es ist übrigens ein ziemlich langer Satz. Ich hoffe, Sie werden es mit der Absicht lesen, ein kleines Buch zu lesen.'
p = {'sent_limit':limit, 'text':text}
r = requests.get('http://localhost:8080/summarize', params=p)
print(r.text)
$ python summpy_test.py
{
"debug_info": {},
"summary": [
"In diesem Alter interessieren mich die Gefühle, Gefühle und Denkweisen der Menschen.",
"Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Art zu denken und zu denken ist, um solche Probleme der menschlichen Beziehungen zu lösen.",
"Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Sicht eines Ingenieurs zu interpretieren, da ich ein Ingenieur auf diesem Gebiet bin."
]
}
Hmm. Der Zusammenhang zwischen der 1. und 2. Zeile ist schwer zu verstehen, wird jedoch in 3 Zeilen zusammengefasst. Es scheint auch, dass der Originaltext nicht verarbeitet wird, sondern der Text einfach extrahiert und ausgewählt wird.
Um zu untersuchen, was Interpunktion in Summpy bedeutet, wage ich es, alle Interpunktion zu entfernen.
In diesem Alter interessieren mich die Gefühle und das emotionale Denken der Menschen.
Vor einigen Jahren traf ich "Adler Psychology", das auch in diesem Titel enthalten ist.
Ingenieure können nicht gut mit Menschen kommunizieren, weil sie sich auf die spezialisierte Programmierarbeit konzentrieren, und ich denke, manchmal wird gesagt, dass sie nicht gut darin sind, sich dem Kreis der Teams anzuschließen.
Außerdem mache ich mir Sorgen um menschliche Beziehungen und unter Depressionen....Ich denke, dass es viele Fälle gibt
Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Idee selbst ist, solche Probleme der menschlichen Beziehungen zu lösen.
Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Perspektive eines Ingenieurs zu interpretieren, der tatsächlich ein Ingenieur auf diesem Gebiet ist.
Übrigens wird es ein ziemlich langer Satz sein
Ich hoffe, Sie werden es mit der Absicht sehen, ein kleines Buch zu lesen.
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"In diesem Alter interessiere ich mich für die Gefühle und das emotionale Denken der Menschen. Ich habe mich vor einigen Jahren in "Adler Psychology" kennengelernt, das auch in diesem Titel enthalten ist. Ingenieure sind auf Programmierung spezialisiert. Ich kann nicht gut mit Menschen kommunizieren, weil ich mich auf meine Arbeit konzentriere. Ich denke, manchmal wird gesagt, dass ich nicht gut darin bin, dem Kreis der Teams beizutreten....Ich denke, dass es viele Fälle gibt, in denen "Adler-Psychologie" die Idee selbst ist, solche Probleme der menschlichen Beziehungen zu lösen. Dieses Mal arbeite ich als Ingenieur auf dem Gebiet einer solchen "Adler-Psychologie". Ich würde gerne einen Artikel darüber schreiben, wie es wäre, wenn ich ihn aus der Sicht eines Ingenieurs interpretiere. Übrigens wird es ein ziemlich langer Satz sein. Ich hoffe, Sie werden ein kleines Buch lesen."
]
}
Es wurde in einer Zeile zusammengefasst. Anscheinend wird Interpunktion als Satzbruch betrachtet.
Was ist dann, wenn wir die Anzahl der zusammenzufassenden Zeilen erhöhen? Ich habe versucht, den obigen Satz in 100 Zeilen zusammenzufassen.
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"In diesem Alter interessieren mich die Gefühle, Gefühle und Denkweisen der Menschen.",
"In der Zwischenzeit bin ich vor einigen Jahren in diesem Titel auf "Adler Psychology" gestoßen.",
"Ingenieure konzentrieren sich manchmal auf die spezialisierte Arbeit der Programmierung, und es wird oft gesagt, dass sie nicht gut mit Menschen kommunizieren können und dass sie nicht gut darin sind, sich dem Kreis der Teams anzuschließen.",
"Außerdem mache ich mir Sorgen um menschliche Beziehungen und unter Depressionen....Ich denke, dass es viele Fälle gibt.",
"Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Art zu denken und zu denken ist, um solche Probleme der menschlichen Beziehungen zu lösen.",
"Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Sicht eines Ingenieurs zu interpretieren, da ich ein Ingenieur auf diesem Gebiet bin.",
"Es ist übrigens ein ziemlich langer Satz.",
"Ich hoffe, Sie werden es mit der Absicht lesen, ein kleines Buch zu lesen."
]
}
Der Originaltext ist so wie er ist. Der Lesepunkt (,) wird nicht als Satzumbruch verwendet. Sie können sehen, dass sie durch Satzzeichen (.) Getrennt sind. Außerdem scheint es auch durch Punkte (.), Fragezeichen (?) Und Ausrufezeichen (!) Getrennt zu sein.
Lassen Sie uns nun die Anzahl der Zeilen schrittweise reduzieren.
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"In diesem Alter interessieren mich die Gefühle, Gefühle und Denkweisen der Menschen.",
"In der Zwischenzeit bin ich vor einigen Jahren in diesem Titel auf "Adler Psychology" gestoßen.",
"Ingenieure konzentrieren sich manchmal auf die spezialisierte Arbeit der Programmierung, und es wird oft gesagt, dass sie nicht gut mit Menschen kommunizieren können und dass sie nicht gut darin sind, sich dem Kreis der Teams anzuschließen.",
"Außerdem mache ich mir Sorgen um menschliche Beziehungen und unter Depressionen....Ich denke, dass es viele Fälle gibt.",
"Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Art zu denken und zu denken ist, um solche Probleme der menschlichen Beziehungen zu lösen.",
"Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Sicht eines Ingenieurs zu interpretieren, da ich ein Ingenieur auf diesem Gebiet bin.",
"Es ist übrigens ein ziemlich langer Satz."
]
}
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"In diesem Alter interessieren mich die Gefühle, Gefühle und Denkweisen der Menschen.",
"In der Zwischenzeit bin ich vor einigen Jahren in diesem Titel auf "Adler Psychology" gestoßen.",
"Außerdem mache ich mir Sorgen um menschliche Beziehungen und unter Depressionen....Ich denke, dass es viele Fälle gibt.",
"Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Art zu denken und zu denken ist, um solche Probleme der menschlichen Beziehungen zu lösen.",
"Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Sicht eines Ingenieurs zu interpretieren, da ich ein Ingenieur auf diesem Gebiet bin.",
"Es ist übrigens ein ziemlich langer Satz."
]
}
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"In diesem Alter interessieren mich die Gefühle, Gefühle und Denkweisen der Menschen.",
"In der Zwischenzeit bin ich vor einigen Jahren in diesem Titel auf "Adler Psychology" gestoßen.",
"Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Art zu denken und zu denken ist, um solche Probleme der menschlichen Beziehungen zu lösen.",
"Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Sicht eines Ingenieurs zu interpretieren, da ich ein Ingenieur auf diesem Gebiet bin.",
"Es ist übrigens ein ziemlich langer Satz."
]
}
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"In diesem Alter interessieren mich die Gefühle, Gefühle und Denkweisen der Menschen.",
"Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Art zu denken und zu denken ist, um solche Probleme der menschlichen Beziehungen zu lösen.",
"Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Sicht eines Ingenieurs zu interpretieren, da ich ein Ingenieur auf diesem Gebiet bin.",
"Es ist übrigens ein ziemlich langer Satz."
]
}
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"In diesem Alter interessieren mich die Gefühle, Gefühle und Denkweisen der Menschen.",
"Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Art zu denken und zu denken ist, um solche Probleme der menschlichen Beziehungen zu lösen.",
"Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Sicht eines Ingenieurs zu interpretieren, da ich ein Ingenieur auf diesem Gebiet bin."
]
}
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"Ich persönlich bin der Meinung, dass "Adler-Psychologie" die Art zu denken und zu denken ist, um solche Probleme der menschlichen Beziehungen zu lösen.",
"Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Sicht eines Ingenieurs zu interpretieren, da ich ein Ingenieur auf diesem Gebiet bin."
]
}
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"Dieses Mal möchte ich einen Artikel darüber schreiben, wie es wäre, eine solche "Adler-Psychologie" aus der Sicht eines Ingenieurs zu interpretieren, da ich ein Ingenieur auf diesem Gebiet bin."
]
}
Allmählich werden Sätze, die als unbedeutend beurteilt werden, gelöscht. Ich weiß nicht, was die Kriterien sind, aber Immerhin als Verhalten,
Es scheint keinen Fehler in der Form zu geben.
Wenn ich mir die Ergebnisse der Zusammenfassung anschaue, denke ich persönlich, dass die dreizeilige Zusammenfassung die einfachste und relevanteste ist. Mit zunehmender Textmenge habe ich jedoch das Gefühl, dass ich nicht weiß, was die Geschichte mit nur drei Zeilen ist. Ich halte es auch für notwendig, eine angemessene Anzahl von Zeilen zu finden, die der Textmenge entspricht.
Um zu überprüfen, was passieren würde, wenn Sie die nicht verbundenen Sätze zusammenfassen würden Fassen wir das "Inhaltsverzeichnis" des obigen Artikels zusammen.
Nachschlagewerk
Annahme
1.Menschen können sich ändern
1-1.Es gibt kein Trauma
1-2.Hab keine Angst, verletzt zu werden
1-3.Schädliche Wirkungen entstehen, wenn das Minderwertigkeitsgefühl zu stark wird
1-4.Akzeptiere dich selbst
2.Trennung von Themen
2-1.Sie müssen nicht die Erwartungen anderer erfüllen
2-2.Treten Sie nicht in die Herausforderungen anderer ein
2-3.Trennung von Themen
3.Wie man mit anderen interagiert
3-1.Konkurriere nicht mit anderen
3-2.Nicht-Niederlage zugeben = nicht verlieren
4.Über die Erziehung von Menschen
4-1 Lass dich nicht schelten, lobe nicht
4-2 Danke, nicht bewerten
5.Gemeinschaftsgefühl
Schließlich
$ python ./summpy_test.py
{
"debug_info": {},
"summary": [
"2-1.Sie müssen nicht die Erwartungen anderer erfüllen.",
"2-2.Treten Sie nicht in die Herausforderungen anderer ein.",
"3.Wie man mit anderen umgeht."
]
}
Ursprünglich ist es ein Satz, der nicht viel Kontext hat, daher ist es natürlich, dass das zusammenfassende Ergebnis auch unorganisiert ist. Es ist interessant, dass nicht nur die Hauptkategorien ausgewählt wurden, sondern auch die mittleren Kategorien (2-1 und 2-2).
Ich habe mich gefragt, welche Art von Logik zusammengefasst wurde Ich habe mir den Quellcode der auf GitHub veröffentlichten API kurz angesehen.
Vielleicht ist der Teil, der zusammenfasst (der Teil, der der Kernlogik entspricht), wie folgt: https://github.com/recruit-tech/summpy/blob/master/summpy/lexrank.py
Ich benutze also DictVectorizer und pairwise_distances Nach dem Trennen der Sätze wird eine Merkmalsextraktion durchgeführt und die Abstandsmatrix des Merkmals erhalten. Es sieht so aus, als würden Sie das Ergebnis erzielen ...
Danke, dass du bis zum Ende zugesehen hast.
"Was passiert, wenn Sie diesen Satz zusammenfassen?" "Ich möchte, dass du diesen Satz zusammenfasst!"
Wenn Sie eine Anfrage wie haben, wäre ich Ihnen dankbar, wenn Sie einen Kommentar abgeben könnten.
Recommended Posts