PDA

View Full Version : Algoritmo di traduzione


jumpjack
23-01-2007, 12:09
GIocherellando con google-translation , oltre a farmi qualche grassa risata :D ho cercato di capire perche' vengono fuori risultati cosi' ridicoli (parlo di inglese->italiano).
E mi sono reso conto che uno dei problemi piu' grossi è il raggruppamento di parole: in sostanza, Google (e immagino qualunque altro traduttore) sbaglia perche' associa in modo sbagliato le parole, con conseguenti risultati ridicoli.
Ecco alcuni risultati di "test di traduzione", con evidenziate le associazioni di google e quelle, invece, corrette.

ERRATO:
Most Lebanese are hooked up to a private generator in their neighbourhood which kicks in when the state power goes off. This means two electricity bills at the end of every month.

Più i libanesi sono agganciati fino ad un generatore riservato nella loro vicinanza in cui dà dei calci a quando l'alimentazione di dichiarare si spegne. Ciò significa due fatture di elettricità alla fine di ogni mese.


CORRETTO: (tradotto a mano...)
Most Lebanese are hooked up to a private generator in their neighbourhood which kicks in when the state power goes off. This means two electricity bills at the end of every month.

Più i libanesi sono agganciati ad un generatore riservato nella loro vicinanza che subentra a quando l'alimentazione di dichiarare si spegne. Ciò significa due fatture di elettricità alla fine di ogni mese.

ERRATO:
Half the callers complain about the electricity, the rationing and the steep bills but there are also calls about huge potholes that have been a traffic hazard for weeks, water rationing and lack of street lights on steep mountainous roads.

La metà dei visitatori protesta circa l'elettricità, il razionamento e le fatture ripide ma là sono inoltre chiamate circa i potholes enormi che sono stati un rischio di traffico per le settimane, innaffiano il razionamento e la mancanza di luci di via sulle strade montagnose ripide.


CORRETTO:
Half the callers complain about the electricity, the rationing and the steep bills but there are also calls about huge potholes that have been a traffic hazard for weeks, water rationing and lack of street lights on steep mountainous roads.

La metà dei visitatori protesta circa l'elettricità, il razionamento e le bollettesalate ma ci sono inoltre chiamate circa i potholes enormi che sono stati un pericolo per il traffico per le settimane, razionamento dell'acqua e la mancanza di luci di via sulle strade montagnose ripide.



Non sarebbe possibile scrivere un programma che permette di associare correttamente le parole prima di effettuare la traduzione? Ovviamente cio' dovrebbe essere fatto da chi gia' sa sia l'inglese che l'italiano, a beneficio di chi invece non lo sa; se fosse possibile implementare un programma del genere in una pagina web interattiva, si potrebbero "sfruttare" le enormi "risorse umane" di Internet per costruire, alla fine, un traduttore "serio".

Non dovrebbe essere una cosa cosi' assurda questo tipo di "collaborazione": tempo fa ho trovato un sito che con questo sistema cerca di realizzare una serie di dizionari multilingua gratuiti. Lo trovai anni fa, ma non ricordo assolutamente l'indirizzo. QUalcuno lo conosce?[/

mad_hhatter
23-01-2007, 12:47
il problema dei traduttori e' che una lingua reale e' fortemente dipendente dal contesto. Ogni parola ha molteplici significati risultando quindi ambigua. La soluzione dell'ambiguita' semantica si risolve soltanto CAPENDO il significato della frase, o addirittura delle frasi precedenti. Purtroppo questa conoscenza semantica non e' ancora alla portata dei calcolatori. Tieni presente che attualmente persino le grammatiche usate per modellare una lingua reale sono solo delle approssimazioni delle grammatiche reali... per tutta questa serie di motivi, che qui ho espresso molto alla buona, non e' ancora possibile produrre un traduttore affidabile. E' pero' possibile creare un traduttore che STATISTICAMENTE produca risultati decenti, almeno per quanto riguarda la comprensione delle parti del discorso. Purtroppo il raggruppamento di parole singole in "termini" e' un problema tutt'altro che banale, perche', appunto, il raggruppamento dipende dal contesto (in alcuni casi le stesse parole vanno raggruppate, altri no, oppure vanno raggruppate in modo diverso)...
E' un problema piu' complesso di quanto possa sembrare.

jumpjack
23-01-2007, 14:19
E' un problema piu' complesso di quanto possa sembrare.
lo so , ma è da quando ho letto la prima traduzione automatica della mia vita che penso a una soluzione del problema... E sono discretamente convinto che un sistema esperto (MOLTO esperto) sarebbe in grado di fare ottime traduzioni: penso cioe' che un computer possa compensare il fatto di non capire una mazza di quello che legge col fatto di conoscere a memoria migliaia di pezzetti di frasi e milioni di modi diversi in cui combinarli tra loro.

Mi chiedo se sarebbe possibile scrivere un miniprogramma di prova, che sia in grado ad esempio di tradurre correttamente qualunque frase dall'inglese all'italiano scritta usando solo 20 parole predeterminate. Secondo me è possibile... :mbe:

jumpjack
23-01-2007, 14:44
Ok, facciamo questa prova:
scrivetemi tutte le frasi possibili immaginabili, anche le piu' complicate (purche' abbiano senso compiuto) usando solo queste parole:
to
have
be
go
tell
do
I,you,he... (qualunque persona, e relativi pronomi)
cat
rock
bottle
car
seaside
cinema
home/house
pub
happyness
beauty
truth
trip

Per i verbi vale qualunque tempo & modo.
Per il resto, c'e' da scegliere tra 4 oggetti concreti, 4 concetti astratti e 4 luoghi.

Intanto provo a scrivere il programma... :eek:

jumpjack
23-01-2007, 14:51
qualcuno mi sa indicare un forum inglese di "chiacchiere" tipo "piazzetta" dove chiedere di scrivermi un po' di frasi?

mad_hhatter
23-01-2007, 14:55
le frasi scrivibili sono infinite, se anche tu riuscissi a scrivere quel programma, esso sarebbe in un certo modo banale, perche' confinato all'interno di un insieme finito di frasi (posto che tale numero sia davvero finito)... non puoi bypassare la semantica se vuoi traduzioni accurate. Altrimenti troverai sempre un insieme di casi in cui il traduttore sbaglia

jumpjack
23-01-2007, 15:34
le frasi scrivibili sono infinite,
no, se e' vero che le PAROLE non sono infinite!
le costruzioni possibili sono sempre le stesse: puo' cambiare il soggetto, il verbo e il complemento, ad esempio, ma la struttura della frase è sempre la stessa.
E se il programma sa che una certa parola è un verbo, un soggetto o un complemento, e se oltretutto sa che quella parola puo' trovarsi associata solo a quelle 10 altre (o quei 10 altri TIPI di parola), allora puo' anche essere in grado di tradurre qualunque testo.
E' solo un problema di quantità di dati e velocità nell'esaminarli ed elaborarli. Ed entrambe le cose abbondano ed avanzano in qualunque pc moderno! :D Quello che manca... sono i dati! :rolleyes:

Si potrebbe anche insegnare a un programma a leggere migliaia e migliaia di testi, ricavando cosi' quali parole possono essere associate a quali altre: ogni parola acquisterebbe cosi' una serie FINITA di "collegamenti possibili" con altre parole, e ad ogni collegamento corrisponderebbe un collegamento al database dell'altra lingua.
Immagino sia cosi' che sono strutturate le famose "reti neurali".... :confused:

jumpjack
23-01-2007, 15:36
le frasi scrivibili sono infinite, se anche tu riuscissi a scrivere quel programma, esso sarebbe in un certo modo banale, perche' confinato all'interno di un insieme finito di frasi (posto che tale numero sia davvero finito)... non puoi bypassare la semantica se vuoi traduzioni accurate. Altrimenti troverai sempre un insieme di casi in cui il traduttore sbaglia
p.s.
anche l'algoritmo di "20 questions" e' banale.... ma quel "giochino scemo" ha oggi una conoscenza estremamente vasta dello scibile umano! :eek:
E non è altro che un sistema esperto.

Ho provato a scrivere il suo algoritmo, ed è veramente banale, nella forma piu' semplice (domande con sole risposte si/no): una matrice bidimensionale! (una dimensione per ogni possibile tipo di risposta alla domanda).

mad_hhatter
23-01-2007, 22:21
e qual e' la struttura della frase? guarda che dato un insieme di componenti (parole) io potenzialmente posso scrivere infinite frasi (basta aumentare la lunghezza della frase)

ad esempio, con i simboli a,b,c (insieme finito) io posso produrre infinite stringhe!!!

non cambiano solo le parole, perche' un linguaggio reale ha molte costruzioni diverse per dire la stessa cosa!!! Se tu parti dal presupposto che una frase e' "soggetto + verbo + complemento", parti gia' sbagliando perche' non e' assolutamente vero che tutte le frasi seguono quella costruzione.

inoltre, come ho gia' detto, una stessa parola puo' avere funzione logica diversa a seconda della sua posizione nella frase e addirittura significati diversi (pensa addirittura che una stessa identica frase ha significati diversi in base al TONO con cui e' pronunciata o, nel caso di un testo scritto, di come e' inserita nel contesto)... in base a queste osservazioni, come fai a dire che basta considerare tutte e sole le combinazioni delle parole?

Se fosse cosi' ovvio, non pensi che sarebbe gia' realta'?

il problema delle connessioni finite di parole risulta in un algoritmo almeno esponenziale nella taglia della frase, posto che il tuo discorso sia realizzabile in maniera ottimale. Inoltre, dato che parti da un insieme di casi reali non avrai mai la certezza della completezza (a meno che tu non abbia un modo per scrivere TUTTI i testi scrivibili in una lingua... ovviamente impossibile).

di che problema parli? cos'e' l'algoritmo delle 20 domande? e che grado di conoscenza ha? mi piacerebbe capire perche' sarebbe la soluzione alle domande di decenni di studi...

mad_hhatter
23-01-2007, 22:25
p.s.
anche l'algoritmo di "20 questions" e' banale.... ma quel "giochino scemo" ha oggi una conoscenza estremamente vasta dello scibile umano! :eek:
E non è altro che un sistema esperto.

Ho provato a scrivere il suo algoritmo, ed è veramente banale, nella forma piu' semplice (domande con sole risposte si/no): una matrice bidimensionale! (una dimensione per ogni possibile tipo di risposta alla domanda).


e secondo te un algoritmo basato sull'elencazione di tutte le casistiche possibili ha
1. una buona scalabilita' in problemi di conoscenza reale?
2. una conoscenza vasta dello scibile umano?

jumpjack
23-01-2007, 22:41
e secondo te un algoritmo basato sull'elencazione di tutte le casistiche possibili ha
1. una buona scalabilita' in problemi di conoscenza reale?
2. una conoscenza vasta dello scibile umano?
http://www.20q.net/

Ancora qualche anno, e non ci sarà una domanda a cui 20q non sa rispondere! :eek: Piu' la gente lo "sfida" e cerca di "imbrogliarlo" con "parole impossibili", piu' quel sistema esperto impara, impara, impara.... :eek:
E gia' adesso sarebbe possibile usarlo "al contrario": invece di farci "leggere nel pensiero", gli si potrebbe chiedere "qual è quell'animale grosso, col pelo lungo, con le zanne e oggi estinto?" ed avere subito una risposta. Un bel giorno potrebbe esistere un servizion on-line che ti permette di identificare un animale semplicemente descrivendolo.

ma stiamo divagando...

Se è vero che 3 oggetti possono dar luogo a infinite combinazioni, è anche vero che con 3 parole non puoi creare infinite frasi! Anzi, al contrario, sono molte (ma MOLTE) di piu' le frasi senza senso di quelle con un senso compiuto.
Esempio:
quante frasi di senso compiuto puoi scrivere con queste parole e le loro "varianti"?
Io
andare
tornare
mare
montagna

matematicamente, con 6 simboli puoi creare un fottìo (non saprei il numero esatto... :rolleyes: ) di combinazioni.
in italiano, dopo ANDARE puoi mettere solo MARE o MONTAGNA, e prima puoi metterci solo IO (considerando ovviamente solo questo insieme).

Considerando un insieme piu' vasto, avrai comunque limitazioni: dopo ANDARE dovrà esserci per forza un luogo; ovvero, solo una parola "di tipo 'luogo' ".

Probabilmente la cosa piu' difficile sarà insegnare al computer a declinare i verbi e a usare le preposizioni.... ma come tutti sappiamo, una frase come questa è comprensibilissima, anche se sbagliata:
"io anno scorso andare mare"
frase "sbagliata".... ma piu' comprensibile di una normale frase di un traduttore automatico... :rolleyes:

Mi viene in mente un po' il sudoku: all'inizio sembra irrisolvibile, ma poi ti accorgi che in ogni casella puo' andarci quello e solo quel numero, perche' ha ben precise relazioni con una trentina di numeri circostanti (o forse con tutti quelli circostanti? non mi ricordo...)
Chissa' che un sudoku-maniaco (ce ne sono tanti ormai... :D ) non legga queste righe e si faccia venire un'ispirazione....

mad_hhatter
23-01-2007, 22:46
continui a non considerare l'ambiguita' delle parole. e portare casi specifici in cui le cose funzionano bene non e' un buon metodo di analisi dei problemi

jumpjack
23-01-2007, 22:57
continui a non considerare l'ambiguita' delle parole. e portare casi specifici in cui le cose funzionano bene non e' un buon metodo di analisi dei problemi
per insegnare le cose a un "deficiente" (computer, o bambino di 2 anni...), bisogna partire da cose semplici e lineari.
un bambino di 2 anni non capisce quasi niente di cosa gli dici, uno di 6 capisce molto, ma non se gli parli di cose complicate: perche' non conosce abbastanza parole e modi di "interconnetterle".

un PC non capisce un'acca di quello che gli "dici", perche' nessuno gliel'ha mai insegnato!

il grosso problema è riuscire a fare in modo che il PC impari da se', senza dovergli insegnare una per una tutte le parole e i modi in cui interconnetterle! A mano lo si puo' fare per poche parole, ma per un' "istruzione completa", beh... ci vorrebbero o parecchie ore-uomo, o appunto un auto-apprendimento.

mad_hhatter
23-01-2007, 23:04
per insegnare le cose a un "deficiente" (computer, o bambino di 2 anni...), bisogna partire da cose semplici e lineari.
un bambino di 2 anni non capisce quasi niente di cosa gli dici, uno di 6 capisce molto, ma non se gli parli di cose complicate: perche' non conosce abbastanza parole e modi di "interconnetterle".

un PC non capisce un'acca di quello che gli "dici", perche' nessuno gliel'ha mai insegnato!

il grosso problema è riuscire a fare in modo che il PC impari da se', senza dovergli insegnare una per una tutte le parole e i modi in cui interconnetterle! A mano lo si puo' fare per poche parole, ma per un' "istruzione completa", beh... ci vorrebbero o parecchie ore-uomo, o appunto un auto-apprendimento.


questo e' ovvio, ma bisogna prima capire come funziona la capacita' cognitiva umana... e poi trovare le relazioni che noi instauriamo tra i concetti... e tante altre cose... non e' cosi banale come prendere unas erie di parole e associarci un significato o una serie di parole correlate

mad_hhatter
23-01-2007, 23:05
va anche dimostrato che un computer possa avere una semantica!

jumpjack
24-01-2007, 08:41
va anche dimostrato che un computer possa avere una semantica!
gia'. bisognerebbe scoprire se la semantica puo' essere schematizzata da un algoritmo.
al momento non mi ricordo nemmeno la definizione precisa, di semantica... :rolleyes: :muro:
si potrebbe semplificare con "criteri di intercorrelazione tra le parole"?

Gandalf_BD
24-01-2007, 09:26
Guarda... questo argomento a me interessa moltissimo! (anzi... se vuoi ho un file con circa 7000 frasi che ti posso inviare... dimmi tu :))

va però detto che la questione non è così semplice come tu la stai ponendo, secondo me...
Bisognerebbe progettare un parser top-down cazzutissimo (che è decisamente più complesso di uno bottom-up) e in qualche modo (magari interfacciandolo ad un db) cercare di risolvere tutte le ambiguità...
ad esempio: Salespeople sold the dog biscuits come la traduci?
come questa, ci sono un sacco di frasi ambigue, che si possono risolvere soltanto grazie ad una mole non indifferente di statistica (Hidden Markov Models e simili a manetta :eek: ).
Se ti interessa, avevo, tempo fa, scaricato una pubblicazione dell'AAAI sull'argomento, che alla fine non ho mai letto per intero :)

Cmq ti ripeto, a me l'argomento interessa veramente tanto, quindi se vuoi provare a tirare su qualcosa e non vuoi farlo da solo, puoi contattarmi in pm ;)

jumpjack
24-01-2007, 09:59
Guarda... questo argomento a me interessa moltissimo! (anzi... se vuoi ho un file con circa 7000 frasi che ti posso inviare... dimmi tu :))

Che tipo di frasi??? :confused: Manda, manda.... cassioli at libero dot it

ad esempio: come la traduci?
salespeople sold the dog biscuits
come questa, ci sono un sacco di frasi ambigue, che si possono risolvere soltanto grazie ad una mole non indifferente di statistica (Hidden Markov Models e simili a manetta :eek: ).


Il problema dell'inglese è che non usa nè articoli nè preposizioni, e alla stessa parola attribuisce almeno tre significati diversi!!! :muro:
In inglese fanno tutto con UN articolo (THE) e UNA preposizione (TO); in italiano si usano SEI (+3) articoli e NOVE preposizioni!!!

Immagino che questo significhi che tradurre dall'italiano all'inglese sia molto piu' facile (devi eliminare informazioni), mentre dall'inglese all'italiano sarà un casino (devi aggiungere informazioni estrapolandole dal contesto). Per l'inglese bisognerà insegnare al computer molti piu' "blocchi di parole" rispetto all'italiano.
Nel caso di quella frase, servirebbero:
"the dog biscuits"
"dog biscuits"
"salespeople <sell> [object1] [object2]"
<> = verbo da coniugare
[] = tipo di "parte di frase"

Il computer dovrà pero' anche sapere che la parola "sell" non può essere attribuita a un cane, cosi' potra' escludere la traduzione bislacca.

Credo anch'io che serva un top-down, che identifica prima i gruppi di parole piu' grossi, poi gruppetti piu' piccoli e infine singole parole.


Se ti interessa, avevo, tempo fa, scaricato una pubblicazione dell'AAAI sull'argomento, che alla fine non ho mai letto per intero :)

Immagino sarà un mattone allucinante, comunque mandamela... :rolleyes:

Cmq ti ripeto, a me l'argomento interessa veramente tanto, quindi se vuoi provare a tirare su qualcosa e non vuoi farlo da solo, puoi contattarmi in pm ;)
meglio in pubblico, in tanti si pensa meglio! ;)

Gandalf_BD
24-01-2007, 11:16
Che tipo di frasi??? :confused: Manda, manda....
fatto :)
Il problema dell'inglese è che non usa nè articoli nè preposizioni, e alla stessa parola attribuisce almeno tre significati diversi!!! :muro:
In inglese fanno tutto con UN articolo (THE) e UNA preposizione (TO); in italiano si usano SEI (+3) articoli e NOVE preposizioni!!!beh... dimentichi up, on, in , at, upon, over, etc. etc. :D

Immagino che questo significhi che tradurre dall'italiano all'inglese sia molto piu' facile (devi eliminare informazioni), mentre dall'inglese all'italiano sarà un casino (devi aggiungere informazioni estrapolandole dal contesto).onestamente non saprei dirti...
Per l'inglese bisognerà insegnare al computer molti piu' "blocchi di parole" rispetto all'italiano.cosa intendi per "insegnare al computer blocchi di parole"? :wtf:
Immagino sarà un mattone allucinante, comunque mandamela... :rolleyes:già.. lo è :D
cmq mi sono accorto che l'avevo stampata e non ce l'ho più come file... ora la ricerco sul sito e appena la trovo te lo segnalo ;)

meglio in pubblico, in tanti si pensa meglio! ;)
certo! ;)

jumpjack
24-01-2007, 11:28
cosa intendi per "insegnare al computer blocchi di parole"? :wtf:

e' la parte piu' complicata dell'algoritmo, e il motivo dell'incapacità dei traduttori automatici: non si puo' tradurre sempre parola per parola!

salespeople sold the dog biscuits = i commessi vendono i cani biscotti

bisogna raggruppare:
i commessi vendono "biscotti per cani"
"the dog biscuits" è un oggetto solo, anche se è fatto di tre parole.
Anche "the dog" è un oggetto. Come stabilire se raggruppare "the dog" o "the dog biscuits"? Con l' "esperienza", che dice che i commessi non vendono ai cani! Ovvero, sapendo che l'oggetto cui si riferisce "sell" non puo' essere "the dog".

mad_hhatter
24-01-2007, 11:35
Guarda... questo argomento a me interessa moltissimo! (anzi... se vuoi ho un file con circa 7000 frasi che ti posso inviare... dimmi tu :))

va però detto che la questione non è così semplice come tu la stai ponendo, secondo me...
Bisognerebbe progettare un parser top-down cazzutissimo (che è decisamente più complesso di uno bottom-up) e in qualche modo (magari interfacciandolo ad un db) cercare di risolvere tutte le ambiguità...
ad esempio: come la traduci?
come questa, ci sono un sacco di frasi ambigue, che si possono risolvere soltanto grazie ad una mole non indifferente di statistica (Hidden Markov Models e simili a manetta :eek: ).
Se ti interessa, avevo, tempo fa, scaricato una pubblicazione dell'AAAI sull'argomento, che alla fine non ho mai letto per intero :)

Cmq ti ripeto, a me l'argomento interessa veramente tanto, quindi se vuoi provare a tirare su qualcosa e non vuoi farlo da solo, puoi contattarmi in pm ;)


hei, hai letto il charniak????

mad_hhatter
24-01-2007, 11:38
e' la parte piu' complicata dell'algoritmo, e il motivo dell'incapacità dei traduttori automatici: non si puo' tradurre sempre parola per parola!

salespeople sold the dog biscuits = i commessi vendono i cani biscotti

bisogna raggruppare:
i commessi vendono "biscotti per cani"
"the dog biscuits" è un oggetto solo, anche se è fatto di tre parole.
Anche "the dog" è un oggetto. Come stabilire se raggruppare "the dog" o "the dog biscuits"? Con l' "esperienza", che dice che i commessi non vendono ai cani! Ovvero, sapendo che l'oggetto cui si riferisce "sell" non puo' essere "the dog".

proprio qui sta la difficolta'... non e' questione di statistiche, ma di capacita' cognitive

mad_hhatter
24-01-2007, 11:39
comunque oggi si usano piu' le grammatiche context-free probabilistiche che i modelli markoviani

Gandalf_BD
24-01-2007, 11:44
hei, hai letto il charniak????
Statistical Techniques for Natural Language Parsing? si :D

Gandalf_BD
24-01-2007, 11:44
e' la parte piu' complicata dell'algoritmo, e il motivo dell'incapacità dei traduttori automatici: non si puo' tradurre sempre parola per parola!

salespeople sold the dog biscuits = i commessi vendono i cani biscotti

bisogna raggruppare:
i commessi vendono "biscotti per cani"
"the dog biscuits" è un oggetto solo, anche se è fatto di tre parole.
Anche "the dog" è un oggetto. Come stabilire se raggruppare "the dog" o "the dog biscuits"? Con l' "esperienza", che dice che i commessi non vendono ai cani! Ovvero, sapendo che l'oggetto cui si riferisce "sell" non puo' essere "the dog".
si, questo l'avevo capito :D :Prrr:
intendevo sapere come pensi di insegnarle...

mad_hhatter
24-01-2007, 11:54
Statistical Techniques for Natural Language Parsing? si :D

cavolo, ci ho fatto mezza tesi con quel libro! sigh

MEMon
24-01-2007, 11:55
http://www.20q.net/

Ancora qualche anno, e non ci sarà una domanda a cui 20q non sa rispondere! :eek: Piu' la gente lo "sfida" e cerca di "imbrogliarlo" con "parole impossibili", piu' quel sistema esperto impara, impara, impara.... :eek:
E gia' adesso sarebbe possibile usarlo "al contrario": invece di farci "leggere nel pensiero", gli si potrebbe chiedere "qual è quell'animale grosso, col pelo lungo, con le zanne e oggi estinto?" ed avere subito una risposta. Un bel giorno potrebbe esistere un servizion on-line che ti permette di identificare un animale semplicemente descrivendolo.

ma stiamo divagando...

Se è vero che 3 oggetti possono dar luogo a infinite combinazioni, è anche vero che con 3 parole non puoi creare infinite frasi! Anzi, al contrario, sono molte (ma MOLTE) di piu' le frasi senza senso di quelle con un senso compiuto.
Esempio:
quante frasi di senso compiuto puoi scrivere con queste parole e le loro "varianti"?
Io
andare
tornare
mare
montagna

matematicamente, con 6 simboli puoi creare un fottìo (non saprei il numero esatto... :rolleyes: ) di combinazioni.
in italiano, dopo ANDARE puoi mettere solo MARE o MONTAGNA, e prima puoi metterci solo IO (considerando ovviamente solo questo insieme).

Considerando un insieme piu' vasto, avrai comunque limitazioni: dopo ANDARE dovrà esserci per forza un luogo; ovvero, solo una parola "di tipo 'luogo' ".

Probabilmente la cosa piu' difficile sarà insegnare al computer a declinare i verbi e a usare le preposizioni.... ma come tutti sappiamo, una frase come questa è comprensibilissima, anche se sbagliata:
"io anno scorso andare mare"
frase "sbagliata".... ma piu' comprensibile di una normale frase di un traduttore automatico... :rolleyes:

Mi viene in mente un po' il sudoku: all'inizio sembra irrisolvibile, ma poi ti accorgi che in ogni casella puo' andarci quello e solo quel numero, perche' ha ben precise relazioni con una trentina di numeri circostanti (o forse con tutti quelli circostanti? non mi ricordo...)
Chissa' che un sudoku-maniaco (ce ne sono tanti ormai... :D ) non legga queste righe e si faccia venire un'ispirazione....
Io stavo pensando ad uno scarabocchio e nn ha indovinato, anzi dice che proprio non lo conosce, ma nessuno ha mai pensato ad uno scarabocchio?
Poi ho riprovato e non lo conosce lostesso, quindi?

mad_hhatter
24-01-2007, 12:32
Io stavo pensando ad uno scarabocchio e nn ha indovinato, anzi dice che proprio non lo conosce, ma nessuno ha mai pensato ad uno scarabocchio?
Poi ho riprovato e non lo conosce lostesso, quindi?


quindi e' solo un sistema esperto... usa statistiche e grosse collezioni di dati, ricerca gli oggetti piu' probabili data una serie di indizi... anche le domande vengono scelte in questo modo, suppongo... e' un gioco molto complesso, ma non magico

Gandalf_BD
24-01-2007, 12:36
cavolo, ci ho fatto mezza tesi con quel libro! sigh
ah no... aspetta... riprendendolo in mano, vedo che è solo un abstract...
pensavo che fose un articolo di una decina di pagine a se stante, ma se mi dici che ci hai fatto la tesi penso che sia un librone ben più grosso.. :D

mad_hhatter
24-01-2007, 12:49
ah no... aspetta... riprendendolo in mano, vedo che è solo un abstract...
pensavo che fose un articolo di una decina di pagine a se stante, ma se mi dici che ci hai fatto la tesi penso che sia un librone ben più grosso.. :D


no no, non e' un librone, sono solo 200 pagine circa mi sembra, niente di che, ma contiene molti spunti...

jumpjack
24-01-2007, 14:06
comunque oggi si usano piu' le grammatiche context-free probabilistiche che i modelli markoviani
non so di cosa parli... :rolleyes:

mad_hhatter, certo che è solo un sistema esperto! Non fa nessun "ragionamento", si basa semplicemente su una "tabella".
Supponendo ci siano solo risposte "si" e "no", basta avere una tabella in cui a ogni colonna corrisponde una domanda e a ogni casella un "si" o un "no": otterrai che ogni riga contenete una combinazione diversa di si/no corrisponde a un oggetto.
Se qualcuno propone un oggetto che corrisponde a una riga ma non è quell'oggetto, il giocatore "vince" e deve insegnare al Sistema come si chiama l'oggetto. Queste "sconfitte" si hanno perche' le domande possibili sono centinaia, ma ne vengono poste solo 20 o 30.
Ricordo che anni fa giocai a una versione di questo gioco che, quando ti chiedeva il nome dell'oggetto, ti chiedeva anche la domanda con cui distinguerlo dagli altri. Non so perche 20q non lo preveda...

jumpjack
24-01-2007, 14:07
Io stavo pensando ad uno scarabocchio e nn ha indovinato, anzi dice che proprio non lo conosce, ma nessuno ha mai pensato ad uno scarabocchio?
Poi ho riprovato e non lo conosce lostesso, quindi?
o non hai aggiunto tu il nome quando lui si è "arreso", oppure hai risposto diversamente a una o piu' domande la seconfa volta.
Ora ci provo io con scarabocchio...

edit: azz, dall'ufficio non funziona... :rolleyes:

mad_hhatter
24-01-2007, 15:38
non so di cosa parli... :rolleyes:

mad_hhatter, certo che è solo un sistema esperto! Non fa nessun "ragionamento", si basa semplicemente su una "tabella".
Supponendo ci siano solo risposte "si" e "no", basta avere una tabella in cui a ogni colonna corrisponde una domanda e a ogni casella un "si" o un "no": otterrai che ogni riga contenete una combinazione diversa di si/no corrisponde a un oggetto.
Se qualcuno propone un oggetto che corrisponde a una riga ma non è quell'oggetto, il giocatore "vince" e deve insegnare al Sistema come si chiama l'oggetto. Queste "sconfitte" si hanno perche' le domande possibili sono centinaia, ma ne vengono poste solo 20 o 30.
Ricordo che anni fa giocai a una versione di questo gioco che, quando ti chiedeva il nome dell'oggetto, ti chiedeva anche la domanda con cui distinguerlo dagli altri. Non so perche 20q non lo preveda...

appunto, non ha a che fare con l'intelligenza, ma è solo una macchina molto complessa... per una traduzione servono ben altre capacità...

una grammatica context free è un modello matematico e computazionale per un linguaggio ed è comunemente usata come approssimazione per un linguaggio reale

tra l'altro, è anche il sistema con cui la macchina raggruppa le parole (usando i cosiddetti algoritmi di parsing)!!

jumpjack
24-01-2007, 21:48
cavoli, studiandomi bene la cosa mi sto rendendo conto di quanto sarebbe LUNGO (piu' che COMPLICATO) spiegare al computer tutta la grammatica e l'analisi logica in italiano e in inglese!!!

Si', perche' mi sono reso conto solo ora che in pratica è questo il problema: un "umano" ci mette 6 anni per imparare "a orecchio" i rudimenti della grammatica e dell'analisi logica, per poi affinarla in successivi 5 anni di scuola.
Come ficcare 6 anni di autoapprendimento e 5 di insegnamento dentro a un computer senza impiegare 11 anni??? :eek: :muro:
tanto piu' che un computer è molto piu' idiota di un neonato.... :muro:
mmmmh..... :mc:
Non credo sia impossibile.... credo sia solo LUUUUUUUUNGO da farsi!
Bisognerebbe capire come applicare la programmazione a oggetti per assegnare ad ogni parola del vocabolario (o anche solo a 3-4000) le "proprieta" e i "metodi" adatti a farle corrispondere alle parole "reali". :eek:

Cioe', una parola potrebbe avere la proprietà "tipo", che puo' assumere i valori "sostantivo", "aggettivo", "articolo", "avverbio" ecc... ; madovrebbe avere anche una proprietà che definisca da che tipo di parola puo' essere seguita, e preceduta, e che tipo di punteggiatura gli puo' essere associato, e che complemento puo' rappresentare, e che... ca****! :eek: :confused: :muro: :doh:

Forse è meglio limitarsi a una traduzione pedissequa basata sul riconoscimento di frasi note e gruppi noti. Che pure gli vanno insegnati.
Due palle.... :muro:

mad_hhatter
24-01-2007, 22:39
cavoli, studiandomi bene la cosa mi sto rendendo conto di quanto sarebbe LUNGO (piu' che COMPLICATO) spiegare al computer tutta la grammatica e l'analisi logica in italiano e in inglese!!!

Si', perche' mi sono reso conto solo ora che in pratica è questo il problema: un "umano" ci mette 6 anni per imparare "a orecchio" i rudimenti della grammatica e dell'analisi logica, per poi affinarla in successivi 5 anni di scuola.
Come ficcare 6 anni di autoapprendimento e 5 di insegnamento dentro a un computer senza impiegare 11 anni??? :eek: :muro:
tanto piu' che un computer è molto piu' idiota di un neonato.... :muro:
mmmmh..... :mc:
Non credo sia impossibile.... credo sia solo LUUUUUUUUNGO da farsi!
Bisognerebbe capire come applicare la programmazione a oggetti per assegnare ad ogni parola del vocabolario (o anche solo a 3-4000) le "proprieta" e i "metodi" adatti a farle corrispondere alle parole "reali". :eek:

Cioe', una parola potrebbe avere la proprietà "tipo", che puo' assumere i valori "sostantivo", "aggettivo", "articolo", "avverbio" ecc... ; madovrebbe avere anche una proprietà che definisca da che tipo di parola puo' essere seguita, e preceduta, e che tipo di punteggiatura gli puo' essere associato, e che complemento puo' rappresentare, e che... ca****! :eek: :confused: :muro: :doh:

Forse è meglio limitarsi a una traduzione pedissequa basata sul riconoscimento di frasi note e gruppi noti. Che pure gli vanno insegnati.
Due palle.... :muro:


ripeto: senza la semantica di una parola non si va da nessuna parte perche' non e' possibile decidere quale dei suoi molteplici significati utilizzare... associare ad ogni parola quella che puo' seguire o precedere e' lunghissimo, macchinoso, poco utile e molto limitante...

wingman87
25-01-2007, 00:19
Magari con un database di blocchi di parole e parole singole e relative traduzioni si potrebbe fare qualcosa di funzionante, in pratica basta sostituire ai blocchi individuati le relative traduzioni dando la precedenza ai blocchi più lunghi xò ci metterebbe comunque un sacco ad elaborare..
Visto che avete grossi file di frasi, non è che qualcuno di voi ha anche dei file di conversazioni? Mi servirebbe un file strutturato in questo modo:
DOMANDA
RISPOSTA
DOMANDA
RISPOSTA
ecc...
ogni domanda una riga e lo stesso ogni risposta... Anche se avete qualcosa di simile provo ad adattarla io... Mi serve per darle in pasto a un programmino che ho fatto...

mad_hhatter
25-01-2007, 00:33
Magari con un database di blocchi di parole e parole singole e relative traduzioni si potrebbe fare qualcosa di funzionante, in pratica basta sostituire ai blocchi individuati le relative traduzioni dando la precedenza ai blocchi più lunghi xò ci metterebbe comunque un sacco ad elaborare..
Visto che avete grossi file di frasi, non è che qualcuno di voi ha anche dei file di conversazioni? Mi servirebbe un file strutturato in questo modo:
DOMANDA
RISPOSTA
DOMANDA
RISPOSTA
ecc...
ogni domanda una riga e lo stesso ogni risposta... Anche se avete qualcosa di simile provo ad adattarla io... Mi serve per darle in pasto a un programmino che ho fatto...


in base a quale criterio vanno privilegiati i blocchi piu' lunghi?

wingman87
25-01-2007, 01:00
Se traduco a blocchi piccoli, e quindi le singole parole, viene una schifezza, più il blocco è lungo invece più la traduzione della porzione di testo che gli corrisponde è esatta.. non so tipo:
This morning I've left my carf at school
I metodo:
Questo mattina io avere lasciato mio sciarpa a scuola
II metodo:
Questa mattina (this morning) Ho lasciato (I've left) La mia sciarpa (my carf) A scuola (at school)

Xò dipende sempre dal database che c'è dietro, magari non era presente il blocco -my carf- e allora traduceva le singole parole -mio- -sciarpa-

mad_hhatter
25-01-2007, 01:10
Se traduco a blocchi piccoli, e quindi le singole parole, viene una schifezza, più il blocco è lungo invece più la traduzione della porzione di testo che gli corrisponde è esatta.. non so tipo:
This morning I've left my carf at school
I metodo:
Questo mattina io avere lasciato mio sciarpa a scuola
II metodo:
Questa mattina (this morning) Ho lasciato (I've left) La mia sciarpa (my carf) A scuola (at school)

Xò dipende sempre dal database che c'è dietro, magari non era presente il blocco -my carf- e allora traduceva le singole parole -mio- -sciarpa-


si ok questo e' corretto, ma possiamo escludere che ci siano casi in cui un blocco lungo comprende parole che nella frase in questione andrebbero divise?

Gandalf_BD
25-01-2007, 09:50
secondo me "basterebbe" appoggiarsi a un database già esistente, tipo WordNet, per intenderci...

jumpjack
25-01-2007, 09:57
secondo me "basterebbe" appoggiarsi a un database già esistente, tipo WordNet, per intenderci...

cavoli, ma allora esiste una risorsa del genere! :eek:
solo per l'inglese, naturalmente... :muro: :muro:
ma è già qualcosa, anzi molto! :)

jumpjack
25-01-2007, 10:02
ESISTE! ESISTE! :sofico:
http://multiwordnet.itc.it/english/home.php

MultiWordNet, developed by Luisa Bentivogli [email] and others is a multilingual lexical database, developed at ITC-irst, in which the Italian WordNet is strictly aligned with Princeton WordNet 1.6. The current version includes around 44,400 Italian lemmas organized into 35,400 synsets which are aligned, whenever possible, with their corresponding English Princeton synsets.

jumpjack
25-01-2007, 10:13
ESISTE! ESISTE! :sofico:
http://multiwordnet.itc.it/english/home.php
mmmh...
qualcuno mi spiega come si usa??? :confused:

Gandalf_BD
25-01-2007, 10:23
non lo so... io ho sempre usate questo --> http://wordnet.princeton.edu/

:)

mad_hhatter
25-01-2007, 12:56
molto interessante... ma sposta soltanto il problema... intanto devi decidere come organizzare le parole perche' se tu sbagli il raggruppamento non c'e' niente da fare... inoltre devi comunque scegliere tra varie alternative... resta comunque un ottimo dizionario, almeno dalle 3-4 prove che ho fatto, molto piu' "intelligente" e utile della media.

Gandalf_BD
25-01-2007, 14:14
si, infatti... rimane "solo" un buon punto di partenza...
secondo me, per poter realizzare un traduttore (o comunque qualcosa che capisca il significato di ciò che c'è scritto) è necessario realizzare prima un buon analizzatore logico...

mad_hhatter
25-01-2007, 15:35
si, infatti... rimane "solo" un buon punto di partenza...
secondo me, per poter realizzare un traduttore (o comunque qualcosa che capisca il significato di ciò che c'è scritto) è necessario realizzare prima un buon analizzatore logico...

esatto. il problema e' che la logica non e' una propreita' posizionale, non e' legata alla posizione delle aprole nella frase, o almeno, non del tutto. Il problema grosso e' che per capire il significato della frase serve almeno un'analisi della sua struttura logica, ma contemporaneamente quest'ultima necessita una comprensione globale della frase stessa

Gandalf_BD
25-01-2007, 15:53
secondo me, però, si può provare a fare un'analisi in base solamente alla posizione (aiutati da un po' di probabilità e senza pretendere l'infallibilità assoluta :D ), almeno nell'inglese...

mad_hhatter
25-01-2007, 17:58
secondo me, però, si può provare a fare un'analisi in base solamente alla posizione (aiutati da un po' di probabilità e senza pretendere l'infallibilità assoluta :D ), almeno nell'inglese...

infatti le tecniche odierne lavorano cosi'... a livello operativo e' meglio un algoritmo che funziona bene nel caso medio piuttosto che un complicatissimo o costosissimo algoritmo completo che magari funziona alla perfezione soltanto in determinate situazioni ben controllate... resta il fatto che un buon traduttore e' molto lontano...

Gandalf_BD
25-01-2007, 18:16
infatti le tecniche odierne lavorano cosi'... a livello operativo e' meglio un algoritmo che funziona bene nel caso medio piuttosto che un complicatissimo o costosissimo algoritmo completo che magari funziona alla perfezione soltanto in determinate situazioni ben controllate... resta il fatto che un buon traduttore e' molto lontano...
ok... quando si parte? :D :D :D :D :sofico: :sofico: :sofico: :sofico: :angel: :angel: :angel: :angel:

mad_hhatter
26-01-2007, 00:41
ragazzi, ci risentiamo tra un mese, domani parto per Shanghai... a presto :)

Gandalf_BD
26-01-2007, 10:30
ragazzi, ci risentiamo tra un mese, domani parto per Shanghai... a presto :)
azz! :eek:
buon viaggio :)