Konzepte und Schlüsselwörter automatisch aus einem Text extrahieren (Teil II: Semantischer Ansatz)

Veröffentlicht: 2022-09-20

Dieser Artikel ist eine Fortsetzung des ersten Teils über die automatische Extraktion von Schlüsselwörtern aus einem Text. Der vorherige Artikel befasste sich mit dem sogenannten „traditionellen“ Ansatz, Schlüsselwörter aus einem Text zu extrahieren: statistikbasiert oder graphenbasiert.

Hier werden wir Methoden mit einem eher semantischen Ansatz untersuchen. Zuerst werden wir Worteinbettungen und -transformatoren einführen, dh kontextuelle Einbettungen. Dann teilen wir ein Beispiel mit dem gleichen Text über das Album von John Coltrane, Impressions (Quelle francemusique.fr), basierend auf dem BERT-Modell. Abschließend stellen wir einige Bewertungsmethoden wie P@k , f1-score sowie Benchmarks aus dem neuesten Stand der Technik vor.

Im Gegensatz zum traditionellen Ansatz ermöglicht Ihnen der semantische Ansatz, Wörter zu verknüpfen, die zu einem ähnlichen lexikalischen Feld gehören, auch wenn sie unterschiedlich sind. Die Idee hinter diesem Ansatz ist, auf die Berechnung von Wortvorkommenshäufigkeiten im Text zu verzichten, um die Wörter zu extrahieren, die am sinnvollsten sind, also die relevantesten Informationen in Bezug auf den Text liefern.

Worteinbettungen

Diese Methode geht auf das Jahr 2013 mit der Einführung eines Modells namens word2vec zurück. Es handelt sich um eine „einfache“ künstliche neuronale Netzwerkarchitektur – im Gegensatz zu den sogenannten „Deep Learning“-Architekturen – die vorschlagen, die Wortmenge eines Vokabulars als Vektoren darzustellen. Mit anderen Worten, jedes Wort wird durch eine Reihe von Zahlen dargestellt. Dieser Satz von Vektoren stellt das semantische Feld des Vokabulars dar, mit der Fähigkeit, diese Vektoren miteinander zu vergleichen. Indem wir den Abstand zwischen diesen Vektoren messen, können wir feststellen, ob die Wörter semantisch ähnlich sind . Die Darstellung von Wörtern als Array von Zahlen wird Einbettungen genannt.

word2vec-embedding-example-en

Einbettungs-Beispiel

Sobald Sie die Vektordarstellung Ihres Wortsatzes haben, können Sie diese Wörter miteinander vergleichen. Zwei Wörter haben eine ähnliche Bedeutung, wenn die beiden Vektoren einen sehr kleinen Winkel zwischen sich haben: Dies ist die semantische Distanz – ein Wert zwischen -1 und 1. Je näher der Wert an 1 liegt, desto mehr haben die Wörter ein „ähnliches“. Bedeutung. Ein Wert nahe -1 weist dagegen auf „entgegengesetzte“ Bedeutungen hin, z. B. „gut“ und „schlecht“.

Ziel dieses Modells ist es, diese berühmten Einbettungen aus einer nicht zu vernachlässigenden Menge von Textdokumenten „herzustellen“. Nehmen wir an, Sie haben ein paar hunderttausend Texte, das Modell lernt, ein Wort auf der Grundlage der Wörter vorherzusagen, die ihm ähnlich sind.

word2vec-window-en

Wörter-Fenster

Das Modell nimmt als Eingabe mehrere Wortgruppen – beispielsweise der Größe 5 – und versucht, die besten Alternativen zu <mask> zu finden. Innerhalb Ihres Korpus gibt es ähnliche Phrasen oder Wortgruppen; Wir werden zum Beispiel die Wörter finden können: „Jazz“, „Rock“, „Klassik“ oder „Reggae“. Somit haben alle diese Wörter ziemlich ähnliche Vektoren. Somit kann das Modell Konzepte und Wörter zusammenbringen, die sich in einem ähnlichen lexikalischen Feld befinden.

[Fallstudie] Indizierungsprobleme finden und beheben

Von null Traffic zu exponentiellem Wachstum: Entdecken Sie, wie GroupM Turkey Oncrawl verwendet hat, um die Indexierungsprobleme von Unilever zu lösen.
Lesen Sie die Fallstudie

Andererseits kann es zu Mehrdeutigkeiten bei einem Wort kommen, das die gleiche Schreibweise hat, aber im Kontext nicht die gleiche Bedeutung hat: Dies sind homographische Wörter.

Zum Beispiel:

  1. Er setzte sich neben das Ufer der Seine.
  2. Sie hat das Geld bei der Chase Bank eingezahlt.

Dies ist eine Einschränkung dieses Modelltyps: Das Wort hat unabhängig vom Kontext dieselbe Vektordarstellung.

Transformer

Ein neuerer Ansatz entstand vor allem 2017 mit Googles Attention Is All You Need. Während word2vec- Methoden Schwierigkeiten hatten, zwei identische Wörter darzustellen, die nicht dieselbe Bedeutung hatten, sind Transformer -Modelle in der Lage, die Bedeutung eines Wortes basierend auf seinem Kontext zu unterscheiden. Beachten Sie, dass es auch NLP-Modelle gibt, die in der Lage sind, Wortfolgen wie RNNs oder LSTMs zu berücksichtigen, aber wir werden sie in diesem Artikel nicht ansprechen.

Transformers wird ein neues Konzept in der neuronalen Netzwerkarchitektur bekannt machen: den Aufmerksamkeitsmechanismus . So können Sie innerhalb einer Wortfolge, zB eines Satzes, herausfinden, wie jedes Wort mit den anderen zusammenhängt.

Das BERT-Modell, das 2018 von Google erstellt wurde, ist ein leistungsstarkes und beliebtes Modell. Der Vorteil dieser Sprachmodelle besteht darin, dass sie auf einem vortrainierten Modell basieren, dh das Modell wurde bereits auf eine beträchtliche Menge an Texten in Englisch, Französisch usw. trainiert. Es ist dann möglich, es auf der Grundlage von a zu verwenden genauere Analyse. Es ist dann möglich, es so zu verwenden, wie es ist, um Text zu vergleichen, Antworten auf Fragen zu generieren, Stimmungsanalysen durchzuführen, Feinabstimmungen an einem spezifischeren Textkörper vorzunehmen usw.

bert-attention-visualisation

Achtung Visualisierung

Das Bild wurde mit dem Visualisierungstool exBERT erstellt . Wir können sehen, dass das ausgewählte Wort „Geld“ stark mit „ deponiert “ und „ Bank “ verknüpft ist. Dank des Kontexts ist es für das Modell dann einfacher, die Mehrdeutigkeit des Wortes „ Bank “ zu beseitigen.

Im Fall von KeyBERT handelt es sich um ein von BERT abgeleitetes Modell namens Sentence-BERT, mit dem wir Sätze einfach semantisch vergleichen können.

Wenn Sie mehr über alle verfügbaren Open-Source- und vortrainierten Modelle erfahren möchten, können Sie den Huggingface-Hub besuchen, der sich auf das Speichern und Teilen von Datensätzen und Modellen im Zusammenhang mit NLP (aber neuerdings auch mit Audio und Bild) spezialisiert hat.

Keyword-Extraktion mit KeyBERT

Wie können wir also Transformer verwenden, um relevante Schlüsselwörter aus einem Text zu extrahieren? Es gibt mehrere Projekte, darunter KeyBERT: Minimale Schlüsselwortextraktion mit BERT, einer Open-Source-Python-Bibliothek, die das BERT-Modell verwendet.

KeyBERT verwendet standardmäßig die BERT-basierten Satztransformatoren, um einen Satz anstelle eines einzelnen Wortes als Vektor darzustellen. Dies ist eine sehr effiziente Methode, um Sätze oder Wortgruppen zu vergleichen. Das Prinzip des KeyBERT-Algorithmus ist recht einfach. Schauen wir uns einen Beispieltext an, dann:

  1. Der Code extrahiert alle eindeutigen Wörter aus dem Text. In diesem Schritt werden häufig Stoppwörter eliminiert.
  2. Die Einbettungen des gesamten Textes und jedes Wortes werden berechnet.
  3. Wir können dann den semantischen Abstand zwischen den Vektoren, die aus den Wörtern stammen, und dem Vektor, der den Text in seiner Gesamtheit darstellt, berechnen.

Sobald alle Entfernungen berechnet wurden, können wir die Wörter extrahieren, die eng mit der Gesamtbedeutung des Textes zusammenhängen: Dies sind die vom Algorithmus ausgewählten Schlüsselwörter.

Darüber hinaus gibt Ihnen KeyBERT die Möglichkeit, die Länge der Schlüsselphrasen auszuwählen : Wir können tatsächlich entweder einzelne Wörter oder Paare oder sogar Dreiergruppen von Wörtern verwenden. Darüber hinaus bietet der Code eine Möglichkeit, die Methode „Maximal Marginal Relevance“ (MMR) zu implementieren, um die Vielfalt der Ergebnisse zu erhöhen. Dies hilft Ihnen, die Wiederholung eines Begriffs zu vermeiden, der für den Inhalt des Dokuments relevant sein kann, aber zu oft in den Ergebnissen vorhanden ist, zum Beispiel: „Jazzkonzert“, „Jazzmusik“, „Jazzstil“ , etc.

Abschließend können auch andere NLP-Modelle für KeyBERT verwendet werden, wie z. B. Modelle von spaCy oder flair.

Wie im vorherigen Artikel ist hier ein Beispiel für die Schlüsselwörter, die KeyBERT aus demselben Artikel über John Coltranes Album „Impressions“ extrahiert hat:

„coltrane impressionen“, „musikquartett“, „jazzschatz“, „johanneskonzert“, „perlenfolge“, „grazer repertoire“, „tenorsaxophone“

Bewertungsmethoden

​​In diesem und dem vorherigen Artikel haben wir verschiedene Methoden vorgestellt, die zum Extrahieren von Schlüsselwörtern aus einem Dokument verwendet werden: RAKE, Yake, TextRank und KeyBERT. Es ist jedoch wichtig, je nach Kontext das richtige auswählen zu können.

Es ist daher relevant, Bewertungsmethoden zu betrachten, um die Ergebnisse einer Methode mit einer anderen zu vergleichen. Aus Daten (document, keywords) bei denen die Schlüsselwörter von Menschen definiert und validiert wurden, ist es möglich, die Ergebnisse eines Modells mit dieser „ Realität “ zu vergleichen. Wir haben Metriken wie Precision, Recall und F1-Score , die oft bei Klassifizierungsproblemen verwendet werden. Wir können daher eine Konfusionsmatrix erstellen, indem wir wissen, ob ein bestimmtes vom Modell extrahiertes Schlüsselwort tatsächlich in der Liste relevanter Schlüsselwörter enthalten ist.

Da die Modelle eine Reihe von Keywords extrahieren können, vergleichen wir oft die ersten k Keywords mit der Ground Truth . Da die Ergebnisse je nach Anzahl der zu vergleichenden Keywords variieren können, werten wir das Modell mehrfach nach dem k -Wert aus. Diese Metriken werden Precision@k genannt, was bedeutet: „Ich berechne die Precision auf dem Top-k“.

[Ebook] Wie sich Ihr internes Verlinkungsschema auf Inrank auswirkt

Folgen Sie den Experimenten von Chris Green, um zu verstehen, wie sich Ihr internes Verlinkungsschema auf die relative Wichtigkeit Ihrer Seiten mit Inrank auswirkt.
Wie sich Ihr internes Verlinkungsschema auf Inrank auswirkt

Präzision

Dies ist die Anzahl der richtigen Keywords in den Top-k aller vorhergesagten Keywords .

Precision calculation

Abrufen

Dies ist die Anzahl der richtigen Keywords in den Top-k der gesamten Keywords der Grundwahrheit.

Recall calculation

f1-Ergebnis

Es ist eine Kombination der beiden vorherigen Metriken – oder anders gesagt ein harmonischer Durchschnitt zwischen Precision und Recall:

F1 score calculation

KARTE @k

Mittlere durchschnittliche Präzision

Der erste Schritt zur Berechnung des MAP ist die Berechnung der durchschnittlichen Genauigkeit. Wir nehmen alle vom Modell gefundenen Schlüsselwörter und berechnen den P@k für jedes relevante Schlüsselwort, das vom Modell gefunden wird. Als Beispiel, um AP@5 mit 3 relevanten Schlüsselwörtern aus den 5 vorgeschlagenen zu berechnen:

 Stichworte: Jazz Konzert Musik Saxophon Radio
   relevant: 1 0 1 1 0
   P@k: 1/1 2/3 3/4

   AP: 1/3 (1 + 2/3 + 3/4) ~= 0,80

Wir weisen hier darauf hin, dass es auf die Position der relevanten Keywords ankommt. Tatsächlich wird der AP nicht dieselbe Punktzahl haben, wenn die ersten drei der fünf Schlüsselwörter nicht relevant (bzw. relevant) sind.

Dann berechnen wir für jedes (document, keywords) den Durchschnitt aller APs , um schließlich den MAP zu erhalten.

Beachten Sie, dass diese verschiedenen Metriken auch häufig zur Bewertung von Ranking -Modellen oder Empfehlungssystemen verwendet werden.

Ein kleiner Kritikpunkt an einigen dieser Metriken betrifft die Anzahl relevanter Ground-Truth-Keywords, die je nach Datensatz und Dokument variieren kann.

  • Zum Beispiel recall@k : Die Punktzahl kann stark von der Größe der relevanten Keywords der Ground Truth abhängen. Wenn Sie bis zu 20 relevante Schlüsselwörter haben, vergleichen Sie für einen recall@10 die ersten 10 Schlüsselwörter in diesem Satz von 20 Schlüsselwörtern. Im besten Fall, wenn alle vom Modell vorgeschlagenen Keywords relevant sind, wird der Recall -Score 0,5 nicht überschreiten.
  • Wenn andererseits die Anzahl der relevanten Ground-Truth-Keywords im Vergleich zu den vom Modell vorgeschlagenen sehr gering ist, können Sie keine guten precision@k -Werte erzielen. Für fünf relevante Ground-Truth-Keywords hat precision@10 bestenfalls eine Punktzahl von 0,5, aber nicht mehr.

Unabhängig von den Metriken, die zur Bewertung der Ergebnisse verwendet werden, ist ein Datensatz (Text, Schlüsselwörter) erforderlich, in dem die Schlüsselwörter zuvor von Personen definiert wurden – den Autoren der Texte, Lesern, Redakteuren usw. Es gibt mehrere Datensätze, hauptsächlich in Englisch und zu verschiedenen Themen: wissenschaftliche Artikel, Abstracts, Nachrichten, IT usw. Hier ist zum Beispiel dieses Github KeywordExtractor-Datasets-Repository, das etwa zwanzig Datensätze auflistet.

Benchmarks

Über diese Präsentation der verschiedenen Bewertungsmethoden hinaus möchte ich Ihnen auch einen „Auszug“ einiger Forschungsarbeiten geben, die Benchmarks vorschlagen.

Der erste stammt von den Forschern, die das Yake! Methode in der Zeitung „YAKE! Schlüsselwortextraktion aus einzelnen Dokumenten unter Verwendung mehrerer lokaler Merkmale“. Sie analysierten ihre Methode an etwa zwanzig verschiedenen Datensätzen: PubMed, WikiNews, SemEval2010 und KDD für die bekanntesten, wobei sie die meisten der oben beschriebenen Metriken verwendeten: P@k , recall@k usw. Yake! wird mit etwa zehn anderen Methoden verglichen, darunter Rake, Text Rank usw. Durch die Konsolidierung aller verfügbaren Datensätze und die Berechnung von Präzision und Rückruf kann Yake! Methode ist entweder besser oder sehr nahe an den State-of-the-Art-Methoden. Zum Beispiel für f1@10 :

Datensatz Jake! Bester oder 2
WikiNews 0,450 0,337
KDD 0,156 0,115
Inspektion 0,316 0,378

Jake! ist oft bis zu 50-100 % besser, was der führenden Methode nahe kommt.

In einem anderen, neueren Artikel „TNT-KID: Transformer-based neural tagger for keyword Identification“ vergleichen wir ebenfalls traditionelle und Transformer -basierte Methoden. Die Extraktionsmethoden mit Transformers sind besser. Seien Sie jedoch vorsichtig, da dies im Gegensatz zu Rake, KeyBERT und Yake sogenannte „überwachte“ Methoden sind, die nicht auf einer Datenmenge trainiert werden müssen, um Ergebnisse zu erzielen.

Lassen Sie uns abschließend noch einen Blick auf zwei weitere Benchmarks werfen:

  • Die einfache unüberwachte Schlüsselphrasenextraktion mit Satzeinbettungen verwendet Worteinbettungen und schneidet im Vergleich zu TextRank bei Datensätzen wie Inspec und DUC gut ab.
  • Ein Blogbeitrag, der 7 Algorithmen (in Python) vergleicht: Keyword Extraction — A Benchmark of 7 Algorithms in Python. Der Autor vergleicht die Rechenleistung der KeyBERT-, RAKE- und Yake-Methoden sowie die Anzahl relevanter Wörter, die jede Methode extrahieren kann.

Fazit

Wie Sie in diesen beiden Artikeln gesehen haben, gibt es wirklich eine Vielzahl sehr unterschiedlicher Möglichkeiten, relevante Schlüsselwörter aus einem Text zu extrahieren. Wenn Sie sich die verschiedenen Benchmarks ansehen, werden Sie feststellen, dass es keinen gibt, der alle anderen in Bezug auf die Metriken wirklich übertrifft. Es kommt auf den Text und den Kontext an. Außerdem können wir uns, wie der Autor des Blogartikels zu den 7 Extraktionsalgorithmen anmerkte, auch bei einem längeren Text auf die Verarbeitungszeit eines Algorithmus verlassen.

Diese Zeit wird sicherlich ein Faktor sein, wenn es darum geht, einen Algorithmus in Gang zu setzen und Hunderttausende von Dokumenten zu verarbeiten. Im Fall von KeyBERT sollten Sie eine Infrastruktur mit GPU in Betracht ziehen, um die Verarbeitungszeit radikal zu erhöhen. Tatsächlich stützt sich diese Methode auf Transformers, die über eine Deep-Learning-Architektur verfügen, die viel Rechenleistung erfordert.

Wenn ich mich entscheiden müsste, wäre es sicherlich zwischen KeyBERT und Yake. Ersteres wegen der Transformatoren und des semantischen Aspekts, letzteres wegen seiner Effizienz und Ausführungsgeschwindigkeit.

Bibliographische Referenzen

  • Aufmerksamkeit ist alles, was Sie brauchen, 2017
  • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, 2019
  • Selbstüberwachter kontextabhängiger Abruf von Schlüsselwörtern und Schlüsselphrasen mit Selbstkennzeichnung. Sharma P. & Li Y. (2019)
  • Untersuchung verschiedener Keyword-Extraktoren – Bewertungsmetriken und -strategien