Einführung

Stellen Sie sich vor, Sie müssen Berge von Dokumenten durchlesen und die wichtigsten Punkte herausfiltern, um einen Sinn daraus zu machen. Das ist überwältigend, oder? Hier kommt Sumy ins Spiel. Es fungiert als digitaler Assistent und kann umfangreiche Texte schnell in prägnante, leicht verständliche Erkenntnisse zusammenfassen. Stellen Sie sich vor, Sie durchdringen den Lärm und konzentrieren sich auf das Wesentliche – alles dank der Magie der Sumy-Bibliothek. Dieser Artikel nimmt Sie mit auf eine Reise durch die Fähigkeiten von Sumy, von seinen vielfältigen Zusammenfassungsalgorithmen bis hin zu praktischen Implementierungstipps, die die gewaltige Aufgabe der Zusammenfassung in einen effizienten, quick mühelosen Prozess verwandeln. Machen Sie sich bereit, in die Welt der automatisierten Zusammenfassung einzutauchen und zu entdecken, wie Sumy Ihren Umgang mit Informationen revolutionieren kann.

Lernziele

  • Verstehen Sie alle Vorteile der Verwendung der Sumy-Bibliothek.
  • Erfahren Sie, wie Sie diese Bibliothek über PyPI und GitHub installieren.
  • Erfahren Sie, wie Sie mit der Sumy-Bibliothek einen Tokenizer und einen Stemmer erstellen.
  • Implementieren Sie verschiedene Zusammenfassungsalgorithmen wie Luhn, Edmundson und LSA von Sumy.

Dieser Artikel erschien im Rahmen der Knowledge Science-Blogathon.

Was ist die Sumy-Bibliothek?

Sumy ist einer der Python-Bibliotheken für Verarbeitung natürlicher Sprache Aufgaben. Es wird hauptsächlich für die automatische Zusammenfassung von Absätzen mithilfe verschiedener Algorithmen verwendet. Wir können verschiedene Summarizer verwenden, die auf verschiedenen Algorithmen basieren, wie Luhn-, Edmundson-, LSA-, LexRank- und KL-Summarizer. Wir werden in den folgenden Abschnitten jeden dieser Algorithmen ausführlich kennenlernen. Sumy erfordert nur minimalen Code zum Erstellen einer Zusammenfassung und kann problemlos in andere Aufgaben der natürlichen Sprachverarbeitung integriert werden. Diese Bibliothek eignet sich zum Zusammenfassen großer Dokumente.

Vorteile der Verwendung von Sumy

  • Sumy bietet zahlreiche Zusammenfassungsalgorithmen, sodass Benutzer je nach ihren Präferenzen aus einer großen Auswahl an Zusammenfassungsprogrammen auswählen können.
  • Diese Bibliothek lässt sich effizient in andere NLP-Bibliotheken integrieren.
  • Die Bibliothek ist einfach zu installieren und zu verwenden und erfordert nur eine minimale Einrichtung.
  • Mit dieser Bibliothek können wir lange Dokumente zusammenfassen.
  • Sumy kann leicht an spezifische Zusammenfassungsanforderungen angepasst werden.

Set up von Sumy

Sehen wir uns nun an, wie diese Bibliothek in unserem System installiert wird.

Um es über PyPI zu installieren, fügen Sie den folgenden Befehl in Ihr Terminal ein.

pip set up sumy

Wenn Sie in einem Pocket book wie Jupyter Pocket book, Kaggle oder Google Colab arbeiten, fügen Sie vor dem obigen Befehl „!“ hinzu.

Erstellen eines Tokenizers mit Sumy

Die Tokenisierung ist eine der wichtigsten Aufgaben bei der Textvorverarbeitung. Bei der Tokenisierung unterteilen wir einen Absatz in Sätze und zerlegen diese Sätze dann in einzelne Wörter. Durch die Tokenisierung des Textes kann Sumy dessen Struktur und Bedeutung besser verstehen, was die Genauigkeit und Qualität der generierten Zusammenfassungen verbessert.

Sehen wir uns nun an, wie man mit der Sumy-Bibliothek einen Tokenizer erstellt. Wir importieren zuerst das Tokenizer-Modul von Sumy und laden dann „punkt“ von NLTK herunter. Dann erstellen wir ein Objekt oder eine Instanz von Tokenizer für die englische Sprache. Anschließend konvertieren wir einen Beispieltext in Sätze und drucken die tokenisierten Wörter für jeden Satz aus.

from sumy.nlp.tokenizers import Tokenizer
import nltk
nltk.obtain('punkt')
tokenizer = Tokenizer("en")

sentences = tokenizer.to_sentences("Howdy, that is Analytics Vidhya! We provide a large 
vary of articles, tutorials, and assets on varied matters in AI and Knowledge Science. 
Our mission is to offer high quality training and data sharing that will help you excel 
in your profession and educational pursuits. Whether or not you are a newbie seeking to study 
the fundamentals of coding or an skilled developer looking for superior ideas, 
Analytics Vidhya has one thing for everybody. ")

for sentence in sentences:
    print(tokenizer.to_words(sentence))

Ausgabe:

Ausgabe: Sumy

Erstellen eines Stemmers mit Sumy

Stemming ist der Prozess, bei dem ein Wort auf seine Grund- oder Stammform reduziert wird. Dies hilft bei der Normalisierung von Wörtern, sodass verschiedene Formen eines Wortes als derselbe Begriff behandelt werden. Auf diese Weise können Zusammenfassungsalgorithmen ähnliche Wörter effektiver erkennen und gruppieren und so die Zusammenfassungsqualität verbessern. Der Stemmer ist besonders nützlich, wenn wir große Texte haben, die verschiedene Formen derselben Wörter enthalten.

Um einen Stemmer mit der Sumy-Bibliothek zu erstellen, importieren wir zuerst das Modul „Stemmer“ aus Sumy. Dann erstellen wir ein Objekt von „Stemmer“ für die englische Sprache. Als Nächstes übergeben wir ein Wort an den Stemmer, um es auf seine Stammform zu reduzieren. Schließlich drucken wir das Wort mit dem Stamm.

from sumy.nlp.stemmers import Stemmer
stemmer = Stemmer("en")
stem = stemmer("Running a blog")
print(stem)

Ausgabe:

Ausgabe

Übersicht über verschiedene Zusammenfassungsalgorithmen

Sehen wir uns nun die verschiedenen Zusammenfassungsalgorithmen an.

Luhn-Zusammenfassung

Der Luhn Summarizer ist einer der Zusammenfassungsalgorithmen der Sumy-Bibliothek. Dieser Summarizer basiert auf dem Konzept der Häufigkeitsanalyse, bei der die Wichtigkeit eines Satzes anhand der Häufigkeit der darin enthaltenen signifikanten Wörter bestimmt wird. Der Algorithmus identifiziert die für das Thema des Textes relevantesten Wörter, indem er einige häufig vorkommende Stoppwörter herausfiltert und dann die Sätze ordnet. Der Luhn Summarizer eignet sich intestine zum Extrahieren von Schlüsselsätzen aus einem Dokument. So erstellen Sie den Luhn Summarizer:

from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.luhn import LuhnSummarizer
from sumy.nlp.stemmers import Stemmer
from sumy.utils import get_stop_words
import nltk
nltk.obtain('punkt')

def summarize_paragraph(paragraph, sentences_count=2):
    parser = PlaintextParser.from_string(paragraph, Tokenizer("english"))

    summarizer = LuhnSummarizer(Stemmer("english"))
    summarizer.stop_words = get_stop_words("english")

    abstract = summarizer(parser.doc, sentences_count)
    return abstract

if __name__ == "__main__":
    paragraph = """Synthetic intelligence (AI) is intelligence demonstrated by machines, in distinction
                   to the pure intelligence displayed by people and animals. Main AI textbooks outline
                   the sphere because the research of "clever brokers": any system that perceives its surroundings
                   and takes actions that maximize its likelihood of efficiently reaching its targets. Colloquially,
                   the time period "synthetic intelligence" is usually used to explain machines (or computer systems) that mimic
                   "cognitive" capabilities that people affiliate with the human thoughts, equivalent to "studying" and "drawback fixing"."""

    sentences_count = 2
    abstract = summarize_paragraph(paragraph, sentences_count)

    for sentence in abstract:
        print(sentence)

Ausgabe:

Ausgabe: Sumy

Edmundson-Zusammenfassung

Der Edmundson Summarizer ist ein weiterer leistungsstarker Algorithmus der Sumy-Bibliothek. Im Gegensatz zu anderen Summarizern, die hauptsächlich auf statistischen und frequenzbasierten Methoden basieren, ermöglicht der Edmundson Summarizer einen maßgeschneiderten Ansatz durch die Verwendung von Bonuswörtern, Stigmawörtern und Nullwörtern. Diese Artwork von Wörtern ermöglicht es dem Algorithmus, diese Wörter im zusammengefassten Textual content hervorzuheben oder abzuschwächen. So erstellen Sie den Edmundson Summarizer:

from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.edmundson import EdmundsonSummarizer
from sumy.nlp.stemmers import Stemmer
from sumy.utils import get_stop_words
import nltk
nltk.obtain('punkt')

def summarize_paragraph(paragraph, sentences_count=2, bonus_words=None, stigma_words=None, null_words=None):
    parser = PlaintextParser.from_string(paragraph, Tokenizer("english"))

    summarizer = EdmundsonSummarizer(Stemmer("english"))
    summarizer.stop_words = get_stop_words("english")

    if bonus_words:
        summarizer.bonus_words = bonus_words
    if stigma_words:
        summarizer.stigma_words = stigma_words
    if null_words:
        summarizer.null_words = null_words

    abstract = summarizer(parser.doc, sentences_count)
    return abstract

if __name__ == "__main__":
    paragraph = """Synthetic intelligence (AI) is intelligence demonstrated by machines, in distinction
                   to the pure intelligence displayed by people and animals. Main AI textbooks outline
                   the sphere because the research of "clever brokers": any system that perceives its surroundings
                   and takes actions that maximize its likelihood of efficiently reaching its targets. Colloquially,
                   the time period "synthetic intelligence" is usually used to explain machines (or computer systems) that mimic
                   "cognitive" capabilities that people affiliate with the human thoughts, equivalent to "studying" and "drawback fixing"."""

    sentences_count = 2
    bonus_words = ("intelligence", "AI")
    stigma_words = ("distinction")
    null_words = ("the", "of", "and", "to", "in")

    abstract = summarize_paragraph(paragraph, sentences_count, bonus_words, stigma_words, null_words)

    for sentence in abstract:
        print(sentence)

Ausgabe:

Ausgabe: Sumy

LSA-Zusammenfassung

Der LSA-Summarizer ist der beste von allen, da er Muster und Beziehungen zwischen Texten erkennt, anstatt sich ausschließlich auf Frequenzanalysen zu verlassen. Dieser LSA-Summarizer generiert kontextuell genauere Zusammenfassungen, indem er die Bedeutung und den Kontext des Eingabetextes versteht. So erstellen Sie den LSA-Summarizer:

from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.lsa import LsaSummarizer
from sumy.nlp.stemmers import Stemmer
from sumy.utils import get_stop_words
import nltk
nltk.obtain('punkt')

def summarize_paragraph(paragraph, sentences_count=2):
    parser = PlaintextParser.from_string(paragraph, Tokenizer("english"))

    summarizer = LsaSummarizer(Stemmer("english"))
    summarizer.stop_words = get_stop_words("english")

    abstract = summarizer(parser.doc, sentences_count)
    return abstract

if __name__ == "__main__":
    paragraph = """Synthetic intelligence (AI) is intelligence demonstrated by machines, in distinction
                   to the pure intelligence displayed by people and animals. Main AI textbooks outline
                   the sphere because the research of "clever brokers": any system that perceives its surroundings
                   and takes actions that maximize its likelihood of efficiently reaching its targets. Colloquially,
                   the time period "synthetic intelligence" is usually used to explain machines (or computer systems) that mimic
                   "cognitive" capabilities that people affiliate with the human thoughts, equivalent to "studying" and "drawback fixing"."""

    sentences_count = 2
    abstract = summarize_paragraph(paragraph, sentences_count)

    for sentence in abstract:
        print(sentence)

Ausgabe:

LSA

Abschluss

Sumy ist eine der besten verfügbaren Bibliotheken zur automatischen Textzusammenfassung. Wir können diese Bibliothek auch für Aufgaben wie Tokenisierung und Stemming verwenden. Durch die Verwendung verschiedener Algorithmen wie Luhn, Edmundson und LSA können wir präzise und aussagekräftige Zusammenfassungen basierend auf unseren spezifischen Anforderungen erstellen. Obwohl wir als Beispiele einen kleineren Absatz verwendet haben, können wir mit dieser Bibliothek im Handumdrehen lange Dokumente zusammenfassen.

Die zentralen Thesen

  • Sumy ist die beste Bibliothek zum Erstellen von Zusammenfassungen, da wir einen Summarizer basierend auf unseren Anforderungen auswählen können.
  • Wir können Sumy auch verwenden, um auf einfache Weise einen Tokenizer und Stemmer zu erstellen.
  • Sumy bietet verschiedene Zusammenfassungsalgorithmen, jeder mit seinem eigenen Nutzen.
  • Wir können die Sumy-Bibliothek verwenden, um lange Textdokumente zusammenzufassen.

Häufig gestellte Fragen

F1. Was ist Sumy?

A. Sumy ist eine Python-Bibliothek zur automatischen Textzusammenfassung mithilfe verschiedener Algorithmen.

Frage 2. Welche Algorithmen unterstützt Sumy?

A. Sumy unterstützt Algorithmen wie Luhn, Edmundson, LSA, LexRank und KL-Summarizer.

F3. Was ist Tokenisierung in Sumy?

A. Bei der Tokenisierung wird Textual content in Sätze und Wörter unterteilt, wodurch die Genauigkeit der Zusammenfassung verbessert wird.

F4. Was ist Stemming in Sumy?

A. Durch Stemming werden Wörter zur besseren Zusammenfassung auf ihre Grund- bzw. Wurzelformen reduziert.

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert