• Simon Schwaiger

Erkläre eine Robotik-Konferenz... mit AI!

Für uns ist es immens wichtig, über aktuelle Tätigkeiten anderer Forschungseinrichtungen informiert zu sein. In Österreich gibt es dafür eine Plattform, auf der Forschungseinrichtungen die Ergebnisse ihrer Arbeit im Bereich Robotik und AI präsentieren können: der Austrian Robotics Workshop. Dort werden jedes Jahr zwischen 30 und 50 Paper vorgestellt, welche auf zwei bis sechs Seiten wissenschaftliche Ergebnisse präsentieren. Wir wollen diese Publikationen verwenden, um einen Überblick über den Stand der Wissenschaft in der österreichischen Robotik-Szene zu gewinnen. Aber wie kann man mit so viel Text umgehen?


Um große Mengen Text effizient zu erfassen, arbeiten wir mit Natural Language Processing (NLP) und Regular Expressions (siehe AIAV Videos Sprachverarbeitung, Textverarbeitung 1 sowie Textverarbeitung 2). NLP ist eine Mischung aus Artificial Intelligence und Linguistik. Ziel dabei ist es, Statistik zu verwenden, um große Mengen an Text zu analysieren. Probleme, die dabei von NLP adressiert werden, sind vor allem die maschinelle Übersetzung, das Einholen von Informationen, die Textkategorisierung sowie die Datenextrahierung aus Text. Aber wie wendet man NLP in der Praxis an?


Neben kompletten Toolkits, wie z.B. dem Python Natural Language Toolkit, können sogenannte Regular Expressions (RegEx) verwendet werden. Regular Expressions sind in mehreren Programmiersprachen verfügbar - hier wurden sie innerhalb von Python mittels des re-Moduls verwendet. RegEx können als eigene kleine Programmiersprache gesehen werden. Sie erlauben es, effizient nach Mustern in einem Text zu suchen, wobei das Muster mittels sogenannter Matching Characters spezifiziert wird. Das Python Regular Expressions HOWTO beschreibt die genaue Funktionalität dieser Matching Characters im Detail. Die Grundidee ist es, auf effiziente Weise ein Muster vorzugeben, welches im Text gefunden werden kann. RegEx erlauben es, in ihrer einfachsten Form, aufeinanderfolgende Charaktere im Text zu finden. RegEx sind in den folgenden Absätzen genauer erklärt. In ihrer grundlegendsten Form können RegEx bestimmte Wörter in einem Text finden. Im folgenden Beispiel setzen wir eine RegEx zur Suche des Wortes "uns" ein.


# Wir importieren das re Modul zum Testen der Regular Expressions und 
# definieren einen Beispieltext.
import re 

text = "Das richtige Verwenden von AI erlaubt es uns, Probleme flexibel und nachvollziehbar zu lösen. \ Wenn wir Probleme haben, wenden wir uns an die AIAV Wissensdrehscheibe." 

# Die Regular Expression wird als 'uns' definiert. # Die Suchfunktion 
# sucht dann nach dem ersten Vorkommen der RegEx im Text. 
expression = 'uns' 

# Die Suchfunktion liefert uns den gefundenen Text und seine Position. 
print(re.search(re.compile(expression), text))
<re.Match object; span=(41, 44), match='uns'>

Wollen wir nun alle Vorkommnisse der RegEx finden, können wir anstatt re.search() re.findall() verwenden. Im Beispieltext kommt "uns" zwei mal vor.


print(re.findall(re.compile(expression), text))
['uns', 'uns']

Neben Buchstaben und Zahlen können auch Sonderzeichen in Regular Expressions verwendet werden. Während die meisten Zeichen einfach nur mit sich selbst matchen, bieten einige Sonderzeichen - die sogenannten Matching Characters - extra Funktionalität für den Ausdruck einer Regular Expression. So ist es möglich, bestimmte Gruppen an Charakteren von der Suche auszuschließen oder nach sich wiederholenden Sequenzen zu suchen. Beispiele für Matching Characters und ihre Funktionen sind in Tabelle 1 zusammengefasst.


Tabelle 1: Zusammenfassung der wichtigsten Matching Characters


Für den praktischen Use-Case wurden Regular Expressions zusammen mit anderen Textverarbeitungsmethoden zur Klassifizierung der Veröffentlichungen vom ARW verwendet. Wir wollen die Veröffentlichungen den vom Workshop angegebenen Themengebieten zuordnen, um uns einen Überblick über aktuelle Forschungstrends zu verschaffen. Da es in der Formatvorlage des ARW keine händisch angegebenen Schlagwörter gibt, müssen wir zunächst potentiell wichtige Wörter aus den Texten ermitteln. Anhand dieser Schlagwörter werden die Texte dann den Themengebieten zugeordnet.


Der Ablauf dafür ist wie folgt: Zunächst wird der rohe Text aus den Artikeln importiert. Da nicht alle Teile des rohen Textes für die Schlagwörter interessant sind, wird der Text zunächst mittels RegEx formatiert. Das Literaturverzeichnis wird entfernt, indem die Überschrift "REFERENCES" im Text gesucht und alle folgenden Charaktere weggelassen werden. Danach werden textformatierende Charaktere (wie z.B. "\n" für neue Zeilen) und Zitationen (bestehend aus einer Zahl in eckigen Klammern) entfernt. Kapitelüberschriften und Zahlen im Text werden ebenfalls mittels Regular Expressions gesucht und entfernt. Idealerweise erhalten wir so einen Text, welcher nur Wörter aus dem Fließtext des Artikels und Satzzeichen beinhaltet.


Nun wird der Text in Sätze aufgeteilt. Das passiert anhand der immer noch im Text vorhandenen Satzzeichen. Die Sätze werden wiederum in Token aufgeteilt. Diese Token stellen Schlagwort-Kandidaten dar. Die Aufteilung in Kandidaten erfolgt wiederum anhand der Satzzeichen (Satzende heißt auch Abschluss des aktuellen Kandidaten) und auf Basis einer Stoppliste. Diese Stoppliste besteht aus Wörtern, die die Kandidaten voneinander trennen. Solche Stopplisten können automatisch generiert werden und sind innerhalb der gleichen Sprache für verschiedene Anwendungsgebiete unterschiedlich.


Nach der Generierung der Kandidaten wird jeder Kandidat bewertet. Dafür wird gezählt, wie oft (Wortgrad) und in wie vielen Sätzen (Wortfrequenz) jedes Wort vorkommt. Aus diesen beiden Metriken wird jeder Schlagwort-Kandidat nummerisch bewertet (Wortgrad/Wortfrequenz). Daraus ergibt sich eine nach ihrer Wichtigkeit sortierte Liste an potentiellen Schlagwörtern.


Abbildung 1: schematischer Ablauf des Vorgehens


Diese Extrahierung wird nun für alle Publikationen des Austrian Robotics Workshops durchgeführt (siehe Abbildung 1). Die Schlagwörter werden dabei für alle Publikationen aus einem Jahr gruppiert. Jedes Paper wird anschließend anhand seiner automatisch generierten Schlagwörter innerhalb der Themengebiete in Tabelle 2 klassifiziert. Die Themengebiete spiegeln die auf der ARW-Homepage angegebenen Themengebiete für den Austrian Robotics Workshop wieder. Für jedes Themengebiet wurde eine Liste an Schlagwörtern mittels Google Keyword Planner ermittelt und händisch überarbeitet. RegEx wurde hier wiederum verwendet, um zu überprüfen, welche Schlagwörter aus welchen Publikationen mit den Schlagwörtern in Tabelle 2 übereinstimmen.


Tabelle 2: Themengebiete des ARW und zugehörige Schlagwörter


Die Ergebnisse der einzelnen Klassifikationen werden pro Jahr aufsummiert und der prozentuale Anteil jedes Themas für das jeweilige Jahr wird berechnet. Letztendlich werden diese Anteile, wie in Abbildung 2 gezeigt, als Balkendiagramm dargestellt.


Abbildung 2: Häufigkeit eines ARW-Themengebietes in Prozent - 2017 bis 2020


Um es zusammenzufassen: Regular Expressions erlauben uns, Natural Language Processing schnell und effizient zu betreiben. Da RegEx hochgradig optimiert sind, können Untersuchungen von großen Mengen Text lokal und ohne viel Rechenleistung durchgeführt werden. Die Themenbereiche der Veröffentlichungen zeigen einen klaren Trend zur Verwendung von Artificial Intelligence in Robotik. Besonders im Jahr 2018, dem einzigen Jahr zwischen 2016 und 2020, in dem der Austrian Robotics Workshop nicht zusammen mit einer anderen Konferenz abgehalten wurde, fällt der Anteil an Publikationen mit Fokus auf AI sehr hoch (> 40%) aus. Dies zeigt uns, dass AI in der österreichischen Robotik-Forschung Anwendung findet.



48 Ansichten

Aktuelle Beiträge

Alle ansehen