Wie wir ja bereits letztes Jahr angekündigt haben, sind wir mitten drin in der Entwicklung einer KI-gestützten Nextcloud-App, die das Verteilen von jeglicher Eingangspost (PDFs, Scans, E-Mails) automatisiert. Seit Kurzem ist es uns nun möglich, mit einer beliebigen Anzahl an .pdf-Dateien ein künstliches Netzwerk anzulernen.
Hierfür werden die PDFs in unser Dateisystem geladen, in einzelne Seiten aufgeteilt und anschließen von unserem OCR-Modul (optical character recognition) in reinen Text und in eine strukturelle Darstellung des PDFs (mit Hilfe von OCR) umgewandelt.
Mit diesen Informationen generieren wir dann über alle zum Lernen zur Verfügung stehenden Dateien ein Wörterbuch, in dem jedes auftretende Wort und seine Häufigkeit vermerkt wird. Dieses nutzen wir dann zusammen mit den strukturellen Darstellungen der PDFs, um Daten zum Anlernen des Künstlichen Neuronalen Netzwerks zu generieren. Ein KNN ist dem Aufbau des menschlichen Gehirns nachempfunden wobei die künstlichen Neuronen auf mathematischen Formeln basieren, die von einer vereinfachten Struktur echter Neuronen inspiriert sind. Die künstlichen Neuronen funktionieren ebenfalls mit einer Art inneren Aktivierung, die durch einen Impuls ausgelöst wird, der an benachbarte Knoten weitergeleitet wird.
Für diese Liste wird jede PDF (ob gescannt oder digital) in eine anpassbare Anzahl an Felder aufgeteilt und anschließend für jedes dieser Felder jedes Wort im Wörterbuch überprüft. Hieraus entsteht dann eine Aufeinanderfolge aus Einsen (das Wort ist in diesem Feld vorhanden) und Nullen (das Wort ist in diesem Feld nicht vorhanden). Die daraus erstelle Liste stellt auf diese Weise jeweils eine gesamte PDF dar, die Anzahl aus Einsen und Nullen entspricht also der Größe des Wörterbuchs multipliziert mit der Anzahl der Felder.
Nachdem die Listen erstellt worden sind, werden diese zum Erstellen des Neuronalen Netzwerks verwendet, welches daraus die notwendigen Informationen beziehen kann, um die Lern-Dokumente zu identifizieren.
Wir gehen jetzt in eine Testphase über, um die richtigen Parameter zum Anlernen der Künstlichen Neuronalen Netzwerke zu finden. Von diesem Punkt aus nähern wir uns jetzt mit zunehmend größer werdenden Schritten einem funktionalen Produkt und können jede Woche mehr und mehr erkennen, wie die fertige Lösung aussehen wird.