Newsgroup: it.comp.programmare.win32
Titolo: Italiano o Inglese

Conoscete una routine non molto complicato per far capire al pc se una 
stringa è scritta in italiano o in inglese? 

 stringa è scritta in italiano o in inglese?
Bella domanda...
Non ho una risposta, posso solo riflettere sul fatto che in italiano
non esiste la sillaba TH e non usiamo K,X e Y.
ciao
S

 ha scritto nel messaggio 
news:1182412564.9...@q69g2000hsb.googlegroups.com...


Grazie è già un buon punto di partenza ;) 

stringa è scritta in italiano o in inglese? 
Ci sono solo metodi molto complicati :-)
In generale, il riconoscimento della lingua in cui è scritto un
documento (o in cui è recitato un testo) è una questione di
intelligenza artificiale molto complessa e una bella sfida di
programmazione. C'è tutta una teoria in proposito.
Cerca "language recognition" o "speech recognition".

 stringa è scritta in italiano o in inglese? 
Ogni lingua ha una statistica di ricorrenza delle lettere e dei
dittonghi assolutamente unica e particolare. Se crei una routine che
calcola quante A, B, C, D ecc. ci sono e quanti dittonghi (coppie di
lettere) e paragoni la statistica ottenuta con le statistiche
dell'italiano e dell'inglese, data una stringa abbastanza lunga dovresti
ottenere una risposta molto affidabile... solo che non so QUANTO deve
essere lunga la stringa in questione per un risultato sufficientemente
sicuro.

 ha scritto nel messaggio 
news:f5mq7f$5t1$1...@megan.servidellagleba.it...

ciao,
anni fa ho fatto una tesina in universita' su questo argomento,
non so se il metodo che propongo puo' essere considerato semplice, cmq lo 
espongo:
le statistiche di emissione dei simboli (lettere) in una lingua possono 
essere divise in "ordini".
Le statistiche del primo ordine sono quelle descritte sopra da  Massimo:
quante volte e' uscita la 'A' rispetto al totale di lettere del documento, 
etc etc.
(NOTA: maiuscole e minuscole sono contate uguali)
questa e' la statistica del primo ordine (simboli considerati singolarmente) 
ed e' rappresentabile da
un vettore delle probabilita' di uscita delle singole lettere. Per ricavarsi 
il vettore di una lingua si prende un testo
parecchio lungo (ad es vi scaricate i promessi sposi) e lo fate passare al 
setaccio da un programma che conta
le lettere singole e il totale, poi fate la divisione lettera/totale per 
ogni lettera e avete la probabilita' di uscita delle singole lettere,
con cui caricate il vettore di 21 o meglio 26 probabilita' (cosi' vale gia' 
per l'inglese).
Fate un vettore campione per l'italiano e uno per l'inglese, ad esempio. Poi 
prendete un testo ignoto
e fate il vettore di questo testo. Poi col metodo dei minimi quadrati 
stabilite a quale dei due vettori campione
e' piu' vicino. Per un testo di 100 byte tra italiano e inglese non dovreste 
avere problemi a distinguere.
Con questo metodo potete gia' distinguere abbastanza bene le lingue come 
l'italiano dall'inglese,
ma con lo spagnolo potreste avere dei problemi.
Allora si passa alle statistiche di secondo ordine: quante volte esce una 
lettera DOPO che ne e' uscita un'altra.
Ad es se prendete un testo in italiano (che non contenga la parola 
"soqquadro") la probabilita' che dopo
la 'Q' esca la lettera 'U' e' 100%. Questo da' origine a una matrice 26x26 
di prob. del secondo ordine.
Con questa matrice e il solito minimi quadrati potete distinguere molto 
meglio le lingue.
Idem terzo ordine... ma non serve...
NOTA sui minimi quadrati:
somma_ita = 0;
for(i = 0;i < 26; i++)  somma_ita +=( (prob_vettore_campione_ita[i] - 
prob_vettore_da_testare[i])^2);
idem somma_eng
if(somma_ita < somma_eng) --> testo in italiano
spero di essere stato abbastanza comprensibile...
bye
GCL

 stringa è scritta in italiano o in inglese?
Anche se postato da diverso tempo, non ero ancora riuscito a scrivere ciò 
che mi venne in mente: in inglese la maggior parte delle parole finiscono 
per una consonante, mentre in italiano finiscono quasi sempre per una 
vocale. Potrebbe essere un punto d'inizio, o almeno io inizierei da qui...
Saluti
Fulcro 

 Grazie è già un buon punto di partenza ;)
Al di la' di qualunque considerazione che puoi fare, secondo me soltanto un 
elenco di parole ti puo' salvare (ne trovi decine online free da scaricare)
-- 
Gugu
OIBABOI! (Tutti insiem OiBaBoi)

Fulcro ha scritto:

oppure conta quante paroler ita o eng ci sono nella frase, anche se 
sarebbe meglio dare un peso alle parole, spece se il testo è informatico 
, le parole informatica do while for funtion class avranno un peso più 
nullo ripsetto agli articoli