2011-08-16 12 views
13

Sono interessato a scrivere uno script PHP (accolgo favorevolmente i suggerimenti agnostici di lingua) che trasporteranno una frase o una parola scritta in inglese (phoenetically) nella sceneggiatura di un'altra lingua. Dal momento che sto guardando l'inglese scritto in modo fenomenico (cioè a orecchio): dovrei fare i conti con le varianti di ortografia della stessa parola.Traslitterazione intelligente in PHP

Si presume che non esiste uno standard per la romanizzazione (per esempio, in cinese, si ha la Wade semplificato, ecc)

Qualcuno ha qualche consiglio su dove potrei cominciare? EDI: lo sto facendo solo a scopo didattico, e inizialmente ho avuto l'impressione che per capire la connessione tra le varianti di ortografia (che potrebbero essere trovate in un corpus di messaggi di messaggistica istantanea, i post di Facebook scritti in la forma romanizzata della lingua), avresti bisogno di una sorta di strumento di apprendimento automatico. Tuttavia, mi piacerebbe sapere se ero sulla strada giusta, e mi piacerebbe un po 'di aiuto nel capire quale dovrebbe essere il prossimo passo per farlo funzionare (per esempio: quale strumento di apprendimento automatico dovrei esaminare?) .

+0

Senza entrare troppo carnosa - varianti ortografiche di una parola straniera (di solito scritto in una propria scrittura), come ad esempio " eheree "contro" ehery ", o" ei "vs" ey ". Capisco che non è molto: speravo in una soluzione che richiedesse un po 'di analisi statistica su un dato corpus (ad esempio messaggi IM o aggiornamenti di Facebook scritti nella forma romanizzata della lingua). – arkate

risposta

2

Conoscenza almeno giapponese, si ha un numero impostato di combinazioni di lettere.

Quindi, si potrebbe fare qualcosa di simile a creare una matrice di corrispondenza come questo

array(
    'oo' => 'おう', 
    'oh' => 'おう', 
    'ou' => 'おう' 
) 

Naturalmente, proseguendo, e fare in modo che non corrispondono 'do', quando dovrebbe essere 'tsu'.

Questo sarebbe solo un punto di partenza, ovviamente.

Apprendimento automatico è probabilmente più pratico con il cinese ... ma ecco un inizio difficile per hiragana: https://gist.github.com/1154969

+0

Stavo cercando qualcosa in questo senso.L'unica cosa che manca qui è un modo per generare probabilmente queste associazioni (forse attraverso tecniche di apprendimento automatico). – arkate

3

Prova Transliteration PHP Extension di Derick Rethans:

Questa estensione permette di traslitterare testo in non latini caratteri (come il cinese, cirillico, greco ecc) per caratteri latini. Oltre alla traslitterazione, l'estensione contiene anche i filtri latini maiuscoli, minuscoli, cirillici e greci e esegue forme speciali di traslitterazione come la conversione di legature come "01" a "ae" e normalizzazione di punteggiatura e spaziatura.

Sembra che abbia già iniziato proprio quello che stai cercando! (a meno che non si voglia trattare con inglese-> lingua latina, ma almeno si tratta di script di altre lingue :))

+0

È un ottimo strumento e grazie per avermelo fatto notare. Tuttavia, ero più interessato a capire come ne avrei costruito uno da solo (scopi puramente educativi). Mi scuso se non è chiaro nella domanda :( – arkate

+2

Suggerirei di ottenere questa libreria e osservare il loro codice. Il modo migliore per imparare (per me): prendere qualcosa che funziona, romperlo, capire come risolverlo. Ripeto –

Problemi correlati