Automatische Wortliste

… hier startet die Suche nach den Schlagwörtern mit dem Tag <mytext> —

Seit ich WordPress verwende, meide ich die Eintragung von Schlagwörtern zu einem Artikel, weil die Suche nach Begriffen ohnehin sehr gut angewendet werden kann. Einen Bereich deckt aber die Suche nicht ab, nämlich den, dass man in die Schlagwortliste auch solche Wörter einsetzten kann, die im Artikel gar nicht vorkommen. Man kann sich aber des Eindrucks nicht erwehren, dass in diesen Fällen es einfacher wäre, den Text entsprechend anzupassen.

Anderseits können aber Wortlisten gewünscht sein, die in das Meta-Tag „keywords“ eingefüllt werden, um die Suche für Crawler zu erleichtern.

In diesem Artikel wird gezeigt, wie man eine Wortliste einer Webseite automatisch erstellen kann. Siehe dazu auch den Artikel „Automatische Linkliste„.

Fertiges Programm nutzen

Michael Delorenzo hat dieses Problem bereits gelöst und bietet seine Software keyword-extractor auf Github zum Download an. Die Software ist für die Installation mit einem npm-Paket-Manager vorgesehen und für den direkten Einsatz mit node.js geeignet. node.js ist auf unseren Servern nicht installiert, was aber nicht viel ausmacht, weil nur wenige Programmzeilen mit node.js interagieren, das eigentliches Programm ist reines JavaScript. Ich habe das Original-Paket für die Verwendung auf einer HTML-Seite vereinfacht und um einige Kleinigkeiten erweitert.

Stoppwörter

Ein Stoppwort ist ein Wort, das nicht in der Schlagwortliste enthalten sein soll.

Nehmen wir diesen Satz als Beispiel. dann könnte man die Wörter ein, ist, wort, das, nicht, in, der, enthalten, sein, soll als Stoppwörter definieren. Dann würden die Wörter stoppwort, schlagwortliste in die Schlagwortliste aufgenommen werden.

An diesem einfachen Beispiel kann man schon sehen, wo die Schwierigkeit liegt. Wählt man zu wenige Stoppwörter, wird die Schlagwortliste zu groß, wählt man zu viele Stoppwörter, ist die Schlagwortliste an Ende leer.

Beispiel für den Beginn einer deutschen Stoppwortliste als Javascript-Array:

const stopwords1 = [
	"a",
	"ab",
	"aber",
	"ach",
	"acht",
	"achte",
	"achten",
	"achter",
	"achtes",
	"ag",
...

Mit der Software keyword-extractor wird eine Wortliste mitgeliefert, die etwa 600 Stoppwärter enthält. Man findet aber im Internet weitergehende Stoppwortlisten für viele verschiedene Sprachen, zum Beispiel umfasst diese hier 1862 Stoppwörter.

Man sieht an dem Ergebnis, dass man die Stoppwortliste nach jeder weiteren Seite bearbeiten wird müssen. In diesem Beispiel könnte man etwa die Wörter begriffen, deckt, einfachen uva. zur Stoppwort-liste hinzufügen.

Es wurden daher für die Weiterentwicklung zwei dieser Listen angelegt. Alle neuen Wörter werden händisch in die zweite Liste eingetragen. Wenn sich die Liste bewährt, werden nach einiger Zeit diese beiden Listen in einer Lise zusammengeführt.

… hier endet die Suche nach den Schlagwörtern mit dem Tag </mytext> —

Liste der Schlagwörter dieser Seite

keyword-extractor

Um auf den Text einer Seite in eine Schlagwortliste umzuwandeln, sind folgende Änderungen auf der Seite nötig:

  • Einfügung von <mytext> und </mytext> in einem HTML-Block am Beginn und am Ende des Suchbereichs. Auf dieser Seite ist das der Anfang der Seite und danach alles bis zum Kapitel keyword-extractor.
  • Einfügung von drei Script-Dateien und eines kurzen Codestücks in einem HTML-Block,
  • der die zwei Stoppwortlisten stopwords0 und stopwords1 ausliest,
  • diese zusammenfasst,
  • sortiert
  • Doubletten entfernt und danach
  • das externe Script aufruft und
  • die Wörter in den vorbereiteten Abschnitt mykeywords einträgt.

Code zur Einfügung der Schlüsselwörter

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://buero.clubcomputer.at/keywords-stopwords-de-0.js"></script>
<script src="https://buero.clubcomputer.at/keywords-stopwords-de-1.js"></script>
<script src="https://buero.clubcomputer.at/keywords.js"></script>
<script>
var stopwords = []
const stopwords_ = stopwords0.concat(stopwords1)
stopwords_.sort()
var stopword_old = ""
for (var i=0; i< stopwords_.length; i++) {
	var stopword = stopwords_[i]
	if (stopword==stopword_old) continue
	stopwords.push(stopword)
	stopword_old = stopword
}
var sentence = $("mytext").html()
var extraction_result = extract(sentence,{
	language:"german",
	remove_digits: true,
	return_changed_case:true,
	remove_duplicates: true
});
extraction_result.sort()
var s = ""
for (var i=0; i<extraction_result.length; i++) {
	if (extraction_result[i]==" ") continue
	s += extraction_result[i] + " &middot; "
}
$(".mykeywords").html(s)
</script>

Beispiel

Im Web powidales.at wird dieses Programm auf allen Seiten angewendet und die Schlagwortliste jeder Seite am Ende der Seite angezeigt.

Zur Werkzeugleiste springen