Technologie

Mit semantischer künstlicher Intelligenz die Skills im Unternehmen verstehen

Unstrukturierte Daten liegen im Unternehmen und im Internet in den verschiedensten Formen vor: Von Office Dateien über interne Wiki Artikel und Forenbeiträge bis hin zu externen Social Media Accounts und Blog Posts. Überall liegen Daten, die etwas verraten über Projekte und Personen. Das Problem: Diese Daten sind unstrukturiert, sie folgen keinem bestimmten Schema, enthalten wichtige und unwichtige Informationen und sind in unterschiedlichen Sprachen verfasst.

Unsere Aufgabe ist es, trotz dieser Herausforderungen die Daten so zu aggregieren, dass hieraus aussagekräftige Profile und Beschreibungen entstehen, sodass ein Mitarbeiter bspw. auf einen Blick ein aussagekräftiges Projektprofil vorfindet. Wie genau kann das gelingen? Wir setzen hierbei auf State-of-the-Art Technologien des maschinellen Lernens, auf etablierte Open Source Werkzeuge und eigene Implementierungen. Zu den wesentlichen Technologien gehören:
• Natural Language Processing (NLP)
• Ontology Learning
• Web Crawling
• Scalable Search Engines

Unter Natural Language Processing (NLP) werden Algorithmen zur Verarbeitung natürlicher Sprache zusammengefasst. Mit Hilfe entsprechender Algorithmen wie Part-of-Speech-Tagging und Dependency-Parsing können so bspw. Wortarten identifiziert und zusammenhängende Satzfragmente extrahiert werden. Damit ist es u.a. möglich, potentiell wichtige Fachbegriffe von einfachen Hilfsverben und anderen unwichtigen Begriffen zu unterscheiden, oder besonders aussagekräftige Sätze in einem Text zu finden. Um wichtige Begriffe zuverlässig zu identifizieren, hilft es dabei, wenn eine Ontologie vorliegt, also eine Art verzweigtes Wörterbuch, auf das die Algorithmen zurückgreifen können. Semantische Beziehungen, bspw. zwischen ähnlichen technologischen Begriffen, verbessern zudem später Such- und Matchingfunktionen. Das Erstellen und insb. die Pflege einer solchen Ontologie ist jedoch extrem aufwendig und manuell kaum möglich. Aus diesem Grund nutzen wir hierfür einen eigens entwickelten Ontology Learning Ansatz.

Wie der Name bereits sagt, geht es beim Ontology Learning darum, eine Ontologie nicht händisch zu erstellen, sondern Begriffe und deren Zusammenhänge automatisch zu erlernen. Hierfür setzen wir auf manuell vordefinierte Begriffe und Relationen, die anschließend durch maschinelle Lernverfahren in Form eines neuronalen Netzes mit anderen Begriffen verglichen und sukzessive erweitert werden. Dazu analysieren wir große Datenbestände, deren Begriffe anschließend in mathematische Repräsentationen, die Vektoren, überführt werden (Word2Vec). Dabei werden semantische Ähnlichkeiten in die Vektoren übernommen. Über einen Abgleich mit den bereits bekannten Begriffen durch ein Clustering können wir anschließend feststellen, welche Begriffe potentiell relevant sind und in welchen Bereich sie fallen. Für dieses maschinelle Lernen benötigen wir jedoch große Mengen geeigneter Daten, die wir zunächst crawlen müssen.

Hierzu nutzen wir eigene Web Crawler, die bspw. Projektportale, Jobbörsen oder andere relevante Online Medien analysieren und aus deren Daten ein sogenanntes Corpus erstellen, also eine Gesamtheit von natürlich sprachlichen Texten, die unsere Algorithmen anschließend analysieren können.

Um Datenbestände mit Hilfe der Ontologie anschließend schnell zu analysieren, zu durchsuchen und dabei bspw. auch kleinere Abwandlungen in der Schreibweise oder Synonyme zu identifizieren, nutzen wir effiziente, gut skalierbare Suchtechnologien wie Elasticsearch, um die Ergebnisse unserer Analysen möglichst schnell zum Endnutzer zu bringen.

Zu den Technologien, mit denen wir arbeiten, gehören:
• NLP Frameworks: Apache NLP, Stanford NLP und Spacy
• Programmiersprachen: Java, Python
• Machine Learning: Gensim, DeepLearning4J
• Search Engines: Elasticsearch, Apache Solr

Ihr Ansprechpartner

Dr. Philipp Bitzer
bitzer@smartransfer.eu