Was ist eine Schlüsselwort-Extraktion?
Die Schlagwortextraktion extrahiert automatisch die am häufigsten verwendeten und wichtigsten Wörter und Ausdrücke aus einem Text, indem sie eine Textanalysetechnik verwendet. Es hilft, den Inhalt von Texten zusammenzufassen und die wichtigsten diskutierten Themen zu erkennen, was für Marktforschung , Stimmungsanalyse und andere Arten der Datenanalyse hilfreich ist. Diese Technik nutzt Satzeinbettungen und kann große Datenmengen in Echtzeit analysieren.
Das maschinelle Lernen der künstlichen Intelligenz (KI) mit der Verarbeitung natürlicher Sprache (NLP) (ein Bereich der Informatik) zerlegt die menschliche Sprache so, dass Maschinen sie verstehen und analysieren können. Die Extraktion von Schlüsselwörtern automatisiert Arbeitsabläufe wie die Markierung eingehender Umfrageantworten oder die Beantwortung dringender Kundenanfragen. Diese Technik nutzt linguistische und semantische Informationen über Texte und die darin enthaltenen Wörter. Es gibt verschiedene Algorithmen und Techniken des maschinellen Lernens, um die wichtigsten Schlüsselwörter in einem Text zu extrahieren.
Warum ist die Extraktion von Schlüsselwörtern wichtig?
Die Extraktion von Schlüsselwörtern und Keyphrasen ist aus mehreren Gründen wichtig:
- Suchmaschinen-Optimierung (SEO) : Die Extraktion von Schlüsselwörtern hilft dabei, die wichtigsten Wörter und Ausdrücke in einem Dokument zu identifizieren, die zur Optimierung von Website-Inhalten für Suchmaschinen verwendet werden können.
- Textzusammenfassung: Die Extraktion von Schlüsselwörtern kann verwendet werden, um ein Dokument zusammenzufassen, indem die wichtigsten Wörter und Phrasen identifiziert werden, die das Hauptthema des Textes darstellen.
- Textklassifizierung: Die Extraktion von Schlüsselwörtern kann verwendet werden, um Textdokumente auf der Grundlage der darin enthaltenen Schlüsselwörter in verschiedene Kategorien einzuteilen. Dies ist nützlich für Anwendungen wie die Stimmungsanalyse.
- Informationsbeschaffung: Die Extraktion von Schlüsselwörtern kann dazu verwendet werden, die Genauigkeit von Information Retrieval Systemen zu verbessern, indem relevante Schlüsselwörter identifiziert werden, die mit der Suchanfrage eines Nutzers übereinstimmen.
Wie macht man eine Schlüsselwort-Extraktion in R?
Im Folgenden werden einige Techniken zur Extraktion von Schlüsselwörtern und ihre Anwendungsfälle vorgestellt:
- Finden Sie Schlüsselwörter, indem Sie Wortarten markieren, um Substantive zu identifizieren.
- Schlüsselwörter auf der Grundlage von Kollokationen und gemeinsamen Vorkommen finden
- Schlüsselwörter auf der Grundlage des Textrank-Algorithmus finden
- Schlüsselwörter auf der Grundlage von RAKE (Rapid Automatic Keyword Extraction) finden
- Suche nach Schlüsselwörtern auf der Grundlage der Ergebnisse des Dependency Parsing (Ermittlung des Themas des Textes)
Substantive extrahieren
Ein einfacher Weg, um Schlüsselwörter zu finden, ist die Betrachtung von Substantiven. Da jeder Begriff einen Parts of Speech-Tag hat, wenn Sie den Text mit dem udpipe-Paket kommentiert haben:
Code:
stats <- subset(x, upos %in% "NOUN")
stats <- txt_freq(x = stats$lemma)
library(lattice)
stats$key <- factor(stats$key, levels = rev(stats$key))
barchart(key ~ freq, data = head(stats, 30), col = "cadetblue", main = "Most occurring nouns", xlab = "Freq")
Kollokation und gleichzeitige Vorkommnisse
Ermitteln Sie Mehrwortausdrücke, indem Sie entweder Kollokationen (aufeinander folgende Wörter), das gleichzeitige Auftreten von Wörtern innerhalb eines Satzes oder das gleichzeitige Auftreten von Wörtern, die sich in unmittelbarer Nähe zueinander befinden, betrachten.
Code:
Collocation (words following one another)
stats <- keywords_collocation(x = x,
term = "token", group = c("doc_id", "paragraph_id", "sentence_id"),
ngram_max = 4)
Co-occurrences: How frequent do words occur in the same sentence, in this case only nouns or adjectives
stats <- cooccurrence(x = subset(x, upos %in% c("NOUN", "ADJ")),
term = "lemma", group = c("doc_id", "paragraph_id", "sentence_id"))
## Co-occurrences: How frequent do words follow one another
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"))
## Co-occurrences: How frequent do words follow one another even if we would skip 2 words in between
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"), skipgram = 2)
Textrank (Wortnetz geordnet nach Google Pagerank)
Textrank ist eine weitere Extraktionsmethode für Schlüsselwörter. Das R-Paket textrank implementiert den Textrank-Algorithmus. Der Textrank-Algorithmus ermöglicht die Zusammenfassung von Texten und die Extraktion von Schlüsselwörtern. Um ein Wortnetz zu konstruieren, prüft der Algorithmus, ob Wörter aufeinander folgen. Der „Google Pagerank“-Algorithmus extrahiert relevante Wörter. Relevante Wörter, die aufeinander folgen, ergeben zusammen Schlüsselwörter. TextRank geht nicht vom Originaltext aus, da es sich um einen graphenbasierten Ansatz handelt.
Code:
stats <- textrank_keywords(x$lemma, relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 8, sep = " ")
stats <- subset(stats$keywords, ngram > 1 & freq >= 5) library(wordcloud) wordcloud(words = stats$keyword, freq = stats$freq)
Schnelle automatische Schlüsselwort-Extraktion: RAKE
RAKE ist der nächste grundlegende Algorithmus, ein Akronym für Rapid Automatic Keyword Extraction. RAKE ist ein domänenunabhängiger Algorithmus zur Extraktion von Schlüsselwörtern in der natürlichen Sprachverarbeitung.
-
Die Berechnung einer Punktzahl für jedes Wort, das Teil eines kandidierenden Schlüsselworts ist, erfolgt durch
- Unter den Wörtern der Schlagwortkandidaten prüft der Algorithmus, wie oft jedes Wort vorkommt und wie oft es mit anderen Wörtern zusammen vorkommt
- jedes Wort erhält eine Punktzahl, die das Verhältnis zwischen dem Wortgrad (wie oft es mit anderen Wörtern zusammen vorkommt) und der Worthäufigkeit darstellt
- Ein RAKE-Score für das vollständige Kandidaten-Schlüsselwort wird berechnet, indem die Scores der einzelnen Wörter, die das Kandidaten-Schlüsselwort definieren, addiert werden
Code:
stats <- keywords_rake(x = x, term = "token", group = c("doc_id", "paragraph_id", "sentence_id"), relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 4)
head(subset(stats, freq > 3))
Verwenden Sie die Ausgabe des Dependency Parsing, um das nominale Subjekt und das dazugehörige Adjektiv zu ermitteln
Wenn Sie die Annotation mit udpipe ausgeführt haben, zeigt das Feld dep_rel an, wie die Wörter miteinander in Beziehung stehen. Ein Token wird über token_id und head_token_id mit dem übergeordneten Token verknüpft. Das Feld dep_rel gibt an, wie die Wörter miteinander verknüpft sind. Die Art der Beziehungen finden Sie unter http://universaldependencies.org/u/dep/index.html.
Code:
stats <- merge(x, x, by.x = c("doc_id", "paragraph_id", "sentence_id", "head_token_id"), by.y = c("doc_id", "paragraph_id", "sentence_id", "token_id"), all.x = TRUE, all.y = FALSE, suffixes = c("", "_parent"), sort = FALSE)
stats <- subset(stats, dep_rel %in% "nsubj" & upos %in% c("NOUN") & upos_parent %in% c("ADJ"))
stats$term <- paste(stats$lemma_parent, stats$lemma, sep = " ")
stats <- txt_freq(stats$term)
library(wordcloud)
wordcloud(words = stats$key, freq = stats$freq, min.freq = 3, max.words = 100, random.order = FALSE, colors = brewer.pal(6, "Dark2"))
Was ist Text-Mining?
Text Mining in R bezieht sich auf den Prozess der Analyse und Extraktion von Erkenntnissen aus Textdaten unter Verwendung der Programmiersprache R und der zugehörigen Bibliotheken und Pakete. Text Mining umfasst mehrere Schritte, darunter Datenbereinigung und -vorverarbeitung, Merkmalsextraktion, statistische Modellierung und Visualisierung.
Das Paket
tm
bietet Funktionen zum Lesen von Textdaten, zum Bereinigen und Vorverarbeiten der Daten und zum Erstellen von Dokument-Term-Matrizen, die üblicherweise zur Analyse von Textdaten verwendet werden. Das Paket
tidytext
bietet Werkzeuge zur Umwandlung von Textdaten in ordentliche Datenrahmen.
Zu den gängigen Aufgaben im Textmining gehören Stimmungsanalyse, Themenmodellierung, Dokumentenclusterung und Textklassifizierung. Diese Aufgaben umfassen die Anwendung statistischer und maschineller Lernverfahren, um Muster und Beziehungen in Textdaten zu erkennen.
APIs zur Schlagwortextraktion sind Software-Schnittstellen, die es Entwicklern ermöglichen, mithilfe von vorgefertigten Algorithmen und maschinellen Lernmodellen Schlagwörter und Schlüsselsätze aus Texten zu extrahieren. Diese APIs bieten eine benutzerfreundliche und skalierbare Lösung für die Automatisierung des Prozesses der Schlagwortextraktion, ohne dass Entwickler ihre eigenen Modelle erstellen und trainieren müssen.
R ist eine Open-Source-Programmiersprache und Softwareumgebung für statistische Berechnungen, Datenanalysen und Grafiken. R wird in Wissenschaft, Forschung und Industrie häufig für Aufgaben wie statistische Modellierung, Datenvisualisierung, maschinelles Lernen und Data Mining verwendet. Es hat Schnittstellen zu anderen Programmiersprachen wie Python und C++ . Ausführlichere Informationen finden Sie in den Online-Tutorials auf GitHub.