Machine Learning Methode zur Texterkennung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
davimon
User
Beiträge: 2
Registriert: Donnerstag 21. September 2023, 19:29

Hallo zusammen,

Ich würde gerne mithilfe von Python maschinelles Lernen verwenden, um Strings in bestimmte Kategorien einzuteilen. Mein Problem ist aber, dass die Strings oft aus mehreren Wörtern OHNE Leerzeichen dazwischen bestehen. Ich habe bisher nur die Methode gefunden, die einen Text in einzelne Wörter zerlegt (anhand von Leerzeichen) und die Wörter jeweils zählt (Bags of Words). Nach einer derartigen Vorprozessierung wird das maschinelle Lernen auf die Zählung angewendet. Das geht in meinem Fall aber nicht. Stattdessen müssen Strings eher nach Schlüsselwörtern/-mustern durchforstet werden.

Beispielhaft gebe ich mal eine Liste an Wörtern mit den zugehörigen Kategorien:

engine oil
engineoil
shell oil 229,5 5L
oil229,5
oil engine
shell 5w30 229,5
--> Diese Strings sollen als Kategorie 1 erkannt werden (Öle), weil Schlüsselstrings wie "oil" oder "229,5", aber nicht "filter", "filt", "toilet", "spoiler", "pump" oder "line" vorkommen.

oil filter
oilfilter
engine oil filt
engineoilfilter
oil filt
--> Diese Strings sollen als Kategorie 2 erkannt werden (Ölfilter), da Muster wie "filter" oder "filt" zusammen mit "oil" auftreten.

toilet
spoiler
oil pump
oilpump
oil line
oilline
--> Diese Strings sollen als Kategorie 3 erkannt werden (Sonstiges).

Hat jemand eine Idee, wie ich meine Strings vorprozessieren soll und welche Machine-Learning-Methode sich anschließend anbietet?
Wenn ich weiß, in welcher Art die Vorprozessierung gemacht werden soll, dann kann ich einen Trainingsdatensatz aufstellen und die entsprechende ML-Methode auf weitere Testdaten anwenden.

Vielen Dank schon mal für jeglichen Input!

VG David
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wieso kannst du die nicht als zusammengesetzte Wörter lernen? Genau dafür sind doch ML verfahren gut. Man kann’s zb mal mit https://en.wikipedia.org/wiki/CRM114_(program) probieren, wobei ich das nur von früher kenne. Da gibt’s bestimmt neues, aber das kannst du genauso gut googeln wie ich.
davimon
User
Beiträge: 2
Registriert: Donnerstag 21. September 2023, 19:29

Hmm ja mir ist überhaupt nicht klar, welche Art von Merkmalsextraktion dabei angewendet wird. Alle Methoden zur Merkmalsextraktion, die ich finde, basieren auf irgendwelchen Wortzählungen. Wie kann denn ein Verfahren erkennen, dass "engineoil" und "oilengine" zur gleichen Kategorie gehören?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Garnicht. DU kannst das, und das als Trainingsdaten hinterlegen. Wenn es darum geht, unbekannte Worte aufzuarbeiten, würde ich mit Thesauren arbeiten, wie sie das NLTK anbietet. Und mal nach prior art suchen, fehlschreibungen und zusammengesetzte Worte sind ja kein neues Problem
Antworten