Site menu:

conText - Latente Semantische Analyse (LSA)


Der mit conText ausgelieferte semantische Raum kann in eigene Programme eingebunden werden um Ähnlichkeitsberechnungen zwischen Wörtern und Texten durchzuführen. Der Vergleich erfolgt dabei nicht auf der Oberflächenebene (Übereinstimmung Buchstaben oder phonetischer Vergleich), sondern semantisch/inhaltlich. Die Datenbasis von conText kann beispielsweise dazu verwendet werden, Texte zu kategorisieren, inhaltliches Plagiat zu ermitteln oder die semantische Ähnlichkeit von Texten zu bewerten.


Vorbereitung

  1. Die Programmierung erfolgt in der Programmiersprache Java (ab Version 1.6). Bitte installieren Sie eine Java Runtime und eine geeignete Entwicklungsumgebung.
  2. Bitte laden Sie die Datei ConTextTools.zip. Das Programm verwendet als Datenbanksystem H2. Die zugehörige Bibliothek liegt bereits im Archiv bei.
  3. Entpacken Sie das Archiv und fügen Sie ConTextTools.jar und h2-1.3.167.jar dem Classpath Ihres Programms hinzu.
  4. Das Archiv enthält im Ordner doc die Programmdokumentation und den Source-Code der Dateien.
  5. Sie müssen eine Lizenz für conText erwerben, um den semantischen Raum verwenden zu können (erhältlich hier).

Berechnungen durchführen

Die Berechnungen funktionieren nur in Verbindung mit den im Ordner database der conText-Installation enthaltenen Dateien. Bevor Sie Ähnlichkeitsvergleiche durchführen, müssen Sie den Pfad auf diesen Ordner setzen. Das Öffnen der Verbindung dauert einige Sekunden. Anschließend können Sie Texte in den semantischen Raum projizieren und Ähnlichkeitsvergleiche durchführen. Hier ein einfaches Beispiel:

public class LSAExample {
	public static void main(String[] args) {
		// First set the directory path to the database
		// file and connect to the database. Please do
		// this ALWAYS prior to using other functions

		VectorStore.setPath("c:/programs/context/database");
		VectorStore.getInstance();

		// Ok, if the path was right, the database is connected
		// after some seconds. Now it's time to play.
		SemanticVector vector1 = LSATools.getVector("Elefanten sind" +
				"Säugetiere, die in der afrikanischen Steppe und im " +
				"indischen Dschungel leben.");
		SemanticVector vector2 = LSATools.getVector("Ein Elefant ist " +
				"ein Großsäuger aus der Savane Afrikas. Manche Arten " +
				"leben im Urwald Indiens.");
		float cosine = LSATools.getCosine(vector1, vector2);

		System.out.println("The semantic similarity is: " + cosine);
	}
}

Lizenz

Die ConTextTools stehen unter der LGPL und können frei privat, wissenschaftlich oder kommerziell verwendet werden. H2 ist zweifach lizensiert und steht unter MPL 1.1 oder EPL 1.0 (siehe License Information) und ist ebenfalls für den kommerziellen Einsatz geeignet. Die Datenbankdateien von conText sind hingegen nicht frei verfügbar und dürfen nicht ohne Erwerb der erforderlichen Lizenz weiterverbreitet werden. Sie müssen für jede Vervielfältigung Ihres Programms, bei der die Datenbankdateien von conText verwendet werden, jeweils eine Lizenz von conText bei uns erwerben und eine Kopie des Programmes mit ausliefern.

conText kann direkt über unser Bestellformular geordert werden. Für die Installation der Software auf einem einzelnen Gerät benötigen Sie eine Einzellizenz (Bestellnummer: 310120-001, Preis: 69 ¤ inkl. USt.).

Sollten Sie Interesse an der Berechnung eigener semantischer Räumen haben, die nicht dieser Beschränkung unterliegen, so kontaktieren Sie uns bitte für ein unverbindliches Angebot.


Anwendungsmöglichkeiten

Die LSA wurde bereits bei einem breiten Spektrum an Anwendungen erfolgreich eingesetzt, wie beispielsweise


Hintergrund

Was passiert bei der LSA genau?

Die Latente Semantische Analyse (LSA; Deerwester, Dumais, Furnas, Landauer & Harshman, 1990) ermöglicht es, den semantischen Gehalt von Wörtern und Texten numerisch in Form von Vektorräumen zu repräsentieren und somit für Berechnungen verfügbar zu machen. Ausgangspunkt der LSA sind große Textsammlungen. Die Texte dieser Sammlungen werden in Texteinheiten (z. B. Absätze) zerteilt. Hieran schließt sich die Erstellung einer Frequenzmatrix der Wörter in den Texten an. Nach einer Gewichtung und Filterung von Stopwörtern wird die Matrix mittels einer Singulärwertzerlegung dekomposiert - ein Prozess der mit der Eigenwertzerlegung im Rahmen von Faktorenanalysen verglichen werden kann. Anders als bei der Faktorenanalyse, bei der eine Zerlegung der quadratischen Kovarianzmatrix durchgeführt wird, erfolgt bei der Singulärwertzerlegung im Rahmen der LSA eine Dekomposition der rechteckigen Matrix der gewichteten Auftretenshäufigkeiten der Wörter in Texten (mathematische Beschreibung siehe Berry, Dumais & O'Brien, 1995). Die für conText verwendete Frequenzmatrix basierte beispielsweise auf den Informationen aus 65 000 Textabschnitten mit 311 000 unterschiedlichen Wortformen aus den Themengebieten Geologie, Geografie, Meteorologie und Physik. Zum Schluss wird analog zur Reduktion der Faktoren bei der Faktorenanalyse auch bei der LSA die Anzahl der extrahierten Dimensionen auf ein Minimum - üblicherweise auf ca. 300 - reduziert. Hierdurch werden gleichzeitig irrelevante Daten eliminiert und Wortbedeutungen abstrahiert. Als Datenstruktur ergibt sich ein orthogonaler n-dimensionaler Raum.


Vektorielle Repräsentation des semantischen Gehalts von Wörtern und Texten

Die Datenbasis, die bei der Singulärwertzerlegung entsteht, wird üblicherweise als semantischer Raum bezeichnet. Dieser stellt nun eine generalisierte, vektorielle Repräsentation des semantischen Gehaltes von Wörtern auf der Basis ihres gemeinsamen Auftretens in Texten sowie eine komprimierte Form des in den Texten gespeicherten Wissens dar. Der Prozess der Generierung semantischer Räume ist sehr ressourcenintensiv. Steht der semantische Raum aber erst einmal zur Verfügung, ist ein hocheffizienter Vergleich des semantischen Gehalts von Texten möglich. Hierfür werden üblicherweise Ähnlichkeitsmaße wie beispielsweise der Kosinus des Zwischenwinkels zweier Vektoren berechnet. Um neue Texte in den Raum zu projizieren, werden die Vektoren der einzelnen Wörter des Textes addiert. Der Kosinus des Zwischenwinkels kann unmittelbar wie eine Korrelation interpretiert werden: Werte nahe null bedeuten inhaltliche Unabhängigkeit, Werte nahe eins eine hohe inhaltliche Übereinstimmung. Negative Werte treten dagegen praktisch nicht auf. Selbst auf alten Pentium IV-Rechnern lassen sich mehrere 10 000 Texte pro Sekunde miteinander vergleichen. So wurde die LSA beispielsweise erfolgreich dafür verwendet, um große Mengen studentischer Texte, die im Rahmen universitärer Veranstaltungen eingereicht wurden, paarweise zu vergleichen und auf inhaltliche Plagiate zu untersuchen.


Trainingsinhalte
Effektivität