Ich habe eine Anwendung, die Fußballergebnisse von verschiedenen Quellen im Web abruft. Mannschaftsnamen sind auf verschiedenen Websites nicht konsistent - z. B. könnte Manchester United auf einer Seite 'Man Utd', auf einer zweiten Seite 'Man United' und auf einer dritten Seite 'Manchester United FC' genannt werden. Ich muss alle möglichen Ableitungen auf einen einzelnen Namen ('Manchester United') abbilden und den Prozess für jede der 20 Teams in der Liga wiederholen (Arsenal, Liverpool, Man City usw.). Natürlich möchte ich keine falschen Übereinstimmungen [z. B. 'Man City', die auf 'Manchester United' abgebildet wird].
Derzeit spezifiziere ich Regex für alle möglichen Kombinationen - z. B. 'Manchester United' wäre 'man(chester)?(u|(utd)|(united))(fc)?'; das ist in Ordnung für ein paar Websites, wird aber zunehmend unhandlich. Ich suche nach einer Lösung, die es vermeiden würde, diese Regexes angeben zu müssen. Es muss z. B. einen Weg geben, 'Man Utd' so zu 'bewerten', dass es gegen 'Manchester United' eine hohe Punktzahl erhält, aber eine niedrige / null Punktzahl gegen 'Liverpool' [zum Beispiel]; Ich würde den Beispieltext gegen alle möglichen Lösungen testen und diejenige mit der höchsten Punktzahl auswählen.
Mein Gefühl sagt mir, dass die Lösung möglicherweise ähnlich ist wie das klassische Beispiel eines neuronalen Netzes, das darauf trainiert wird, Handschriften zu erkennen [d. H. Es gibt einen festen Satz möglicher Ergebnisse und ein Maß an Rauschen in den Eingabemustern].
Hat jemand Ideen?
Vielen Dank.
0 Stimmen
Das Problem bei maschinellem Lernen ist, dass Sie einen ausreichend großen Datensatz benötigen, um damit zu trainieren, einen anderen Datensatz zum Testen benötigen und ihn dann in der Welt loslassen müssen. Ihr Post-Titel hat mich an den Soundex-Algorithmus denken lassen, vielleicht kann er dazu beitragen, die Größe der Eingaben für Ihr neuronales Netzwerk zu reduzieren.
0 Stimmen
@sarnold: nicht immer der Fall: en.wikipedia.org/wiki/Semi-supervised_learning