Meine Aufgabe besteht momentan darin Zeilen mit zu geringer Confidence (Selbstsicherheit der Erkennung) in der Texterkennung von Deeper auszusortieren.
An sich besteht unsere Texterkennung aus zwei Komponenten. Im ersten Schritt werden Zeilen erkannt und im zweiten in den erkannten Zeilen Text erkannt. Der Stand bisher ist, dass in falsch erkannten Zeilen auch Text erkannt und in das Dokument übernommen wird.
Um falschen Ergebnissen vorzubeugen wird künftig die Confidence der Texterkennung überprüft und wenn sie kleiner als ein Schwellenwert ist wird die Zeile, mit der schlechten Confidence, aussortiert. Dabei ist es Wichtig den Schwellenwert so anzupassen, dass möglichst keine richtige Zeile gestrichen wird und möglichst viele Falsche aussortiert werden.
Nachdem ich jetzt ca. ein Jahr in der KI-Abteilung gearbeitet habe bekomme ich im Rahmen meiner Ausbildung jetzt die Möglichkeit die Abteilung zu wechseln um auch andere Aspekte des Berufs kennen zu lernen.
Dabei wurde ich im Mitarbeitergespräch gefragt, was mich interessiert und womit ich gerne arbeiten würde. Als ich gesagt habe, dass ich gerne mit Datenbanken zu tun hätte um auch dieses Gebiet kennen zu lernen, wurde mir angeboten mich mit NoSQL zu beschäftigen.
Wozu braucht man NoSQL?
Durch die immer Größere Datenmenge und die immer unstrukturierteren Daten stoßen relationale Datenbanken immer öfter an ihre Grenzen. Um dem Problem der unstrukturierten Daten entgegen zu wirken speichern nicht relationale Datenbanken ihre Daten nicht nach einem festen Schema sondern Beispielsweise in „Dict-Ähnlichen“ Strukturen oder als Graphen. Das bietet den Vorteil, dass man die Daten nicht an die Datenbank anpassen muss und flexibler bleibt. Die Datenbank kann dadurch organisch wachsen.
Große Datenmengen stellen klassische Datenbanken vor ein Problem, da diese nur vertikal skalierbar (Steigerung der Leistung durch die Steigerung eines Rechners (HW-Limitiert)) sind. Um das zu umgehen sind NoSQL Datenbanken wie CouchDB, MongoDB, Neo4J durch ihre Art zu speichern und ihre Implementierung meist horizontal skalierbar(unendlich weit durch hinzufügen von neuen Knotenpunkten) . Dadurch wird keine spezielle, sehr teure Hardware für große Datenbanken benötigt
oben vertikale Skalierung unten horizontal
Leider bringt dieser Ansatz auch Nachteile mit sich. So sind die Daten meistens nicht normalisiert und mehr Speicherplatz wird belegt. Außerdem bringt ein organisch wachsendes System zwar Vorteile, doch kann es schnell zu einem nicht durchschaubaren Chaos an verschiedenartigen Einträgen kommen. Deshalb sollte trotz der Variabilität von NoSQL-Datenbanken stets eine Ordnung oder eine grobe Vorlage der Datenstruktur gelten um weiterhin die Funktion der DB garantieren zu können.
Zwei der NoSQL-Ansätze möchte ich Grob vorstellen:
Graphendatenbanken
Graphendatenbanken speichern die Daten als Graph bestehend aus Knotenpunkten, die Gegenstände repräsentieren und Kanten, die die Beziehungen zwischen zwei Knoten darstellen. Dabei sind die Kanten gerichtet und ein Knoten kann beliebig viele Kanten haben. Diese Art der Speicherung eignet sich besonders bei Einträgen, bei denen die Beziehung der Knoten zueinander wichtig ist.
Dokumentenorientierte Datenbanken speichern die übergebenen Daten in JSON-ähnlichen Formaten. Die größte Stärke dokumentenorentierter Datenbanken liegt in unstrukturierten Daten, da ein Dokument mit beliebigem Inhalt gefüllt werden kann. Das geht sogar so weit, dass man teilweise nicht auf ein anderes Dokument referenziert sondern das Dokument einfach in ein anderes schreibt. Mit dieser Methode der „Referenzierung“ kann man die Zugriffszeiten bei häufig gewählten Kombinationen zweier Dokumente deutlich verringern. Der größte Nachteil dieser Methode ist der zusätzliche Speicherplatz, der durch fehlende Normalisierung verloren geht.
Hallo, nachdem Ich jetzt seit grob einem viertel Jahr hier arbeite habe ich genug Erfahrungen und Einblicke bekommen um auch eine Blog-Artikel schreiben zu können.
Zu meiner Tätigkeit:
Ich bin von Anfang an beim DeepER-Team in der Entwicklung tätig.
Meine erste größere Aufgabe war es ein Programm zur Erstellung von künstlichen Trainingsdaten für die Segmentierung zu erstellen, was eine gute Möglichkeit war sich in die „Denkweise“ des Netzes hinter der Segmentierung „einzufühlen“. So gab es z.B Anfangs Probleme mit dem Erkennen von untereinander liegenden Zeilen, da diese in meinem Programm immer genau untereinander gesetzt wurden und Somit das Netz bei zwei eng aneinander liegenden Zeilen davon Ausging, das alle Zeilen mit dem gleichen Abstand von einander getrennt sind. Die Lösung war es diese Abstände zu variieren
Die Wochen drauf habe ich einen internen KI-Workshop besucht indem ich viel über DeepER und die beiden Neuronalen Netze im Hintergrund lernen konnte.
Seit dem bearbeite seit dem bearbeite ich hauptsächlich die algorithmische Nachschärfung der Ergebnisse der Segmentierung.
Teile diesen Post:
Diese Website verwendet eigene und Drittanbieter Cookies, um einen fehlerfreien und sicheren Betrieb der Website zu gewährleisten und um unsere Services stetig zu verbessern. Durch die Bestätigung des Buttons „Akzeptieren“ stimmen Sie der Verwendung zu. Unter „Cookie-Einstellungen“ können Sie auswählen, welche Cookies Sie zulassen wollen.
Weitere Informationen finden Sie in unseren Datenschutzbestimmungen.Cookie-EinstellungenAkzeptieren
Cookies
Diese Website verwendet eigene und Drittanbieter Cookies, um einen fehlerfreien und sicheren Betrieb der Website zu gewährleisten und um unsere Services stetig zu verbessern. Durch die Bestätigung des Buttons „Akzeptieren“ stimmen Sie der Verwendung zu. Unter „Cookie-Einstellungen“ können Sie auswählen, welche Cookies Sie zulassen wollen.
Weitere Informationen finden Sie in unseren Datenschutzbestimmungen.
Diese Cookies sind für das reibungslose Funktionieren der Website unbedingt erforderlich. Diese Kategorie enthält nur Cookies, die die grundlegenden Funktionen und Sicherheitsmerkmale der Website gewährleisten. Auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO werden diese Cookies gespeichert. Der Websitebetreiber hat ein berechtigtes Interesse an der Speicherung von Cookies zur technisch fehlerfreien und optimierten Bereitstellung seiner Dienste.
Jegliche Cookies, die für den Betrieb der Website nicht erforderlich sind und die speziell zur Erfassung personenbezogener Daten des Nutzers durch Analyse, Werbung und andere eingebettete Inhalte verwendet werden, sind zum fehlerfreien Betrieb der Website nicht erforderlich. Sie helfen uns jedoch unseren Service stetig zu verbessern und Ihnen eine optimale Nutzererfahrung zu bieten. Wir verwenden diese Cookies nur, wenn Sie der Nutzung ausdrücklich zugestimmt haben.