2012-03-12 7 views
6

Voglio risolvere il problema di suddivisione delle parole (parsing word from long string senza spazi). Per esempio vogliamo estrarre le parole da somelongword a [some, long, word].Approccio statistico di divisione delle parole

Possiamo ottenere questo risultato con un approccio dinamico con il dizionario, ma un altro problema che incontriamo è quello di analizzare l'ambiguità. Cioè orcore =>or core o orc ore (Non prendiamo in considerazione il significato della frase o parte del discorso). Quindi penso all'utilizzo di un approccio statistico o ML.

Ho trovato che l'algoritmo di Naive Bayes e Viterbi con set di treni può essere utilizzato per risolvere questo. Puoi indicarmi alcune informazioni sull'applicazione di questi algoritmi al problema della divisione delle parole?

UPD: Ho implementato questo metodo su Clojure, utilizzando alcuni consigli da Peter Norvig di code

risposta

4

Credo che slideshow da Peter Norvig e Sebastian Thurn è un buon punto di partenza. Presenta il lavoro del mondo reale realizzato da Google.

+0

Grazie, buon punto di partenza. Ho trovato molti snippet di codice utili sul sito di Peter Norvig. – mishadoff

+3

La presentazione è stata rimossa per qualche motivo. –

3

Questo problema è completamente analogo alla segmentazione delle parole in molte lingue asiatiche che non codificano esplicitamente i confini delle parole (ad esempio cinese, tailandese). Se desideri informazioni sugli approcci al problema, ti consigliamo di consultare Google Scholar per gli attuali approcci di segmentazione della parola in cinese.

Si potrebbe iniziare osservando alcuni approcci più vecchi: Sproat, Richard e Thomas Emerson. 2003. La prima segmentazione cinese internazionale della parola bakeoff (http://www.sighan.org/bakeoff2003/paper.pdf)

Se si desidera una soluzione pronta, consiglierei il tutorial di LingPipe (http: // alias-i.com/lingpipe/demos/tutorial/chineseTokens/read-me.html). L'ho usato su testo inglese non segmentato con buoni risultati. Ho addestrato il modello linguistico del personaggio sottostante su un paio di milioni di parole di testo newswire, ma ho il sospetto che per questo compito otterrai prestazioni ragionevoli usando qualsiasi corpus di testo inglese relativamente normale.

Hanno utilizzato un sistema di correzione ortografica per raccomandare le "correzioni" candidate (dove le correzioni candidate sono identiche all'ingresso ma con gli spazi inseriti). Il loro correttore ortografico si basa sulla distanza di modifica di Levenshtein; semplicemente non accettano la sostituzione e la trasposizione e limitano gli inserimenti consentiti a un solo spazio.