Ho un'applicazione che raschia i risultati di calcio da diverse fonti sul web. nomi delle squadre non sono coerenti su diversi siti web - ad esempio, il Manchester United potrebbe essere chiamato 'Man Utd' su un sito, 'Man United' su un secondo, 'il Manchester United FC' su un terzo. Ho bisogno di mappare tutte le possibili derivazioni di nuovo ad un singolo nome ('Manchester United'), e ripetere il processo per ciascuna delle 20 squadre del campionato (Arsenal, Liverpool, Man Città etc). Ovviamente non voglio cattive corrispondenze [ad es. "Man City" mappata a "Manchester United"].Algoritmo per nomi corrispondenti 'rumoroso'
Al momento specificare le espressioni regolari per tutte le combinazioni possibili, ad esempio 'Manchester United' potrebbe essere 'man (chester)? (U | (utd) | (united)) (fc)?'; questo va bene per un paio di siti, ma sta diventando sempre più ingombrante. Sto cercando una soluzione che eviti di dover specificare queste regex. Ad esempio, ci deve essere un modo per 'punteggio' Man Utd in modo da ottiene un punteggio alto contro il 'Manchester United', ma un basso/zero punteggio contro 'il Liverpool' [per esempio]; Metterei alla prova il testo di esempio contro tutte le possibili soluzioni e scegliere quello con il punteggio più alto.
mia sensazione è che la soluzione può essere simile al classico esempio di una rete neurale essere addestrati a riconoscere scrittura [cioè v'è un insieme fisso di possibili risultati, e un grado di rumore nei campioni di ingresso]
Qualcuno ha qualche idea?
Grazie.
Il problema con l'apprendimento automatico è che devi compilare un set di dati abbastanza grande da addestrare, un set di dati diverso da testare e poi girare liberamente nel mondo. Il titolo del tuo post mi ha fatto pensare all'algoritmo [Soundex] (http://en.wikipedia.org/wiki/Soundex), forse può essere usato per aiutare a ridurre la dimensione degli input della tua rete neurale. – sarnold
@sarnold: non sempre il caso: http://en.wikipedia.org/wiki/Semi-supervised_learning – Amro