CorpusExplorer

CorpusExplorer (NOV2017) – SQL-Datenbanken / LinqConnect

CorpusExplorer (NOV2017) – SQL-Datenbanken / LinqConnect

An dieser Stelle zuerst ein großes Dankeschön für den Projekt-Rabatt von devart für LinqConnect. Im Rahmen des CorpusExplorer-Projekts habe ich viele ORM-Mapper getestet, auch das neue Entity-Framework (Core). Was aber Funktionalität und Flexibilität anbelangt, ist LinqConnect gegenwärtig das beste Produkt am Markt. In diesem Artikel wird ausgeführt, wie mittels LinqConnect eine CorpusExplorer-Schnittstelle für MySQL und SQLite entwickelt wurde. Natürlich kann man auf die Datenbanken auch nativ oder mit einem anderen ORM-Mapper zugreifen, aus Sicht eines C#-Entwicklers gibt es aber einige Vorteile (die im Folgenden auch behandelt werden).

Das Schema kann direkt in Visual Studio 2017 mittels visueller Tools erstellt werden (der dafür nötige Editor „EntityDeveloper“ ist Teil von LinqConnect).

Folgende Tabellen/Klassen wurden definiert:

  • Corpus
    • ID – Primärschlüssel – Integer / Autoincrement
    • GUID – siehe Besonderheiten: GUID
    • Displayname – Der Anzeigename für das Korpus.
  • CorpusMetadataEntry (Speichert alle Metadaten die für das Gesamtkorpus Gültigkeit haben)
    • CorpusID und Label sind die Primärschlüssel. Label kann z. B. Erstelldatum, Korpussprache, usw. sein.
    • Value – siehe Besonderheiten: Metadaten – Value
  • Layer
    • ID – Primärschlüssel – Integer / Autoincrement
    • GUID – siehe Besonderheiten: GUID
    • CorpusID – Ordnet den Layer einem Korpus zu
    • Displayname – Der Name/Bezeichner des Layers – z. B. POS, Lemma, Wort, usw.
  • LayerDictionaryEntry
    • LayerID und Index sind die Primärschlüssel – Index wird durch den CorpusExplorer im Annotations-/Tokenisierungsprozess automatisch erzeugt
    • Value – der eigentliche Wert bzw. das eigentliche Wort.
  • Document
    • ID – Primärschlüssel – uLong (64-Bit Ganzzahl (unsigned)) / Autoincrement
    • GUID – siehe Besonderheiten: GUID
    • CorpusID – Ordnet das Dokument einem Korpus zu
    • CountToken / CountSentences – Anzahl Token / Sätze. Dieses Daten werden beim Eintragen in die Datenbank berechnet. Der CorpusExplorer fragt z. B. bei Schnappschusswechsel die Token/Satzanzahl aller Dokumente ab. Um unnötige Wartezeiten/Datenbanklasten zu vermeiden, wird diese Eigenschaft vorberechnet.
  • DocumentMetadataEntry (Speichert Metadaten, die nur für ein bestimmtes Dokument gültig sind)
    • DocumentID und Label sind die Primärschlüssel – z. B. Autor, Verlag, Datum
    • Value – siehe Besonderheiten: Metadata – Value
  • LayerDocument
    • LayerID und DocumentID sind die Primärschlüssel
    • Content – Jedes Dokument kann mehrere Layer haben und jeder Layer erstreckt sich über mehrere Dokumente. Das LayerDocument ist die Schnittstelle zwischen Dokument und Layer. Im Content wird das zweidimensionale 32-Bit Ganzzahl-Array als eindimensionales Byte-Array serialisiert. Die erste Dimension ist die der Sätze, die zweite Dimension ist die Wort-Positionen innerhalb des Satzes (Zählung beginnt wie üblich jeweils bei 0). In der deserialisierten Form wäre doc[0][1] – Der erste Satz [0] und das zweite Wort [1]. Wenn Sie nicht den CorpusExplorer nutzen möchten, um die Daten auszulesen, dann können Sie die Daten wie folgt selbst deserialisieren:
      Lesen Sie die ersten vier Byte ein und konvertieren Sie diese in einen vorzeichenbehafteten 32-Bit Integer. Sie erhalten die Anzahl an zu erwartenden Sätzen. Lesen Sie dann die nächsten vier Byte ein und konvertieren Sie erneut, Sie erhalten die zu erwartende Anzahl an Worten/Token im ersten Satz. Lesen Sie die entsprechende Byte-Sequenz aus (4 * Anzahl an erwarteten Worten/Token) und konvertieren Sie diese in ein 32-Bit Ganzzahl-Array. So fahren Sie fort, bis alle Daten gelesen wurden. Das so erhaltene zweidimensionale Array können Sie wie bereits oben beschrieben auswerten. Um den Text zu erhalten, greifen Sie auf die LayerDictionaryEntries des jeweiligen Layers zurück.

Besonderheiten:

  • GUID – Im CorpusExplorer ist der Primärschlüssel immer vom Datentyp GUID. Leider unterstützen nicht alle Datenbanken GUID (z. B. weil GUID nicht als Datentyp implementiert ist oder weil GUID keine Primärschlüssel sein darf). Daher wurden einfache Integer IDs vergeben.
  • Metadaten – Value: Der CorpusExplorer serialisiert Metadaten als KeyValue-Store. Der Key ist immer vom Typ String, der Value vom Typ Object. Damit lassen sich beliebige Datentypen als Value speichern. Der CorpusExplorer kümmert sich dabei um De-/Serialisierung und die Typsicherheit. Keine dieser Funktionalitäten wird von SQL-Datenbanken unterstützt (mit NoSQL-Datenbanken wie ElasticSearch ist dies möglich). Daher werden die Daten/Typen/Objekte, die in Value gespeichert werden, vorher durch den CorpusExplorer als byte-Array serialisiert. Vor jedes Byte-Array wird ein einzelnes Byte geschrieben, dass angibt, wie die Daten zu deserialierien sind. Folgende Werte sind für dieses erste Byte gültig: 10 – String, 20 – 32-Bit Ganzzahl, 21 – 32-Bit Ganzzahl (unsigned), 30 – Fließkommazahl doppelte Genauigkeit, 40 – DateTime serialisiert als 64-Bit Tick, 50 – 64-Bit Ganzzahl, 51 – 64-Bit Ganzzahl (unsigned), 250 – Alle anderen Typen (der CorpusExplorer nutzt den .NET-BinaryFormatter zur Serialisierung).

Vorteile von LinqConnect:

  • LinqConnect übernimmt das Caching, optimiert Abfragen (z. B. Zusammenfassen von INSERT) und stellt einige Sonderfunktionen bereit (Löschen von nicht mehr benötigten DB-Einträgen).
  • LINQ ist ein Konzept aus dem .NET-Ökosystem und bedeutet Language INtegrated Query. In den meisten Programmiersprachen ist es üblich, eine SQL-Abfrage aus verschiedenen Werten und Strings (Zeichenketten) zusammen zu setzen – siehe Bsp. $query:

    Dabei kann (1) einige schief gehen und (2) ein Fehler fällt erst zur Laufzeit auf. LINQ löst dies, indem die Abfrage Teil der eigentlichen Programmiersprache ist (bzw. in diese integriert wird). Daher sind Vertipper nicht möglich, auch SQL-Injections werden vermieden – Fehler sind bereits für den Compiler ersichtlich. Eine Abfrage in LINQ sähe wie folgt aus:
  • Ein weiterer Vorteil ist, dass LINQ alle Daten als Objekte behandelt. In den meisten Programmiersprachen erhalten Sie nach der erfolgreichen Abfrage eine Liste/Tabelle, die Sie zuvor selbst deserialisieren/durchlaufen müssen. Im Vergleich hierzu LINQ:

    Es werden alle DocumentMetadataEntries abgefragt, die ein Label namens „Autor“ haben und dessen Wert/Value „JOR“ ist. Zurückgegeben wird eine Liste von Objekten des Typs Document. Der gesamte Prozess geschieht im Hintergrund.
  • LinqConnect stellt für viele verschiedene Datenbanken eine einheitliche Schnittstelle bereit. Den Quellcode von SQLite auf MySQL umzustellen hat gerade einmal eine Stunden Arbeit beansprucht.

Anmerkungen:

  • Primär ist die Schnittstelle für Korpora konzipiert, bei denen die für den CorpusExplorer typische In-Memory Analyse nicht mehr möglich ist (zu groß um im Arbeitsspeicher abgelegt zu werden). Eine vollständig datenbankkonforme Serialisierung wurde/wird nicht angestrebt. Vielmehr wurde auf die Performance geachtet die sich aus Lese-/Schreibvorgängen zwischen CorpusExplorer und Datenbank ergeben.
  • Sie können in eine Datenbank beliebig viele Korpora schreiben. Trotzdem wird empfohlen pro Korpus eine separate Datenbank zu nutzen (dies erleichtert die Verwaltung).
  • Es ist geplant, eine Schnittstelle für Analyseergebnisse zu schaffen – d. h.: Analysen die der CorpusExplorer durchführt, können direkt in eine SQL-Datenbank geschrieben werden. Andere Programme können diese Daten dann weiter analysieren, nutzen oder visualisieren.
  • Einschränkungen: Diese können je nach Datenbank schwanken (falls Datentypen unterschiedlich definiert sind). Prinzipiell gilt, ca. 2 Mrd. Korpora mit jeweils ca. 2 Mrd. Layer, mit jeweils ca. 2 Mrd. Layer-Werten und max. 18’446’744’073’709’551’615 Dokumente (pro Dokument max. ca. 2 Mrd. Sätze mit jeweils ca. 2 Mrd. Token). – Dies sollte also auf recht lange Sicht ausreichende Kapazitäten schaffen.
Mehr

Karten-Visualisierungen im CorpusExplorer ganz einfach

Karten-Visualisierungen im CorpusExplorer ganz einfach

Lange habe ich nach einer Lösung gesucht, wie man Karten einfach und effizient im CorpusExplorer integrieren kann. Sowohl kommerzielle als auch OpenSource Lösungen wurden geprüft – von klassischen WinForm- und WPF-Lösungen bis hin zu HTML5/JS. Zwei Dinge störten mich am meisten:

  1. Entweder sind zu viele Funktionen vorhanden (was braucht man für eine linguistische Visualisierung eine Routenplanung? oder eine Abfrage welche Restaurants in der Nähe sind?) oder es sind zu wenige/nicht die nötigen Funktionen enthalten.
  2. Karten sind schön, aber sie müssen auch zweckmäßig sein. Für diese erste Kartenversion wollte ich die Ländern unterschiedlich einfärben. Wenn man aber z. B. auf eine normale Karte zurückgreift und ein großes Land wie Russland einfärbt, dann verschwimmt die Wahrnehmung von kleineren/benachtbarten Staaten. Hier kam mir ein Tweet zur Hilfe – von Maarten Lambrechts. Er normierte alle Länder auf die gleiche Größe und ordnete sie auf einem Gitter/Schachbrett an. Diese Idee habe ich für den CorpusExplorer implementiert (Quellcode hier) und veröffentlicht.

Hier die aktuelle selbst entwickelte Lösung in Bildern (weiteres im 2018):

Ein zweiter kurzer Verweis auf Twitter:


Dem kann nur zugestimmt werden – Karten gehören zu den klassischen Visualisierungen der Linguistik. Falls jemand eine wirklich gute Programm-Bibliothek/SDK/API/etc. für linguistische Karten-Visualisierungen kennt … ich würde mich sehr über einen Hinweis freuen. Ebenso sind Ideen, Kritik oder Kooperation an/zu meiner Lösung erwünscht.

Mehr

CorpusExplorer (November Update 2017)

So langsam gewöhnt sich der CorpusExplorer an einen dreimonatigen Update-Zyklus. Über einige ausgewählte Funktionen wird es in den kommenden Tagen noch zusätzliche Blog-Beiträge geben.

Neue Funktionen:

  • Unterstützung von anderen Encodings/Codepages als UTF-8. Dies kann unter: Projekteinstellungen geändert werden. Aktuell muss noch die Codepage-Nummer eingetragen werden (zu finden auf https://de.wikipedia.org/wiki/Zeichensatztabelle).
  • Unterstützung von Rechts-nach-Links Schreibrichtung für semitische Sprachen. Dies kann ebenfalls in den Projekteinstellungen geändert werden. Es kann derzeit noch zu ungewünschten Darstellungen kommen. Über eine Rückmeldung (inkl. Screenshot/Beschreibung) würde ich mich freuen – Kontaktformular.
  • Neuer Scraper für das WET-Format verfügbar (Dokumente annotieren). Damit lassen sich auf Basis von http://commoncrawl.org/the-data/get-started/ sehr große Web-Korpora bauen. Der Scraper verfügt über zwei Filteroptionen. Sprachfilter: Automatisch Spracherkennung mittels NTextCat (erkennt 280 unterschiedliche Sprachen) es werden nur Dokumente übernommen, die der vorgegebenen Sprache entsprechen (Hinweis: der Filter führt einige Rechenoperationen im Rohtext durch und ist daher sehr langsam). Domainfilter: Es werden nur Dokumente von vorgegebenen Top-Level-Domains (TLD – z. B.: .de oder .com) übernommen.
  • Unter den Spezialfunktionen gibt es eine neue Visualisierung: Karte – Hier können Frequenzen einzelnen Ländern zugeordnet werden. Neben einer sehr detailreichen Weltkarte steht eine alternative Visualisierung zur Verfügung, die alle Ländern als gleichgroße Kacheln darstellt (einige Klein-/Inselstaaten werden nicht angezeigt) – dies Darstellung basiert auf folgender Arbeit (https://github.com/mustafasaifee42/Tile-Grid-Map).
  • Ein neuer Multi-Layer-Filter zur Erstellung neuer Schnappschüsse wurde hinzugefügt. Damit lassen sich Phrasen formulieren, die auf mehrere Layer zurückgreifen. z. B.: Wort:die POS:ADJA Wort:Hauptstadt – würde z. B. die kleine Hauptstadt, die schöne Hauptstadt, usw. finden.

Neue Funktionen – nur SDK (für Entwickler):

Neue CE-Addons:

  • Datenbanken sind ab jetzt optional als Addon verfügbar. In einem früheren Update wurde die NoSQL-Datenbank ElasticSearch in den CorpusExplorer integriert. Diese Funktionalität wurde aus der Standardinstallation gestrichen. Folgende Datenbanken sind ab jetzt als CE-Addon verfügbar:
    • ElasticSearch – NoSQL-Datenbank die Daten im JSON-Format speichert. Benötigt Java, läuft auf allen Betriebssystemen, leicht zu installieren (da nur eine ZIP-Datei entpackt werden muss).
    • MySQL/MariaDB – SQL-Datenbank. Läuft auf allen Betriebssystemen. Erfordert eine Installation (z. B. XAMPP für Windows) und etwas MySQL-Know-how, da die Datenbank entsprechend konfiguriert werden muss (nutzen Sie my-huge.ini oder my-innodb-heavy-4G.ini für den produktiven Betrieb).
    • SQLite – SQL-92 embedded Datenbank – Keine Installation notwendig. Läuft auf allen Betriebssystemen. Datenbank wird in einer einzelnen Datei abgelegt.
  • PANDOC: Pandoc (https://pandoc.org/) ist ein Konverter für verschiedene Text-Dateiformate (siehe https://pandoc.org/). Die Erweiterung kann genutzt werden um z. B. Text aus LaTeX oder Wikipedia zu extrahieren.
  • SaltXML & Pepper (BETA): Pepper (http://corpus-tools.org/pepper/) erlaubt es, verschiedene linguistische XML-Formate untereinander zu konvertieren. SaltXML ist dabei der Zwischenstandard, über den die Konvertierung läuft. Aktuell nutzt der CorpusExplorer noch eine Zwischenlösung:
    • Aktuell:
      • Import: Ausgangsformat > Pepper > SaltXML > Pepper > CoNLL > CorpusExplorer
      • Export: CorpusExplorer > CoNLL > Pepper > SaltXML > Pepper > Zielformat.
    • Um die Geschwindigkeit zu erhöhen, ist bereits ein verkürzter Ablauf in Planung:
      • Import: Ausgangsformat > Pepper > SaltXML > CorpusExplorer
      • Export: CorpusExplorer > SaltXML > Pepper > Zielformat.
    • Die geplante Umstellung wird für die Nutzer*in nicht spürbar sein, außer das Import/Export danach schneller ablaufen wird.

Neues CE-Korpus-Addon:

  • Dank PANDOC konnte ein Korpus der aktuellen deutschsprachigen Wikipedia erstellt werden. Das Korpus ist kostenfrei verfügbar. Der Zugang muss aber erfragt werden, da die Menge der Daten sonst meinen Server lahmlegen würde. Schreiben Sie mir bitte über das Kontaktformular, falls Sie das Korpus nutzen möchten.

Korrekturen/Verbesserungen:

  • Die externen Tagger (u. a. der TreeTagger) wurden verbessert (Stabilität/Performance).
  • Bisher gab es zwei identische Funktionen zur Analyse von Kookkurrenzen (Abfrage & Tabelle). Beide arbeiten jetzt mit unterschiedlichen Ansätzen:
    • Tabelle – ermittelt weiterhin zu allen Worten alle Kookkurrenzen. Bis zu einer Korpusgröße von 50 Mio. Token funktioniert dies auf normaler Hardware gut (ggf. mit einigen Minuten Wartezeit). Eine nachträgliche Beschränkung auf nur einen Begriff ist möglich und erfordert keine zusätzlichen Abfragen.
    • Abfrage – ermittelt nur die Kookkurrenzen zu einem/mehreren Begriff(en). Dadurch können auf größere Korpora (über 50 Mio.) relativ gut mit normaler Hardware abgefragt werden. Da jede Abfrage Zeit beansprucht sind hintereinander erfolgende Abfragen nicht so schnell wie in der „Tabelle“. In weiterer Vorteil: Man kann auch die Kookkurrenzen zu mehreren Begriffen ermitteln, dabei wird nach der exakten Reihenfolge der Queries gesucht (Bsp. „in der Hauptstadt“).
Mehr

CorpusExplorer (August Update 2017)

Das August-Update bringt nicht nur kleine Verbesserungen sondern auch drei große Neuerungen mit sich.

1. Öffnung der Konfigurations-Schnittstelle / Abschaltung der Advanced/PC-Poolraum Edition

Bisher gab es drei Versionen für den CorpusExplorer – Zukünftig nur noch eine einheitliche Version. Folgende Installationspakete werden Anfang 2018 abgeschaltet. Nutzer*innen werden darüber bei jedem Programmstart informiert. Folgende Installationspakete werden entfernt: Die bisherige Advanced-Edition richtete sich an freiwilliger Tester*innen, die neuste Funktionen ausprobieren wollten (BETA-Test). Außerdem die PC-Poolraum Edition – sie war für Poolräume konzipiert und löschte bei jedem Programmstart bisherige Einstellungen. Die neue Version des CorpusExplorers vereint alle Funktionalitäten in einem Installationsprogramm. Über so genannte Feature-Toggles können ab jetzt optional experimentelle Funktionen bei Bedarf aktiviert werden. Außerdem können alle CorpusExplorer-Instanzen automatisch/verteilt konfiguriert werden. Nähere Informationen folgen bald.

2. CEC – Die CorpusExplorerConsole wird ab jetzt ausgeliefert

Damit ist es möglich, aus anderen Programmen oder anderen Programmiersprachen auf Analysen/Daten des CorpusExplorers zuzugreifen. Ursprünglich wurde die Konsolen-Lösung unter dem Namen CorpusExplorer-Port-R entwickelt und sollte die Nutzung des CorpusExplorers innerhalb der Programmiersprache R ermöglichen. Daraus ist eine konsolenbasierte Schnittstelle erwachsen, die viele Funktionen des CorpusExplorers mit wenig Aufwand zur Verfügung stellt. Zielgruppe sind fortgeschrittene Nutzer*innen, die andere Programme und komplexe Workflows nutzen aber nicht auf das CorpusExplorer.SDK zugreifen wollen/können und vielmehr eine schnelle Lösung benötigen um Korpusdaten auszuwerten. Die Analyseergebnisse werden direkt in stdout geschrieben – daher können die Ergebnisse direkt übertragen werden. Eine Dokumentation dazu finden Sie unter: https://github.com/notesjor/CorpusExplorer.Terminal.Console

3. Elasticsearch – simple / skalierbare NoSQL-Datenbank

Seit einiger Zeit experimentiere ich mit unterschiedlichen Backends im CorpusExplorer. Warum ist Elasticsearch das erste Datenbankbackend? – Weil Elasticsearch kostenfrei, leicht zu installieren und extrem gut skalierbar ist. Die meisten SQL-Datenbanken sind sehr träge, wenn man große Datenstrukturen ablegen möchte – oder man braucht viel know-how und gute Hardware. Elasticsearch bedarf nur einer Java-Installation – das Elasticsearch-Installationspaket ist eine simple ZIP-Datei (einfach entpacken und bin/elasticsearch.bat starten) – schon kann es losgehen. Der CorpusExplorer kann neue Korpora direkt in Elasticsearch speichern oder bestehende Korpora in Elasticsearch exportieren/importieren. Hier sei angemerkt, dass Elasticsearch nur eine Option für Korpora ab ca. 25 Mio. Token sein sollte. Kleinere Korpora laufen effizienter mit dem CEC6-Backend. Für sehr große Korpora (ab 500 Mio. Token) empfiehlt es sich zudem, mehrere verteilte Elasticsearch-Knoten zu nutzen. Attraktiv sind hierbei auch die Angebot von amazon und azure – hier kann man hochverfügbare Elasticsearch-Instanzen für kleines Geld mieten. Außerdem gibt es eine Export-Funktion namens „CorpusExplorer >>> Elasticsearch“ mit der der Volltext aller Layer in Elasticsearch geschrieben werden kann – ideal zur Weiterverarbeitung mit ES und anderen Werkzeugen (dieser Export erlaubt aber keine Nutzung mehr durch den CorpusExplorer). Auch zu diesem Feature folgt in den nächsten Tagen noch ein ausführlicher Artikel.

Mehr

CorpusExplorer (April Update 2017) – Fehler: Die Anwendung kann nicht gestartet werden.

CorpusExplorer (April Update 2017) – Fehler: Die Anwendung kann nicht gestartet werden.

Wenn Sie die folgende Fehlermeldung erhalten, müssen Sie den CorpusExplorer über die Systemsteuerung zuerst deinstallieren und dann erneut installieren. Grund für diesen Fehler ist ein Tausch des Installationszertifikats (Bestätigt die Echtheit des CorpusExplorers und schützt ihn vor unberechtigter Manipulation). Ich bitte die Unannehmlichkeiten zu entschuldigen – falls Sie Hilfe benötigen, können Sie sich über das Kontaktformular an mich wenden.

Mehr

CorpusExplorer v2.0 – Januar 2017 Update

Das erste Update 2017 bringt hauptsächlich Neuerungen ‚unter der Haube‘ – es ist also eher funktional. Dafür bereitet es den Weg für neue Analysemöglichkeiten, die 2017 folgen werden. Die wichtigste Hauptfunktion ist das komplett neu entwickelte Dateiformat CEC6 (CorpusExplorerCorpus v6.0). Es hat gegenüber der Version 5.0 folgende Vorteile:

  • Höhere Performance bei einigen Analysen.
  • Wesentlich schnelleres Laden/Speichern von sehr großen Korpora
  • Ab ca. 15 Mio. Token oder 50’000 Dokumenten bricht die Performance der alten 5.0 Version spürbar ein, da sehr viel Arbeitsspeicher mehrfach beschrieben/freigegeben werden musste um das CEC5-Korpus vollständig zu laden/speichern. Dieses Problem ist in Version 6.0 beseitigt.
  • Das Format ist kompatibel zu unterschiedlichen Plattformen, dank MONO
  • Die Arbeitsspeicherausbeute wurde verbessert pro 1 GB RAM können ca. 30 Mio. Token gespeichert werden.

Hinweis: Das neue CEC6-Format kann ab jetzt genutzt werden. Aktuell ist noch das CEC5-Format die Standardeinstellung – dies wird sich im Laufe des Jahres ändern. Ein kleiner Nachteil des neuen CEC6-Formats liegt darin, dass die Daten binär-codiert sind. D.h. man kann die Daten nicht mehr manuell oder mit anderen Programmen auslesen. Mittlerweile verfügt der CorpusExplorer aber über eine gute Anzahl an Export-Formaten, so dass es jederzeit möglich ist, die Daten zu exportieren (z. B. in XML, JSON, DTA-Basisformat, Weblicht, usw.).

  • Kleinere Verbesserungen: Die Bereinigungsfunktion wurde verbessert. So ist es jetzt auch möglich osteuropäische Sprachdaten zu laden (diese wurden zuvor extrem bereinigt). Ein positiver Nebeneffekt der Korrektur: Der Annotationsprozess wurde beschleunigt.
  • Das Modul „PaperLinguist“ hat einen komplett neuen Unterbau erhalten, der die Generierung von Reports beschleunigt.
Mehr

DTA-Kernkorpus als Korpus-Addon verfügbar

Das DTA-Kernkorpus ist ab jetzt als Korpus-Addon verfügbar. Für Sie heißt das: Einfache Installation, bereits analysefertiges Material, Updates erfolgen vollautomatisch. Das DTA-Korpus-Addon können Sie hier herunterladen: [Download]. Weitere Informationen zum Addon sowie weitere Korpus- & Programm-Addons finden Sie [hier].

Mehr

CorpusExplorer v2.0 – November Update

CorpusExplorer v2.0 – November Update

Das November Update bringt viele neue Funktionen für Freunde von Zeitreihenanalysen.

Neuerungen / Verbesserungen :

  • Frequenzanalyse > Zeitliche Verteilung – Bisher war diese Funktion unter den Spezialfunktionen zu finden. Jetzt hat diese Analyseform endlich den Betastatus verlassen.
  • Kookkurrenzen > Zeitliche Verteilung – Wählen Sie einen Begriff und lassen Sie sich die Polarisationen einzelner Kookkurrenzen im zeitlichen Verlauf anzeigen.
  • Korpusverteilung > Zeitliche Verteilung – Wählen Sie eine Kategorie und dann die Werte dieser Kategorie um deren Verteilung über unterschiedliche Zeiträume zu vergleichen.
  • Korpusverteilung > Zustandanalyse – Wählen Sie einen Datums/Zeit-Parameter, dann die gewünschte Entität (z. B. Autor) und abschließend den Zustand (z. B. Verlag). So können Autoren identifiziert werden, die entweder für einen oder für mehrere Verlage arbeiten. Verlagswechsel werden so schnell und einfach nachvollziehbar.
  • Schnappschuss > Autosplit – Zu der bisherigen Funktion den Schnappschuss in gleichgroße Zeitfenster (Cluster) einzuteilen, gibt es jetzt die Möglichkeit die Dokumente anhand ihrer Werte zu gruppieren. Die möglichen Granulierungsstufen reichen von Jahr bis hin zu Minute. Granulierungen nach Jahrzehnt oder Jahrhundert sind aktuell nur auf Nachfrage möglich.
  • Kookkurrenzen > Tabelle – Bisher war es ratsam, die angezeigte Tabelle beidseitig zu filtern. D. h. ein Begriff musste einmal in der Spalte ‚Zeichenkette‘ und einmal in ‚Kookkurrenz‘ gesucht werden. Dies ist jetzt nicht mehr notwendig (aber weiterhin möglich). Unterhalb der Tabelle befindet sich jetzt eine Suchmaske, die Eingaben entgegennimmt und die Tabelle entsprechend filtert.
  • Textedition > Textvergleich – Ab jetzt kann direkt abgelesen werden, wie viele Einfügungen und Entfernungen notwendig sind um den linken in den rechten Text zu transformieren. Außerdem wird die Edit-Distanz angegeben. Diese ist nicht notwendigerweise identisch mit ‚Hinzufügen‘ + ‚Entfernen‘ – da sich überlappende Änderungen ergeben können.
  • Es gibt ein neues Datenformat für alle CorpusExplorer-Backends. Das ‚Lightweight‘-Korpusformat erfasst pro Korpus nur ein einziges Dokument. Dies erlaubt, auch Streamdaten in Echtzeit zu analysieren.
  • Über die Entwicklerschnittstelle (CorpusExplorer SDK) können jetzt Dokumente zusätzlich/nachträglich annotiert werden. Einzelne Layer lassen sich leichter exportieren, annotieren und re-importieren/duplizieren.
  • PMG-XML wird jetzt unterstützt. Es erlaubt den direkten Import von Zeitungsartikel unterschiedlicher Verlage.
  • Es wurden wie immer kleine fiese Anzeigefehler behoben. Diese Mistdinger sind einfach nicht tot zu kriegen.

Darüber hinaus wurde das Wartungstool aktualisiert. Es ist die erste Anlaufstelle für Probleme mit dem CorpusExplorer. Neu:

  • Fehler sind jetzt übersichtlich in Kategorien gruppiert.
  • Eine Installation des Wartungsprogramms ist jetzt nicht mehr notwendig. Die Exe kann heruntergeladen werden – ausgeführt und dann auch spurlos wieder gelöscht werden.
  • Es wird jetzt auch eine Hilfe für verschiedene Windows-Probleme angeboten.
    Hinweis: Microsoft empfiehlt schon seit geraumer Zeit keine Optimierungssoftware wir z. B. TuneUp-Utils oder CCleaner einzusetzen. Gerade unter Windows 10 nutzen diese Programme wenig – d. h. historisch waren diese Programme mal unter Windows XP von nutzen. Aktuell sorgen solche Programme aber oft für Probleme – einige davon kann das CorpusExplorer Wartungstool wieder beheben.
Mehr

CorpusExplorer v2.0 – Juni/Juli Update – Geänderter Updateplan

CorpusExplorer v2.0 – Juni/Juli Update – Geänderter Updateplan

Neues Update – Neue Funktion – Der „PaperLinguist“ ist jetzt verfügbar (Spezialanalysen). Dadurch wird es möglich, die wichtigsten Analysen in einem Rutsch auszudrucken bzw. als PDF, Word, Excel oder CSV zu exportieren. Aber vorsicht, bei Korpora ab 1 Mio. Token werden es schnell mehrere tausend Seiten.

PaperLinguist-Visualisierung

PaperLinguist-Visualisierung

Ansonsten: Weniger Fehler und minimale Verbesserungen am Benutzerinterface.

Wichtig: Um Zeit für die Dissertation zu haben – deren Teil ja auch der CorpusExplorer ist – werde ich vorübergehend nur noch alle drei Monate ein neues Update herausgeben. Mittlerweile korrigiere ich sowieso nur noch wenige Dinge – der CorpusExplorer läuft sehr stabil. Außerdem wird es durch den geänderten Updateplan eher mehr als weniger neue Funktionen geben. Jedes neue Update kostet Zeit – Zeit für die Bereitstellung und Zeit für die Dokumentation.

Mehr

CorpusExplorer v2.0 – Mai Update

Normalerweise ist der Mai einer der wichtigsten Update-Monate für den CorpusExplorer. Dieses Jahr fällt das Mai Update etwas kleiner aus. Das liegt daran, dass ich mich auf drei Dinge fokussieren muss. 1. Wollen einige Artikel geschrieben werden. 2. Dieses Update steht im Zeichen der Fehlerbeseitigung. 3. Es gibt da noch eine Promotionsschrift, die will auch noch geschrieben werden.

Was gibt es NEUES in diesem Update:

  • Der CorpusExplorer nutzt nun offiziell TagPies (http://www.tagpies.vizcovery.org/) zur Darstellung von Wortwolken. Danke an Stefan Jänicke und Team.
  • HTML5 Labor – Der CorpusExplorer verfügt über einen HTML5-, JavaScript-, CSS-Editor, mit dem Sie eigene HTML5-Visualisierungen mit Hilfe des CorpusExplorers erstellen können. Ein Video dazu  folgt in Kürze. Das Labor eignet sich z. B. auch für den Einsatz von D3.js oder Angular.
  • EuroParl kann jetzt als Korpusquelle genutzt werden. http://www.statmt.org/europarl/ – Bitte laden Sie das Paket: source release (text files)
  • Wird das Projekt gespeichert, werden alle Änderungen (Annotationen/Metadaten) an die jeweiligen Korpora durchgereicht.
  • Verbesserungen der CHAT-Ansicht
  • Verbesserungen im Query-Editor
  • Es besteht die Möglichkeit, Test-Korpora zu erstellen. Mit diesen lässt sich die Korrektheit des CorpusExplorers überprüfen.
  • Weniger Fehler / Bessere UI-Erfahrung
Mehr

Folge mir auf Twitter