Archiv | Informationsqualität RSS feed for this section

Anzeige der automatisch erfassten Werte und Zusammenfassen aller Bewertungen zu einem einheitlichen Wert

24 Feb

So endlich werden nun auch die automatisch erfassten Werte der Indikatoren angezeigt. Dafür wurden diese kategorisiert, um einen Wert zwischen 1 und 5 zu erhalten, damit diese mit den anderen Bewertungen verrechnet werden können. Der Graph, der den Verlauf der Kriterien über den Zeitraum seit der Erstellung des Artikels anzeigt, zeigt nun die neu berechneten Werte der Kriterien an, die aus den manuellen und automatischen Bewertungen entstanden sind. Weiterlesen

Masterarbeit: Near Copy Detection in large text corpora (ODIN): Was bisher geschah! (Text preprocessing)

8 Feb

Die Hauptaufgabe des Systems ist es Wissenschaftlichearbeiten zu verarbeiten und als Hintergrundkorpus für die Suche nach ähnlichen Textstellen zu verwenden. Als Eingabeformat sollen erstmal PDF-Daten herangezogen werden. In weiteren sollen aber auch andere Formate benutzbar sein, wie zum Beispiel ein Wikipediadump, um auch Textstellen aus dieser Quellen identifizieren zu können.

Texte die als PDF-Dateien zur Verfügung stehen haben aber einige Nachteile für die automatisierte Verarbeitung, so müssen nach der Textextraktion noch einige cleaning Schritte vollzogen werden, die ich im folgenden ein wenig Beschreibe:

  1. PDFToText: Den Volltext aus einer PDF-Datei zu extrahieren ist recht einfach. Hierzu gibt es eine Vielzahl an Tools die diese Aufgabe übernehmen können. Ich habe mich für Apache PDFBox entschieden, da diese API in JAVA implementiert ist und ich sie so direkt in Hadoop Map-Reduce Jobs verwenden kann. Mit PDFBox ist es möglich neben den Volltext als ganzes auch seitenweise Text zu extrahieren, auch ist es möglich die Grafiken auf den Seiten und die Seiten als Thumbnails zu extrahieren. Diese Möglichkeiten werden noch nicht benötigt, aber sie sind potenziell verwendbar um auch Kopien der Grafiken zu detektieren.
  2. Speichern der Texte: In der weiteren Verarbeitung können Textstellen entfernt, hinzugefügt oder geändert werden. Ich möchte aber gern die Positionen im Verhältnis zum Ausgangszustand beibehalten. Hierfür habe ich ein Speicherformat entwickelt das mir dies ermöglicht. Dieses Format kann in JSON ausgedrückt werden und sieht dann so aus:{„chunks“: {„0“: „text text“,“10″: „more text“},“pages“: [0,3119,6708],“sentences“: [0,15,33,67],“lines“: [0,100,219,322]}Das Feld „chunks“ beinhaltet hierbei einzelne Textteile, zum Anfang sind das die einzelnen Zeilen des Dokuments. Jeder Chunk ist mit einem Offset versehen das die Zeichenweise Position im Ursprungsdokument angibt. Das Feld „pages“ enthält die Startoffsets der einzelnen Seiten des Dokuments, gleiches gilt für die Felder „sentences“ und „lines“.
  3. Header-Footer-Removal: Die nächsten Cleaningschritte habe ich speziell für die Eigenarten von Printmedien entwickelt, das Entfernen von Header und Footer. Wenn auf zwei oder mehr Seiten die ersten, respektive die letzten Zeilen ähnlich sind wurde eine Kopf- bzw. Fußzeile gefunden. Ähnlich bedeutet hierbei die Textzeilen sind gleich bis auch einen numerischen Part der hoch zählt (also die Seitenzahl). Der Algorithmus beachtet dabei auch unterschiedliche Kopf- oder Fußzeilen in einem zwei seitigen Format.
  4. Hyphenation-Removal: Hier sollen Silbentrennung am Zeilenende entfernt werden. Dafür suche ich ein Bindestrich am Zeilenende, wird einer gefunden wird noch untersucht ob er direkt an einem Wort steht, wenn ja dann wird der Bindestrich entfernt und das erste Wort in der nächsten Zeilen an die neue Position geschoben. Dieser Algorithmus kann Fehler erzeugen, wenn zum Beispiel zusammengesetzte Worte wie „Meier-Schultze-Friese“ über zwei Zeilen getrennt wird, könne Wortkonstruktionen wie „Meier-SchultzeFries“ oder „MeierSchultze-Friese“ entstehen. Dies kann noch mit einer Rechtschreibprüfung abgefangen werden, indem geprüft wird ob das neue Wort korrekt ist. Dies ist aber (noch) nicht implementiert.
Die Ergebnisse aus diesen Schritten werden als JSON in HBASE gespeichert. Hier entspricht eine Zeile einem PDF-Dokument und jede Spalte einen Verarbeitungsschritt. Dementsprechend werden bis jetzt die Spalten „PDF“, „extractedFulltext“, „removeFooter“, „removedFooterAndHeader“ und „fulltext“ das alle ob Beschriebenen Schritte vereint und für die weitere Bearbeitung benutzt wird.

Automatische Erfassung der Indikatoren

7 Feb

Nachdem nun der Graph mit dem flot Plugin integriert wurde und dieser zur Zeit noch die durchschnittlichen Werte der Kriterien anzeigt, werden nun auch für jede Revision die Daten der Indikatoren automatisch erfasst. Dafür existiert in der Datenbank eine Tabelle, die für jede Seite und Revision die zugehörigen Werte abspeichert, damit sie später für die Skalierung und Verrechnung mit der manuellen Bewertung abgerufen werden können. Weiterlesen

Visuelle Darstellung der Kriterien – und Indikatorenbewertungen

24 Jan

Der Verlauf der abgegebenen durchschnittlichen Bewertungen der Kriterien und Indikatoren sollte in der Erweiterung anhand eines Graphen ablesbar sein. Um die grobe Entwicklung auf einen Blick zu erkennen, braucht es keine aufwändigen Graphen, die viele Funktionen ermöglichen.
Deswegen habe ich mich bei der Umsetzung für das jQuery sparklines Plugin entschieden. Diese Sparklines zeigen nun zu der Gesamtdurchschnittsbewertung die Entwicklung der Bewertungen für die letzten 100 Revisionen an.

Weiterlesen

Aktueller Stand der Bachelorarbeit „Prototypische Implementierung einer MediaWiki Erweiterung zur Bewertung der Informationsqualität von Artikeln“ und der nächste Arbeitsschritt

11 Jan

Ein Teilschritt der Bachelorarbeit, die manuelle Bewertung der Indikatoren, ist wohl nun geschafft. Weiterlesen