Weasel - Intelligente Suche nach Mitarbeiterskills

Vielleicht kennen Sie das Problem: Sie haben eine Frage zu einem bestimmten Thema und suchen passende Ansprechpartner in Ihrem Unternehmen oder zumindest jemanden, der den Ansprechpartner kennt. Womöglich hat eine Kollegin bereits an einem ähnlichen Projekt gearbeitet und kennt sich gut damit aus. Doch wen fragen Sie am besten? Die Profile in den internen Skill-Datenbanken, falls vorhanden, sind hier häufig nur die halbe Wahrheit. Sie sind oftmals nicht aktuell oder bilden Diskussionen um spezielle Themen nicht ab. Benachbarte Kollegen oder im gesamten Unternehmen zu fragen ist auch zu umständlich oder lästig. Deshalb haben wir mit Weasel eine Suchmaschine gebaut, die neben Skill-Datenbanken auch Daten von internen Chat-Foren und Dokumentenverwaltungssystemen wie SharePoint verwendet. Die Informationen werden unterschiedlich gewichtet und aufgrund einer daraus resultierenden Punktzahl mögliche Ansprechpartner vorgeschlagen. Fehlerkorrektur, Autovervollständigung und ein Abgleich der Suchbegriffe mit Tags von Stack Overflow verbessern die Suche zusätzlich in ihrer Wirksamkeit.

Abbildung 1 zeigt den Aufbau der Anwendung. Die in JSON-Files übermittelten Informationen der Mitarbeiter aus den Datenquellen werden unterschiedlich gewichtet und als Skill-Matrizen gespeichert. Die gegebenenfalls korrigierten und vervollständigten Suchbegriffe vom Frontend werden normalisierten Skills zugeordnet. Im Folgenden erkläre ich die einzelnen Bestandteile genauer.

Weasel_Architektur

Abbildung 1: Die Architektur von Weasel

Die einzelnen Bestandteile der Anwendung

Die Mitarbeiterprofile von unserer intern verwendeten Skill-Datenbank werden in Word-Dokumenten gespeichert, benannt nach dem jeweiligen LDAP-Schlüssel.

Zu jedem Post in unserem internen sozialen Netzwerk enthält eine .txt-Datei eine Liste von JSON-Objekten mit Informationen wie dem Inhalt des Beitrages oder dem LDAP-Schlüssel der Person, die den Post erstellt hat. Ein Post kann mehrere Tags beinhalten. Benutzt werden am Ende der Schlüssel und die Anzahl der Posts zu den jeweiligen Tags. Die JSON-Objekte für Projekte auf SharePoint enthalten den Namen des Projektes und der beteiligten Kolleginnen und Kollegen sowie die benutzten Technologien. Für jede Person wird gezählt, wie oft Projekte mit den Technologien auftauchen.

Ein Data Generator erstellt aus diesen Informationen Skill-Matrizen. Im Backend werden die Skills dann unterschiedlich gewichtet. Die Skill-Level in unserer Datenbank bekommen unterschiedliche Gewichte zugeordnet. Ebenso jeder Post und die Anzahl der Monate, in denen ein Mitarbeiter an einem Projekt bzw. einer Technologie gearbeitet hat.

Zum Beispiel könnten Sie jemanden suchen, der sich gut mit Java auskennt. Die Kollegin Maxima Musterfrau gibt ihr Skill-Level in der Skill-Datenbank als „Expertin“ an. Zudem hat sie an 14 Forenbeiträgen mit dem Tag „Java“ mitgeschrieben und an einem Projekt auf SharePoint gearbeitet. Aus diesen Informationen ergibt sich seine Punktzahl. Durch Klicken auf die Plus-Zeichen in Abbildung 2 kann man sich die einzelnen Posts und Projekte anzeigen lassen. Gegebenenfalls werden Sie dorthin weitergeleitet, ebenso wie zum Skill-Datenbankprofil der entsprechenden Person. Ein Klick auf das E-Mail-Symbol öffnet eine E-Mail mit der Kollegin als Empfängerin. Das Chat-Symbol daneben öffnet eine Unterhaltung im Messaging-Dienst Mattermost.

Suchergebnissanzeige

 

Das im Frontend eingetippte Wort wird während des Tippens mit einer Liste aller bei iteratec verfügbaren Skills, einem Ähnlichkeitsgraphen von Tags auf Stack Overflow und einer Übersetzungsliste verglichen. Bei syntaktischen Fehlern wird der Input außerdem mithilfe der Levenshtein-Distanz korrigiert. Das bedeutet, es werden diejenigen Begriffe vorgeschlagen, die um die geringste Anzahl von Einfüge-, Lösch- und Ersetz-Operationen vom eingetippten Wort entfernt sind. Diese Vorschläge sehen Sie während des Tippens unter dem Suchfeld. Ein Tag neben den Vorschlägen gibt jeweils an, woher der jeweilige Vorschlag abgeleitet wurde. Im Beispiel in Abbildung 3 ist „android“ der erste Korrekturvorschlag aus unserer Skill-Liste zum fehlerhaft eingetippten „andrpod“, außerdem generiert die Ähnlichkeitssuche von Stack Overflow den Vorschlag „java“. Ebenfalls können Sie nach mehreren Begriffen gleichzeitig, durch Kommas separiert, suchen.

Korrektur_und_Aehnlichkeitsvorschlaege

 

Die nicht übereinstimmenden Skills und Tags aus den verschiedenen Datenquellen müssen vereinheitlicht werden, damit der Benutzer nicht bei der Suche verschiedene Ergebnisse für beispielsweise „machine learning“ und „maschinelles lernen“ erhält. Hierfür werden die verschiedenen Versionen des gleichen Skills intern auf ein gemeinsames Format ohne Leer- und Sonderzeichen (z.B. „machinelearning“) abgebildet. Mit diesem internen Begriff wird gesucht.

 

Ausblick

Weasel verfügt über eine Feedback-Funktion. Hier können die Nutzer Anregungen und Feedback zu der Anwendung und dem Sucherlebnis abgeben. Über die Rückmeldung der Nutzer verbessern wir Weasel ständig.

Im nächsten Sprint setzen wir eine User-in-the-Loop-Rückmeldung um. Hieraus wird eine weitere Gewichtung der Suchergebnisse eingebaut, die aus den bisherigen Suchergebnissen abgeleitet wird. Die Einbindung weiterer Datenquellen wie Projekte aus Respositories - zum Beispiel unser internes GITLab - ist geplant. Durch die Nutzung verschiedener Datenquellen konnte Weasel die Mitarbeitersuche deutlich verbessern. Dennoch bleibt entscheidend, dass ausreichend Feedback erzeugt wird. Um aus bisherigen Suchen zu lernen, müssen die Anwender Weasel also viel nutzen.

 

Noch Fragen?

Was bedeutet Machine Learning und wie kann Ihr Unternehmen vom Einsatz profitieren? Erfahren Sie, wie wir Sie beim Thema Machine Learning unterstützen können:

 

fabian_kapferFabian Kapfer - arbeitete als Werkstudent bei der iteratec GmbH in München. Seit November 2018 wirkte er an der Suchmaschine Weasel mit. Wir schätzen seine Beitrag und informieren, dass er nicht mehr bei iteratec tätig ist.

Tags: AI & Data Analytics

Verwandte Artikel

Unser Alltag ist von digitalen Prozesse abhängig, sei es im privaten oder im beruflichen Umfeld. Und Künstliche Intelligenz (KI)...

Mehr erfahren

Topics: AI & Data Analytics

70% aller IT-Modernisierungsprojekte scheitern! Mit generativer künstlicher Intelligenz (Gen AI) kann das Risiko bereits...

Mehr erfahren

Topics: AI & Data Analytics

In der rasanten Welt der künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) hat das sogenannte "Prompting" eine...

Mehr erfahren

Topics: AI & Data Analytics