Klassifikation nach ETIM – lässt sich die ETIM-Klasse eines Produkts mit maschinellem Lernen vorhersagen wenn ein Algorithmus mit der Produktbeschreibung und den Produktmerkmalen gefüttert wird?
Inspiriert von Kai Webers Vortrag „Verschlagwortung von E-Books mit Hilfe von Machine Learning-Verfahren“ beim Markupforum 2018 wollte ich das wissen. Sein Vortrag handelt davon anhand des Inhalt eines E-Books die zugehörige Warengruppe zu bestimmen. Was für Bücher funktioniert müsste für Produkte ebenfalls möglich sein.
Maschinelles Lernen
„[Machine Learning is the] field of study that gives the computer the ability to learn without being explicitly programmed“. Arthur Samuel, 1959 (Quelle)
Anwendungsfall
- Vorhersage einer ETIM-Klasse
- Das Modell wird mit Trainingsdaten gelernt
- Die Trainingsdaten enthalten die Produktinformationen, unter anderem deren bekannte ETIM-Klasse
- Der mit den Trainingsdaten trainierte Algorithmus wird auf die Testdaten angewendet und die ETIM-Klasse wird anhand des trainierten Modells zugewiesen
- Die vom Modell zugewiesenen ETIM-Klassen werden mit den tatsächlichen Klassen der Testdaten verglichen und evaluiert
- Die aus der Fehleranalyse abgeleiten Erkenntnisse verbessern den Algorithmus
Verwendetes Verfahren
Erforderliche Informationen
Die benötigten Informationen sind die Features (bestimmende Merkmale für die Klassifizierung) und die Labels (die ETIM-Klasse des Produkts).
- Trainingsdaten mit Features und Label, damit wird der Algortihmus trainiert
- Testdaten mit Features und Label, damit wird der Algorithmus getestet und evaluiert (da die ETIM-Klassen der Testdaten bekannt sind)
Features
- Beschreibungstexte eines Produkts, kurz oder lang
- Schlagworte bzw. Einordnung eines Produkts
Labels
Die Labels sind die ETIM-Klasse des Produkts.
Verwendete Daten
ETIM 6.0 Definition in xml-Datei als Trainingsdaten
Produktdaten im BMEcat (elektronischer Katalog) mit ETIM 6.0 Klassifikation als Testdaten von verschiedenen Firmen: Busch-Jäger, Weidmüller, Rittal
Vorgehensweise
Entwicklungsumgebung für Python
Datenvorverarbeitung
Die Tags (Description und Synonyms) der Trainingsdaten für die Features werden als Beschreibung und Schlagworte in eine Matrix eingelesen.
Da der Algorithmus nur Zahlen verarbeitet, werden alle vorkommenden Ausdrücke in Spaltenüberschriften übernommen. Die ETIM-Klasse, in der ein Ausdruck vorkommt, erhält als Inhalt in der Zeile eine 1.
Die Testdaten aus den BMEcat Katalogdaten werden analog vorverabeitet.
Modellierung
- Multinominal Naive Bayes Algorithmus, berücksichtigt die Verteilung von Features in den jeweiligen Klassen
- Features sind nicht unabhänig von einander
Ergebnis
Zuordnung der Klassen
Ergebnisanalyse
Analyse der richtig zugeordneten ETIM-Klassen
Im Diagramm fällt die ETIM-Klasse EC000194 auf. Sie wurde 2x richtig, aber auch 4x falsch vorhergesagt.
Ein Produkt, das ETIM-Klasse EC001101 haben sollte, ist der Klasse EC000194 eingeordnet worden. Ein Blick in die Trainings- und Testdaten hilft weiter.
Das eigentlich unterscheidende Merkmal der beiden Klassen scheint die Busanbindung zu sein, was alleine an dem Wort „Bussystem-Raumtemperaturregler“ deutlich wird. Das Wort „Bus“ kommt in den Trainingsdaten ausschließlich in dem zusammengesetzten Wort „Bussystem-Raumtemperaturregler“ vor, anstatt in möglichen Schreibweisenvarianten. Wären Synonyme wie „Bussystem“ oder „Busankoppler“ enthalten, wäre die Zuordnung vermutlich richtig.
Analyse der falsch zugeordnete ETIM-Klassen
Ursachen der häufig falschen Zuordnung
Die ETIM-Klasse EC002441 ist 60 mal falsch zugeordnet worden. Ein Produkt der Klasse EC002712 ist falsch der Klasse EC002441 zugeordnet worden.
Trainingsdaten der falsch zugeordneten Klasse | Trainingsdaten der richtigen Klasse |
EC002441 | EC002712 |
Stützklammer | Zubehör für Vorschaltgerät |
Geräteeinbaukanal | Zugentlastung |
Umrüstsatz |
Testdaten: Herstellerbeschreibung von Produkten der Klasse (4 Produkte) |
EC002712 |
Smart Sensor Montagekeil für IEC 400-450; Smart Sensor Keil IEC 400-450 |
Smart Sensor 40x UL Version; 40 x ABB ABILITY SMART SENSOR Motors (UL;ABB;ETIM-6.0 |
Smart Sensor 10x Lizenz Code 1 Jahr;10 x ABB ABILITY SMART SENSOR Lizenz 1 J |
Smart Sensor 10x Lizenz Code 2 Jahre;10 x ABB ABILITY SMART SENSOR Motors Sub |
- Es gibt keinerlei Übereinstimmung zwischen den Herstellerbeschreibungen der 4 Produkte und den beteiligten Klassen, weder der richtigen noch der falsch zugeordneten Klasse
- Die oft falsch zugeordnete Klasse enthält nur zwei beschreibende Worte
- Wenn es keine inhaltliche Übereinstimmung gibt ist der Fehler am geringsten wenn eine Klasse mit wenig Information zugeordnet wird
Ausblick
Aus der Analyse der Ergebnisse leiten sich Verbesserungsmöglichkeiten ab, die in den Algorithmus oder die Trainingsdaten zurückgeführt werden können.
- Ausführliche und prägnante Klassenbeschreibung
- Schreibweisenvarianten des unterscheidenden Merkmals in die Trainingsdaten oder den Prozess mit aufnehmen
- Synonyme in die Trainingsdaten oder in den Prozess mit aufnehmen
- Komposita auch einzeln aufführen (wenn Bedeutung erhalten bleibt)
- Im Prozess Stopp-Wörter entfernen. Dabei handelt es sich um Wörter, die nichts zur Klassifizierung beitragen, z. B. für, auf, zu, ein, …
- Festlegen, wie mit Zahlenangaben in den Beschreibungen umzugehen ist
- Festlegen, wie mit Herstellernamen Komposita im Prozess umgegangen werden soll, z. B. die Komination aus „Firmenname-Produktbeschreibung„