Newsgroup: it.comp.ia
Titolo: [PCBRAIN V.2.0] Analizzatore logico...

Ciao a tutti,
sto realizzando un nuovo analizzatore logico. Supponendo che l'analizzatore
grammaticale alla base funzioni ipoteticamente al 100%, come posso
realizzare un analizzatore logico? La mia idea era questa: cerca il verbo,
se esiste, cerca il soggetto (il termine (in ordine di importanza:
sostantivo o nome proprio o aggettivi o pronimi) posto PRIMA del verbo), e
l'oggetto (posto dopo del verbo, in ordine di importanza: sostantivi, nomi
propri, aggettivi, pronomi, avverbi). Il tutto viene basato su di un ciclo
che continua finche non viene trovata la combinazione migliore di
soggetto-verbo-complemento oggetto/predicato.
Il tutto funziona bene, anche con frasi complesse, ma standard:
<cut>
---] il mio bellissimo cane mangia sempre la mia cena [---------------
[il]
(il) Articolo det
(il) Pronome pers masc sing
(io) Pronome pers masc sing
[mio]
(mio) Aggettivo poss masc sing
[bellissimo]
(bello) Aggettivo masc sing
[cane]
(cane) Sost masc sing
(cane) Sost masc sing
(cane) Sost femm plur
[mangia]
(mangiare) Verbo trans 1a coniug 3a pers sing
[sempre]
(sempre) Avverbio
(sempre) Avverbio
[la]
(la) Articolo det
(la) Articolo det
(le) Articolo det
(li) Pronome pers femm sing
(lo) Articolo det
[mia]
(mio) Aggettivo poss femm sing
[cena]
(cena) Sost femm sing
(cenare) Verbo intran 1a coniug 3a pers sing
(cenere) Sost femm sing
(cenere) Sost femm sing
(cenere) Sost femm sing
[Analisi logica]
cane> Soggetto
mangia> Verbo principale
cena> Oggetto
</cut>
PS: gia che ci sono vi posto anche un esempio di frase passiva ;)) :
<cut>
---] il gatto viene picchiato dal padrone [---------------
[il]
(il) Articolo det
(il) Pronome pers masc sing
(io) Pronome pers masc sing
[gatto]
(gatto) Sost masc sing
(gatta) Sost masc sing
[viene]
(venire) Verbo Irr intran 3a coniug 3a pers sing ausil
[picchiato]
(picchiato) Aggettivo masc sing
(picchiare) Verbo trans 1a coniug no pers plur
(picchiata) Sost masc sing
[dal]
(dal) Preposizione articolata
(dai) Preposizione articolata
[padrone]
(padrone) Sost masc sing
(padrone) Sost femm plur
[Analisi logica]
gatto> Oggetto
picchiato> Verbo principale
padrone> Soggetto
</cut>
Pero ho dei problemi con:
- soggetto sottointeso
- forme verbali molto complesse (con ausiliare + verbo me la cavo ancora)
- riflessivi
- frasi in cui viene spostato l'ordine di soggetto - verbo - oggetto
Per il resto l'analizzatore grammaticale di PCBrain funziona sempre meglio!
Ho inserito circa 700 nomi propri (di cui il dizionario era sprovvisto) e
ora sto cercando di inserirli nel contesto del dizionario (non mi ci vorrà
molto cmq).
Insomma, il programma promette bene, ma ci sono moltissimi casi particolari
della sfigatissima grammatica italiana che devono ancora essere presi in
considerazione! Chi mi da qualche aiutino?
Grazie in anticipo,
Dome
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
PC Brain Official Web Site
http://digilander.iol.it/pcbrain
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

 realizzare un analizzatore logico?
Se hai ancora un po di pazienza , sto implementando un analizzatore
sintattico per grammatiche generiche di tipo LL(1) tra le quali rientra
anche una possibile formalizzazione della grammatica italiana. Da l'analisi
sintattica si può risalire abbastanza facilmente all'analisi "logica"della
frase. Il problema è scrivere una grammatica in notazione BNF della lingua
italiana che sia la più completa possibile, che sia LL(1) e che non sia
ricorsiva a sinistra( cosa comunque alla quale si può quasi sempre
rimediare)
Milliken

 realizzare un analizzatore logico?
Puoi cercare dati sulle ATN, Augmented Transition Networks... non sono un
esperto, ma ricordo che erano una delle possibili strutture proposte per
l'analisi sintattica-logica di una proposizione.
Stefano

 wrote:
| Ciao a tutti,
| sto realizzando un nuovo analizzatore logico. ...
| La mia idea era questa: cerca il verbo,
| se esiste, cerca il soggetto (il termine (in ordine di importanza:
| sostantivo o nome proprio o aggettivi o pronimi) posto PRIMA del verbo)
non è la posizione che devi controllare, ma la concordanza
| <cut>
| Per il resto l'analizzatore grammaticale di PCBrain funziona sempre meglio!
Secondo me se inizi con l'analisi grammaticale non vai lontano.
ecco una prova che ho fatto con PCBrain scaricato dal sito tempo fa.
=====================
Debug info di PCBrain
=====================
---] la sera è calata [---------------
la> (la) Articolo det
sera> (sera) Sost femm sing
e'> (  sere) Verbo Irr intran 2a coniug 3a pers sing
calata> (calata) Sost femm sing                       *
---] la vecchia porta la sbarra [---------
--------------------- E IL VERBO ? (tra portare e sbarrare, nessuno)
la> (la) Articolo det
vecchia> (vecchio) Aggettivo femm sing
porta> (porta) Sost femm sing
la> (la) Articolo det
sbarra> (sbarra) Sost femm sing
---] non è un avverbio [-----------------------------------
----------------------- Questa era difficile.      NON=sostantivo
non> (non) Avverbio                                   *
e'> (  sere) Verbo Irr intran 2a coniug 3a pers sing
un> (un) Articolo indet
avverbio> (avverbio) Sost masc sing
---] il rosso è il mio colore preferito, non il tuo [---------------
il> (il) Articolo det
rosso> (rosso) Aggettivo masc sing                    *
e'> (  sere) Verbo Irr intran 2a coniug 3a pers sing
il> (il) Articolo det
mio> (mio) Aggettivo poss masc sing
colore> (colore) Sost masc sing
preferito> (preferito) Aggettivo masc sing
non> (non) Avverbio
il> (il) Articolo det
tuo> (tuo) Aggettivo poss masc sing
---] il gelato è buono [---------------
il> (il) Articolo det
gelato> (gelato) Aggettivo masc sing                  *
e'> (  sere) Verbo Irr intran 2a coniug 3a pers sing
buono> (buono) Sost masc sing
========================================
... quindi, meglio partire con l'analisi logica
Sani
Furlit
________________________________
reply-to x rot13 per contattarmi

> ... quindi, meglio partire con l'analisi logica
Uhmmmm... a dire il vero è proprio quello che ho detto ;)
La versione che c'è sul sito di PCBrain è vecchiotta. L'analizzatore allo
stato attuale (anche se sono fermo) propone tutte le possibili alternative.
Ti faccio vedere un output per le tue frasi:
---] la vecchia porta la sbarra [---------------
[la]
(la) Articolo det
(la) Articolo det
(le) Articolo det
(li) Pronome pers femm sing
(lo) Articolo det
[vecchia]
(vecchio) Aggettivo femm sing
[porta]
(porta) Sost femm sing
(portare) Verbo trans 1a coniug 3a pers sing
(porto) Sost femm sing
[la]
(la) Articolo det
(la) Articolo det
(le) Articolo det
(li) Pronome pers femm sing
(lo) Articolo det
[sbarra]
(sbarra) Sost femm sing
(sbarrare) Verbo trans 1a coniug 3a pers sing
[Analisi logica]
vecchia> Soggetto
porta> Verbo principale
sbarra> Oggetto
<ehm... qui forse sono scemo io... ;)) ma a me sembra che la l'analisi
logica ci abbia preso!>
---] il rosso è il mio colore preferito, non il tuo  [---------------
[il]
(il) Articolo det
(il) Pronome pers masc sing
[rosso]
(rosso) Aggettivo masc sing
[e']
(
) Verbo Irr intran 2a coniug 3a pers sing ausil
[il]
(il) Articolo det
(il) Pronome pers masc sing
[mio]
(mio) Aggettivo poss masc sing
[colore]
(colore) Sost masc sing
(colorire) Verbo trans 3a coniug 3a pers sing
(colore) Sost femm plur
[preferito]
(preferito) Aggettivo masc sing
(preferire) Verbo trans 3a coniug no pers plur
[non]
(non) Avverbio
[il]
(il) Articolo det
(il) Pronome pers masc sing
[tuo]
(tuo) Aggettivo poss masc sing
[Analisi logica]
rosso> Soggetto
colore> Verbo principale
il> Oggetto
<qui il problema nasce dal fatto che è una periodo composto da due frasi:
"il rosso è il mio colore preferito", "il rosso non è il tuo colore
preferito" Per districarmi in questi casi sto progettando un analizzatore e
risolutore del periodo>
---] il gelato è buono  [---------------
[il]
(il) Articolo det
(il) Pronome pers masc sing
[gelato]
(gelato) Aggettivo masc sing
(gelare) Verbo trans 1a coniug no pers plur
(gelata) Sost masc sing
[e']
(
) Verbo Irr intran 2a coniug 3a pers sing ausil
[buono]
(buono) Sost masc sing
[Analisi logica]
gelato> Soggetto
e'> Verbo principale
buono> Predicato
<qui non c'è difficoltà>
---] non è un avverbio [---------------
[non]
(non) Avverbio
[e']
(
) Verbo Irr intran 2a coniug 3a pers sing ausil
[un]
(un) Articolo indet
[avverbio]
(avverbio) Sost masc sing
Impossibile risalire alle singole componenti logiche della frase
<eheh... c'hai ragione... questa è davvero difficile. Se mai un giorno
PCBrain dovesse risolvere una frase del genere senza "trucchetti" mi sa che
lo brevetto ^_^>
Dome

 wrote:
| 
| > ... quindi, meglio partire con l'analisi logica
| Uhmmmm... a dire il vero è proprio quello che ho detto ;)
infatti volevo esprimere approvazione per il lavoro che vuoi fare
| La versione che c'è sul sito di PCBrain è vecchiotta. L'analizzatore allo
| stato attuale (anche se sono fermo) propone tutte le possibili alternative.
| Ti faccio vedere un output per le tue frasi:
| 
| ---] la vecchia porta la sbarra [---------------
...<cut>
| [Analisi logica]
| vecchia> Soggetto
| porta> Verbo principale
| sbarra> Oggetto
| 
| <ehm... qui forse sono scemo io... ;)) ma a me sembra che la l'analisi
| logica ci abbia preso!>
cvd: la sola analisi grammaticale era uscita con un esito privo di
verbo. La AL ha trovato una soluzione corretta. Avrebbe però dovuto
evidenziare i due possibili significati della frase: 1=come sopra, 2=
vecchia> aggettivo
porta> soggetto
sbarra> verbo
| 
| ---] non è un avverbio [---------------
| [non]
| (non) Avverbio
| [e']
| (
| ) Verbo Irr intran 2a coniug 3a pers sing ausil
| [un]
| (un) Articolo indet
| [avverbio]
| (avverbio) Sost masc sing
| Impossibile risalire alle singole componenti logiche della frase
| <eheh... c'hai ragione... questa è davvero difficile. Se mai un giorno
| PCBrain dovesse risolvere una frase del genere senza "trucchetti" mi sa che
| lo brevetto ^_^>
...te lo auguro. Penso che questa frase potrebbe essere usata come un
test standard per vedere quanto è 'intelligente' un CB.
--
Sani
Furlit
______________________________
reply-to x rot13 per scrivermi

 test standard per vedere quanto è 'intelligente' un CB.
Uhmmmmmmmmmmmmm
giusto
potremmo tenerla nelle liste di prove da superare per un chatterbot nella
famosa gara di Ombra!


Dome
--------------------------------
Inviato via 
http://usenet.iol.it
 

 wrote:
| > | ---] la vecchia porta la sbarra [---------------
| ... eh si! Non l'ho mica capita sta cosa?! Come potrebbe essere la frase???
| la vecchia porta la sbarra, con soggetto la porta, e sbarra come verbo non
| mi sembra italiano ;))))
<romanzo>
Eloisa decide di portare Francesco fuori dal tunnel. Pensa di passare
dalla stessa via da cui č entrata. Purtroppo non č piů possibile.
La vecchia porta la sbarra.
</romanzo>


 La vecchia porta la sbarra.
ahhhhhhh l'ho capita!!
ma daiiiiiiiiiiiiiii ;))) sto romanzo è bellino, lo vendono in libreria?
cosa è, una disperata storia di amore? ;))))
Comunque la frase è corretta... sono io che ho una preferenza grammaticale
diversa (avrei detto "la vecchia porta la ostacola", che è molto piu
diretto.. ma queste sono preferenze mie ;)) )
Grazie per l'aiuto!
Ciao,
Domenico


Scherzi a parte... il mito lentini pare aver rinunciato a replicare.... o
meglio... sara da qualche parte rintanato... perche ho fatto una ricerchina,
e non compaiono suoi messaggi sui NG di mezzo mondo dal 16 novembre! ;)
LOL
Dome

 wrote:
| (avrei detto "la vecchia porta la ostacola", che è molto piu
| diretto.. 
un ostacolo si presume superabile, seppur con difficoltà, che so...
ricorrendo all'aiuto di una personalità virtuale ..., uno sbarramento
no ;-)


 italiana che sia la più completa possibile, che sia LL(1) 
E noto che non si puo', al limite se puo' costruire una molto
semplificata.
Ciao R.
-- 
Inviato il gio 22 nov 2001 17:33:30 CET da 
fw01-e31.inferentia.net
[217.29.160.1]
http://www.neuromante.net/

 semplificata.
Infatti io avevo detto "che sia la piů completa possibile". Comunque credo
che se ne potrebbe costruire una completa all'80 per cento almeno...
Il problema risiede molto anche nel vincolo LL(1)
--
          ___          ____
        /  __         /___/
      /__/         /___/
Giacomo Bellucci           
giaco...@tiscalinet.it
 
mill...@infinito.it


 lo brevetto ^_^>
Il problema è che questa frase è veramente ambigua: potrebbe effettivamente
anche essere una risposta (con il soggetto sottinteso) ad una frase detta da
un interlocutore. Neanche un umano potrebbe decidere senza conoscere la
frase precedente.
Per quanto riguarda il caso della frase mi è venuta un'idea. Ecco due
elementi da cui si potrebbe capire che 'non' è il soggetto:
1) Questo (dai miei  ricordi della grammatica studiata a scuola) è il
classico esempio di frase con funzione metalinguistica. PCBrain potrebbe
essere modificato per cercare di riconoscere questo tipo di frasi (la
presenza di parole tipiche della grammatica come 'avverbio' potrebbero
essere un segno distintivo) e stare in guardia: sa che per soggetto potrebbe
esserci anche una parola che di solito non è presente in questa funzione.
2) PCBrain dovrebbe capire che se prima non c'è nessuna frase non può
esserci un soggetto sottointeso e quindi cercare il soggetto a tutti i
costi.
Come si comporta PCBrain per frasi simili ma un po' meno ambigue (es. "Il è
un articolo")?