n° 215
Luglio 2017
Luglio 27, 2017, 02:42:20 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: soggetto in analisi logica  (Letto 1643 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
alkowex
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 10


Mostra profilo E-mail
« inserita:: Febbraio 10, 2017, 10:16:04 »

voglio trovare il soggetto nella frasi. Il problema è che il soggetto non è facile da trovare perche può prima o dopo il predicato oppure può essere un (nome, aggettivo, pronome ecc..), ma il soggetto è sempre legato logicamente al predicato , ho visto che alcuni siti di analisi logica online riescono a trovare il soggetto, come fanno??
Registrato
Roberto Allegra
Global Moderator
Hero Member
*****

Karma: +50/-1
Scollegato Scollegato

Messaggi: 2102



Mostra profilo WWW
« Risposta #1 inserita:: Febbraio 10, 2017, 02:51:30 »

Bella domanda.

La prima cosa da dire è che tutto ciò che riguarda il ramo dell'Intelligenza Artificiale noto come Natural Language Processing è estremamente complicato, e ad oggi siamo ancora molto lontani non solo dalla perfezione, ma anche dall'avere strumenti decentemente affidabili. Quindi: non c'è una soluzione facile al problema di effettuare l'analisi logica di una frase.

La ragione è semplice: gli umani parlano in modo confuso, complicato, spesso incompleto e ambiguo. E lo fanno perché sanno che tante cose sono desumibili dal contesto. Per rispolverare un vecchio classico sempre efficace, pensa a questa frase:

La vecchia porta la sbarra

Qual è il soggetto qui? La porta? La vecchia? Un umano può saperlo solo ragionando in base al contesto. Nel paragrafo precedente si accenna ad un'anziana? O a una via che viene sbarrata?

Non arriveremo MAI ad avere strumenti affidabili finché non disporremo di Intelligenze Artificiali in grado di capire il senso di una frase, o di leggere un libro e capire effettivamente di cosa stia parlando. Inutile dire che siamo ancora ad anni luce di distanza.

Premesso questo, gli strumenti che abbiamo tentano di fare il possibile per rielaborare l'albero sintattico più probabile a partire dalla frase data. La parola chiave è: "più probabile", che fa intuire che molti metodi per arrivarci usino un modello statistico della lingua, e un bel po' di teoria della probabilità.

Se sei a digiuno di statistica potresti trovarti molto a disagio a studiare i dettagli. Ma in ogni caso puoi sperimentare con python usando il Natural Language Toolkit, in congiunzione con lo studio di risorse come l'ottimo libro di Bird, Klein e Looper "Analyzing Text with the Natural Language Toolkit", liberamente disponibile in rete.
Registrato

I moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.
alkowex
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 10


Mostra profilo E-mail
« Risposta #2 inserita:: Febbraio 10, 2017, 04:56:19 »

Bella domanda.

La prima cosa da dire è che tutto ciò che riguarda il ramo dell'Intelligenza Artificiale noto come Natural Language Processing è estremamente complicato, e ad oggi siamo ancora molto lontani non solo dalla perfezione, ma anche dall'avere strumenti decentemente affidabili. Quindi: non c'è una soluzione facile al problema di effettuare l'analisi logica di una frase.

La ragione è semplice: gli umani parlano in modo confuso, complicato, spesso incompleto e ambiguo. E lo fanno perché sanno che tante cose sono desumibili dal contesto. Per rispolverare un vecchio classico sempre efficace, pensa a questa frase:

La vecchia porta la sbarra

Qual è il soggetto qui? La porta? La vecchia? Un umano può saperlo solo ragionando in base al contesto. Nel paragrafo precedente si accenna ad un'anziana? O a una via che viene sbarrata?

Non arriveremo MAI ad avere strumenti affidabili finché non disporremo di Intelligenze Artificiali in grado di capire il senso di una frase, o di leggere un libro e capire effettivamente di cosa stia parlando. Inutile dire che siamo ancora ad anni luce di distanza.

Premesso questo, gli strumenti che abbiamo tentano di fare il possibile per rielaborare l'albero sintattico più probabile a partire dalla frase data. La parola chiave è: "più probabile", che fa intuire che molti metodi per arrivarci usino un modello statistico della lingua, e un bel po' di teoria della probabilità.

Se sei a digiuno di statistica potresti trovarti molto a disagio a studiare i dettagli. Ma in ogni caso puoi sperimentare con python usando il Natural Language Toolkit, in congiunzione con lo studio di risorse come l'ottimo libro di Bird, Klein e Looper "Analyzing Text with the Natural Language Toolkit", liberamente disponibile in rete.
Ciao Roberto ho pensato alla tua frase "la vecchia porta la sbarra", e ho cercato di ricostruire i passaggi mentali per implementarli nella realtà, possiamo risolvere la frase affermando che bisogna trovare prima il verbo e qui ce ne potrebbero essere due "porta", e "sbarra", ma la grammatica ci insegna che i verbi non cominciano con un articolo quindi "sbarra" è un nome, poi il programma deve capire che in ogni frase separata da punti forti, ci deve essere un predicato che in questo caso dovrebbe essere "vecchia" o "porta", ma in questo caso il problema è ben visibile dall'assenza della virgola tra vecchi e porta perche se ci fosse avremmo un appiglio per capire che "porta" è un verbo ma siccome ci deve essere per forza un predicato "vecchia" non può esserlo e quindi lo sarà "porta" anche perche in tutte le frase logiche ed affermative il predicato sta sempre dopo il soggetto. quindi "vecchia = soggetto", "porta = predicato", "sbarra = complemento". L'unico errore sintattico è la mancanza della virgola. Quindi secondo me Roberto si potrebbe avere un linguaggio perfetto come quello umano, ma i coputer dovrebbero ragionare in modo umano. Comunque a parte tutto vorrei capire come funziona e a che serve la libreria nltk, e se mi può aiutare a trovare il soggetto in una frase
Registrato
Roberto Allegra
Global Moderator
Hero Member
*****

Karma: +50/-1
Scollegato Scollegato

Messaggi: 2102



Mostra profilo WWW
« Risposta #3 inserita:: Febbraio 11, 2017, 11:09:35 »

Citazione
ma la grammatica ci insegna che i verbi non cominciano con un articolo

Non è un articolo, è un pronome personale complemento. La. "La vecchia porta sbarra essa", riferendosi a qualcosa menzionato in precedenza. Come in:

Ecco la nostra unica via di fuga. Ma la vecchia porta la sbarra.

In questo caso, "la" diventa complemento oggetto e "la porta" diventa soggetto.

Citazione
ma in questo caso il problema è ben visibile dall'assenza della virgola tra vecchi e porta [...] L'unico errore sintattico è la mancanza della virgola

Nessuno scriverebbe mai una virgola fra vecchia e porta, se non per enfatizzare il soggetto. L'unico caso che mi viene in mente è il dialogo con un sordo:

   - Chi hai detto che porta la sbarra?
   - La vecchia, porta la sbarra. La vecchia!


Il punto è che in questo caso, come molti altri, è impossibile fare un'analisi logica univoca senza capire effettivamente il senso intimo della frase. In mancanza di IA in grado di comprendere un testo, dobbiamo accontentarci di sistemi che "tirano a indovinare" basandosi sull'applicazione di regole precise. Che è il motivo per cui ancora oggi le traduzioni automatiche sono una fonte inesauribile di umorismo involontario ("lo spirito è forte, ma la carne è debole" può bellamente essere interpretato come: "la vodka è buona, ma la bistecca è marcia").

Implementare qualcosa di decente richiede un bel po' di studio di linguistica computazionale (almeno sapere bene cos'è un tokenizer, un parser, cos'è il bnf, una grammatica context-free, un constituency/dependency tree, una treebank...). Insomma, non è roba facile che può fare "mio cuggino", andando per tentativi: è un campo di studio complesso, affascinante e ancora molto aperto, nonostante abbia ormai almeno 50 anni di storia. (E di cui, per inciso, ho solo una conoscenza scolastica: che è il motivo per cui finora sono riuscito a non nominare neanche Chomsky e le grammatiche trasformazionali).

Citazione
Comunque a parte tutto vorrei capire come funziona e a che serve la libreria nltk, e se mi può aiutare a trovare il soggetto in una frase

Hai letto i riferimenti che ti ho dato? C'è un capitolo apposito sul parsing di un testo in linguaggio naturale, e l'elaborazione di un albero di struttura sintagmatica, come quello che trovi alla fine di questa pagina sulle dependency grammar.

Un altro riferimento pratico è il parser probabilistico della Stanford NLP Library (che ha anche un'interfaccia per python). Il problema, come al solito, sarà trovare dei modelli/corpora per la lingua italiana, vedi ad esempio l'ottimo lavoro fatto da Alessio Palmero Aprosio e Giovanni Moretti con Tint, che è una delle più valide risorse per il dependency parsing in Italiano (e a volte prende comunque delle gran cantonate).
Registrato

I moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines