ich habe eine lange Liste mit Sätzen (ca. 30 Millionen) und will diese gern in möglich viele (aber manuell machbar) Gruppen einteilen - ca. 200 - 400 Gruppen (diese Gruppen sind geschachtelt).
Beispiel:
- 18 Reasons You Should Upgrade to Windows 10
- The 100 Best Android Apps for 2020
- Cooler Master's adorable Masterbox MB311L mini-tower is affordable, too
1. Top_Category: Operating System, Sub_Category: Windows, Sub_Sub_Category: Windows 10
2. Top_Category: Operating System, Sub_Category: Android
3. Top_Category: Hardware, Sub_Category: Desktop PC, Sub_Sub_Category: Cooler Master
Im Normalfall: Wenn die Sub_Sub_Category korrekt erkannt wird, ergeben sich die übergeordneten.
Welche Optionen gibt es denn da?
Ich hatte es am Anfang mit Machine Learning probiert, spezieller mit: sklearn MultinomialNB
Vorerst mit den Daten aus den Tutorials online. Damit kam ich bei der Klassifizierung auch auf 80 - 90% (Genauigkeit)
Dann habe ich meine eigenen Daten gelabelt und damit trainiert - bin mir nicht mehr sicher .. ich glaube ich war bei 20 - 40%.
Ich schätze, das liegt daran, dass ich so viele Kategorien habe und ich bräuchte hunderttausende von gelabelten Daten um die Genauigkeit zu erhöhen.
Dann habe ich ganz simpel mit String Comparisons gearbeitet - mittlerweile über 1000 Zeilen Code und diverse Logiken eingebaut wie von spezifischen zu allgemeinen Keywords, zusammengesetzte Nomen / getrennte etc.
Damit komme ich auf knapp 100% Genauigkeit - allerdings werden nur ca. 70 - 80% der Sätze klassifiziert, da es eine Art Whitelist Ansatz ist.
Ich würde das System jetzt gern ausbauen / verfeinern und bin am Überlegen, in welche Richtung ich recherchieren muss / ob ihr irgendwelche Tipps habt, wie es weiter gehen kann?