Query in linguaggio naturale per il dominio della dieta mediterranea

Pagina creata da Dario Pinto
 
CONTINUA A LEGGERE
Query in linguaggio naturale per il dominio della dieta mediterranea

                  Luca Anselma, Dario Ferrero, Alessandro Mazzei
                 Dipartimento di Informatica, Università di Torino, Italy
        {anselma,mazzei}@di.unito.it, dario.ferrero@edu.unito.it

                      Abstract                             da anni per permettere una più fluida interazione
                                                           uomo-macchina. La natura della comunicazione
    English. This paper presents an ongoing                umana presenta molti aspetti difficili da formaliz-
    work for allowing users to ask questions               zare tramite regole precise: ambiguità nell’uso di
    in natural language to a database mana-                parole ed espressioni, differenze culturali ed idio-
    gement system on the domain of recipes.                matiche, l’affidamento ad informazioni implicite
    The system translates questions from Ita-              date dal contesto. Questo è vero anche in spe-
    lian language to SQL exploiting an inter-              cifici domini, come quello che lega le persone al
    lingua represented by a logical formalism              cibo (Jurafsky, 2014). A questo scopo da diversi
    such as relational calculus. There are two             anni sono state argomento di ricerca le Interfacce
    specific features of this project: first, the          al Linguaggio Naturale (NLIs), sistemi in grado
    use of relational calculus as semantic re-             di interpretare, modellare ed eseguire un’interro-
    presentation for interlingua translation; se-          gazione formulata in Linguaggio Naturale su un
    cond, the role played by pragmatic infor-              qualche tipo di base di conoscenza (basi di dati,
    mation, that is the Mediterranean diet do-             ontologie, ecc.). Le applicazioni sono dunque tra
    main implicitly encoded in the database                le più svariate, dalle semplici barre di ricerca di un
    schema.                                                sito web, ai più recenti Voice Assistant ed altri ser-
                                                           vizi anche web-based (Balloccu et al., 2021). L’u-
    Italiano. Questo articolo presenta un pro-
                                                           so del linguaggio naturale ha vantaggi e svantaggi
    getto in corso sulla per permettere a de-
                                                           se paragonato a linguaggi formali come le query
    gli utenti di porre domande a un data-
                                                           scritte in uno dei linguaggi di interrogazione dei
    base management system nell’ambito del
                                                           database. Uno dei vantaggi è la familiarità dell’u-
    dominio delle ricette. Il sistema tradu-
                                                           tente con il linguaggio naturale. Uno svantaggio
    ce le domande da italiano a SQL sfrut-
                                                           consiste nell’estrema espressività del linguaggio
    tando una rappresentazione logica inter-
                                                           umano, che rende impossibile una copertura totale
    lingua che consiste nel calcolo relaziona-
                                                           del lessico e quindi delle possibili interpretazioni
    le. Ci sono due specifiche caratteristi-
                                                           del significato.
    che di questo progetto: l’uso del calco-
    lo relazionale come rappresentazione se-                  In questo lavoro presentiamo una NLI per inter-
    mantica della traduzione interlingua e il              rogare una base di dati nel dominio della dieta me-
    ruolo giocato dall’informazione pragmati-              diterranea. Una domanda su tale dominio espressa
    ca, che consiste nell’uso del dominio della            in lingua italiana verrà analizzata mediante l’uso
    dieta mediterranea che è stato codificata             di una grammatica feature-based context-free, rap-
    nello schema del database.                             presentata mediante il calcolo relazionale su tuple,
                                                           e infine trasformata in SQL mediante un processo
                                                           ricorsivo basato sulla pragmatica del dominio ap-
1   Introduzione                                           plicativo. Un elemento distintivo di questo proget-
L’accesso a grandi moli di dati da parte di perso-         to, rispetto ai classici esempi di conversione basati
ne comuni è una delle molteplici sfide affrontata         sulla logica del primo ordine (Warren and Perei-
                                                           ra, 1982), è l’uso esplicito del calcolo relazionale
     Copyright © 2021 for this paper by its authors. Use
permitted under Creative Commons License Attribution 4.0   per rappresentare il significato della frase. Inoltre,
International (CC BY 4.0).                                 un ruolo importante è giocato dalla pragmatica del
dominio, che lega il linguaggio usato nelle doman-       bilità è sia la debolezza che il maggior punto di
de alla formalizzazione delle ricette, e che risulta     forza di Querix, in quanto garantisce la più com-
codificata nello schema del database.                    pleta portabilità sui domini di qualsiasi ontologia
                                                         utilizzata.
2   Alcuni lavori recenti LN→SQL basati                     Gli approcci basati su Grammatiche si appog-
    sulla sintassi                                       giano largamente sulle regole di produzione: a dif-
                                                         ferenza dei sistemi descritti in precedenza, in que-
In questa sezione consideriamo alcuni lavori sul         sti approcci è possibile stabilire a priori quali tipi
tema della traduzione da linguaggio naturale a           di domande sia interpretabile e quali no. Da que-
SQL che fanno uso della sintassi, seguendo lo            sta capacità segue quindi la possibilità di imple-
schema proposto in (Affolter et al., 2019). Una          mentare un interfacciamento più interattivo, dove
rassegna più estesa si può trovare in (Amer-Yahia      la validità di una domanda in input può essere de-
et al., 2021).                                           terminata durante la stessa fase di inserimento e
   Negli approcci basati sul Parsing si derivano         guidata da parte di feedback visivi. In TR Disco-
gran parte delle informazioni ricavabili a partire       ver, ad esempio, la prima fase di traduzione del-
dalla struttura della frase in input. Tramite que-       la query consiste nel suo parsing su una Feature-
sto approccio è possibile riconoscere dipendenze        Based Context-Free Grammar (FCFG) dove rego-
complesse tra i singoli elementi sintattici, spes-       le lessicali, generate dai nomi degli attributi della
so introdotte da particolari espressioni o da pre-       base di dati, e regole grammaticali, le quali defini-
posizioni: si attribuisce quindi un valore seman-        scono la composizione delle informazioni estratte,
tico alla struttura logica della domanda analizza-       permettono di ottenere composizionalmente come
ta. Querix, ad esempio, fornisce un’interfaccia          rappresentazione intermedia una formula nella Lo-
per l’interrogazione di ontologie tramite la gene-       gica del Primo Ordine (FOL) (Song et al., 2015).
razione di una query SPARQL (Kaufmann et al.,            Generare questo primo tipo di formulazione por-
2006). Questo risultato è ottenuto tramite tre com-     ta una notevole flessibilità permettendo una tradu-
ponenti: query analyzer, matching center e query         zione finale sia in SQL che in SPARQL. Nella se-
generator. Il query analyzer parte dalla doman-          conda fase è effettuata un’ulteriore fase di analisi,
da in Linguaggio Naturale e, tramite componen-           questa volta sulla formula logica, tramite un FOL
ti esterne quali lo Stanford Parser e il database        parser e un’apposita grammatica. Un importante
lessicale WordNet, restituisce uno scheletro del-        punto di forza di TR Discover consiste nel modulo
la query dato dalla sequenza delle categorie sin-        di auto-suggestion: il fatto che la grammatica de-
tattiche proprie delle parole in input (Nome, Ver-       finisca precisamente il tipo di domande valide può
bo, Preposizione, Congiunzione, ecc.). Tramite il        essere sfruttato dal sistema per suggerire all’uten-
matching center si cercano inizialmente dei pat-         te possibili domande. A partire quindi dalle parole
tern Soggetto-Proprietà-Oggetto all’interno delle       di un input parziale, i suggerimenti sono generati
categorie estratte dalla frase (la sua struttura assu-   dalle strutture grammaticali derivabili e ordinati a
me quindi più importanza rispetto ai sistemi basati     seconda della “popolarità” delle entità riconosciu-
su keyword). Si cercano poi possibili match tra          te. Il sistema, tuttavia, presenta chiare limitazioni
le parole in input e le risorse dell’ontologia (en-      di espressività, non essendo in grado di analizzare
trambi accresciuti dei rispettivi sinonimi di Word-      query richiedenti quantificazioni e permettendo le
Net), ed infine si cerca di ottenere corrispondenze      negazioni solo traducendo in SPARQL.
tra i risultati di queste due fasi intermedie. I mat-
ching delle triple cosı̀ ottenute permettono al que-     3   Dominio applicativo: il progetto
ry generator di costruire una o più query SPAR-             MAdiMan
QL, ad ognuna delle quali è assegnato un ranking.
L’ambiguità data dai molteplici risultati è risolta    Nel dominio della dieta alimentare il progetto MA-
mostrando all’utente una finestra di dialogo che         DiMAN (Multimedia Application for Diet MANa-
permette di selezionare la query più pertinente.        gement) si pone come obiettivo quello di fornire
L’efficacia del sistema dipende in gran parte dal-       un intermediario semi-automatizzato (un “dietista
la qualità del vocabolario dato dall’ontologia su       virtuale”) tra l’utente e la gestione della sua ali-
cui è usato, limitando potenzialmente il range di       mentazione: a partire da informazioni quali dati
domande esprimibili. Questa assenza di adatta-           biologici individuali, una definizione della dieta
da seguire (basata su quantità di macronutrienti)              #    Frase
                                                                 1   Quali sono le ricette senza fritture?
e un aggiornamento costante sullo storico dei pa-                    Quali sono le ricette con meno di
                                                                 2
sti, il sistema cloud-based è in grado di propor-                   500 kcal?
re diversi servizi volti alla pianificazione dei pasti               Quali sono i piatti con più di 40g di
                                                                 3
                                                                     proteine?
futuri, alla persuasione dell’utente verso una sana              4   Quali sono i piatti con meno carboidrati?
alimentazione e all’interazione efficace con queste                  Quali sono le preparazioni delle ricette
                                                                 5
informazioni (Anselma et al., 2018; Anselma and                      primaverili?
                                                                     Quanta acqua ho consumato il giorno
Mazzei, 2020; Mazzei et al., 2015; Anselma and                   6
                                                                     @data?
Mazzei, 2015).                                                       Quante calorie ho assunto ogni giorno dal
                                                                 7
                                                                     @date1 al @date2?
3.1      La base di dati: Gedeone                                    Quali sono le ricette di pesce in ordine di
                                                                 8
                                                                     difficoltà?
Nel considerare il dominio di interesse è neces-                    Quali sono le ricette facili col minor
                                                                 9
sario pensare ai dati stessi su cui andiamo a la-                    tempo di preparazione?
                                                                     Quali sono le ricette con cottura in forno
vorare. Gedeone1 è un portale di Coop Italia de-               10
                                                                      o a vapore?
dicato a promuovere un sano stile di vita e dieta                    Quali sono gli ingredienti per @people
                                                                11
proponendo consigli, articoli e soprattutto ricette.                  persone della ricetta @recipe?
                                                                12   Quali sono i piatti con pochi carboidrati?
Al fine del progetto MADiMAN, le informazioni
presenti su questo sito sono state manipolate e tra-       Tabella 1: Le 12 domande nel dominio delle ri-
sposte in una base di dati con DBMS PostgreSQL,            cette di Gedeone ideate per la sperimentazione. Il
rendendo disponibili un gran quantitativo di ricet-        simbolo @ indica delle variabili nella domanda.
te (circa 500), passi preparativi, ingredienti, valori
nutrizionali e vari metadati.
   Un’ulteriore componente dello schema analiz-            istruzioni ed ingredienti. Secondo, per permet-
zato include dati e tabelle su utenti e la loro dieta,     tere il testing di un prototipo, ognuna di queste
lo storico dei pasti e delle pesate.                       domande è stata scritta affinché verificasse l’abi-
   Per gli obiettivi di questo lavoro è stato deciso di   lità del sistema nel riconoscere e derivare all’in-
considerare la parte del database relativa alle ricet-     terno della struttura sintattica particolari costrutti,
te trascurando la parte relativa alla pianificazione       strutture ed operazioni appartenenti alla query fi-
dei pasti considerando il punto di vista di un uten-       nale. Prendendo spunto da (Affolter et al., 2019),
te non esperto del funzionamento della memoriz-            ogni domanda è stata categorizzata attraverso va-
zazione dei dati, ancor meno di come questi siano          rie label, principalmente corrispondenti agli ope-
strutturati internamente.                                  ratori SQL Join, Filtraggio su attributo (nella clau-
                                                           sola WHERE), Negazione, Ordinamento esplicito,
4       Architettura del prototipo LN→SQL                  Raggruppamento, Aggregazione, Sottoquery.
                                                               A ogni domanda definita nel corpus è stata as-
Primariamente è stato costruito un corpus di 12
                                                           sociata una corrispondente query SQL, la cui cor-
domande in Linguaggio Naturale2 (Tabella 1). Gli
                                                           rettezza è stata verificata sul database. Mentre si
scopi di questo piccolo corpus sono principalmen-
                                                           è cercato il più possibile di semplificare il formato
te due. Primo, nel progettare un sistema che si
                                                           della traduzione finale di ogni domanda in input,
interfacci con una persona tramite un unico pas-
                                                           la necessità a fini sperimentali di definire domande
so in un caso d’uso ipotetico (inserimento testua-
                                                           sempre più complesse ha portato ad ottenere alcu-
le), è stato necessario pensare a delle domande
                                                           ne query con strutture articolate, il che ha talvolta
plausibili che un utente medio potrebbe porre tra-
                                                           reso arduo il processo di traduzione.
mite applicativo. È stato ipotizzato a questo fi-
                                                               Il processo di traduzione di ogni domanda del
ne che le informazioni più desiderabili derivino
                                                           corpus è sequenziale e si divide in una fase pre-
dalla possibilità di consultare il ricettario, ponen-
                                                           liminare di preanalisi, e in due fasi principali
do domande implicitamente relative alla propria
                                                           concatenate fra di loro.
dieta personale (per esempio, sapere l’apporto ca-
lorico di un certo piatto) cosı̀ come richiedendo              Nella preanalisi la domanda in italiano è
                                                           suddivisa in token. Oltre a ciò sono riconosciuti
    1
   http://www.gedeone-e-coop.it                            ed estratti possibili valori di attributi relativi
    2
   Il corpus completo è disponibile online: http://ww
w.di.unito.it/˜mazzei/papers/clic2021/Qn                   alla base di dati considerata ed è attuata dove
Acorpus.pdf                                                necessario una sostituzione con sinonimi. Par-
PP[PT=?pt, RL=?rl, LF=?fl, ORD=?ord]
  ->
                                                           FCFG. In questo cambio di direzione è stato ri-
P[PT=?pt] NP[RL=?rl, LF=?fl, ORD=?ord]                     scontrato che una rappresentazione intermedia più
                                                           vicina all’obbiettivo della traduzione in SQL pote-
NN[ORD=] -> ’ordine’
                                                           va essere data da una query in calcolo relazionale.
                                                           Il Calcolo Relazionale su Tuple con dichiarazio-
Figura 1: Un frammento della FCFG usata per rap-           ne di Range è un linguaggio formale che permette
presentare la semantica di una domanda in Calcolo          di esprimere in modo dichiarativo una interroga-
Relazionale.                                               zione su una base di dati relazionale. In questo
                                                           formalismo una query comprende tre componenti:
tendo dalla terza frase della Tabella 1, ovvero            Target List (TL), Range List (RL) e Logic Formula
Quali sono i piatti con più di 40g di proteine?,          (LF) (Codd, 1972) (cf. Fig. 1). Per ognuna di que-
la preanalisi, dopo aver eseguito tokenizazione e          ste riportiamo una breve descrizione, seguita dal
sostituzione dei sinonimi, restituisce: [quali,            metodo scelto per poterla ottenere e rappresenta-
sono, i, ricetta, con, più, di,                           re a partire dalla domanda in italiano e tramite la
40, grammi, di, proteineg].                                grammatica basata su feature.
   La prima fase prende in input i token ottenuti in          Target List: specifica quali attributi compaio-
preanalisi e restituisce un albero sintattico anno-        no nel risultato. Poiché il riconoscimento degli
tato, ottenuto tramite il parsing dei token su una         attributi necessari dipende sia da quali vengano
FCFG. È ottenuta, come rappresentazione inter-            esplicitati nella domanda, sia dalle tabelle coin-
media, un’espressione nel Calcolo Relazionale su           volte, questa componente è quasi completamente
Tuple.                                                     determinata nella seconda fase (a posteriori della
   Infine, nella seconda fase, le informazioni pre-        parsing sintattico). Tramite le regole lessicali del-
senti nell’albero sintattico sono estratte tramite di-     la grammatica sono riconosciuti gli eventuali at-
verse visite, durante ognuna delle quali è costruita      tributi di tabelle, i cui simboli terminali sono an-
una clausola della corrispondente query in SQL.            notati dalla loro rappresentazione nella feature LF,
Nel seguito dettagliamo il funzionamento delle             specificandone il tipo tramite la feature booleana
due fasi principali e poi analizziamo le prestazioni       +ATTR. Gli elementi restanti della Target List sa-
del sistema.                                               ranno in seguito derivati tramite una mappatura
4.1    Prima fase: dal Linguaggio Naturale al              tabella-attributi.
       Calcolo Relazionale                                    Range List: specifica le variabili libere nella
In questo lavoro abbiamo usato delle grammatiche           Formula Logica, cioè le tabelle su cui variano le
libere da contesto con feature3 (FCFG) utilizzan-          variabili della LF per generare il risultato. Si-
do la libreria Python NLTK (Bird, 2006). Simil-            milarmente agli attributi, anche le tabelle posso-
mente a (Warren and Pereira, 1982; Song et al.,            no essere riconosciute esplicitamente (ed annotate
2015), abbiamo inizialmente usato una rappresen-           con una feature +TABLE), oppure derivate da at-
tazione intermedia di tipo logico per rappresentare        tributi riscontrati, ma non appartenenti a nessuna
il significato della domanda. L’obbiettivo era ap-         tabella trovata fino a quel momento. In entram-
punto quello di realizzarne una traduzione il più         bi i casi la loro semantica è raccolta nella feature
possibile fedele a una formula della FoL, la quale         RL di una produzione terminale e, come per gli
esprimesse precisamente il significato della query         attributi, i diversi elementi saranno raccolti nel-
finale nel dominio (tabelle coinvolte, espressioni         la fase successiva attraversando l’albero sintattico
per la clausola WHERE, valori di attributi, ecc.).         annotato.
   Dopo le prime sperimentazioni si è riscontrato            Logic Formula: specifica una formula che il
che questa forma intermedia, per quanto intuitiva          risultato deve soddisfare. A differenza delle pre-
e formale, non permetteva una facile traduzione fi-        cedenti, la LF (feature LF) è composta ricorsiva-
nale nella seconda fase. Inoltre, fare affidamento         mente e i suoi predicati possono essere introdotti
esclusivamente su una singola formula composta             non solo nelle regole lessicali, ma anche nelle pro-
limitava i potenziali vantaggi dati dall’uso delle         duzioni non terminali tramite il riconoscimento di
   3
                                                           particolari strutture sintattiche. La composizione
   La grammatica realizzata è disponibile online: http:
//www.di.unito.it/˜mazzei/papers/clic202                   della formula a partire da feature di nodi diversi è
1/calcolo relazionale.fcfg                                 effettuata tramite le astrazioni del lambda-calcolo:
definendo predicati parziali in un nodo è possibile     di SQL viene visitato l’albero sintattico e, grazie
applicarli a formule ed argomenti provenienti da-        anche alle informazioni dal dominio, viene gene-
gli altri nodi della stessa produzione in una sem-       rata la clausola componendo ivalori nelle feature.
plificazione chiamata Beta-riduzione. Questa av-         In particolare:
viene automaticamente durante il parsing sintat-
                                                             SELECT: La lista di attributi da restituire corri-
tico tramite NLTK, ed il risultato, se presente, è
                                                         sponde alla Target List del Calcolo Relazionale. È
visibile nella radice dell’albero sintattico.
                                                         possibile riconoscere due tipi di attributi apparte-
   A differenza di SQL, il Calcolo Relazionale, per
                                                         nenti a questa. (i) Ogni tabella introdotta, esplici-
propria natura, non esprime esplicitamente un or-
                                                         tamente o meno (riconosciuta a partire dalla featu-
dinamento sull’insieme di tuple risultante (corri-
                                                         re +TABLE oppure derivata da un suo attributo),
spondente al costrutto ORDER BY di SQL). Per
                                                         comprende uno o più attributi di default, oltre a
compensare questo aspetto si è deciso di utilizza-
                                                         quelli di chiave primaria. Questo tipo di mappatu-
re una feature aggiuntiva ORD, definita in modo
                                                         ra è un esempio di informazione pragmatica pro-
simile alla feature LF ma utilizzata esclusivamen-
                                                         veniente dal dominio e codificata nella tabella. (ii)
te per mantenere tramite predicati le informazioni
                                                         Per quanto riguarda invece gli attributi non presen-
di un eventuale ordinamento esplicito (riconosciu-
                                                         ti in alcuna tabella, questi possono semplicemente
to a livello lessicale da espressioni come “in ordine
                                                         essere riconosciuti da una regola lessicale (tramite
di”, “con meno/più X”, ecc.) In generale il proces-
                                                         la feature +ATTR) ed aggiunti in coda all’elenco.
so di traduzione della prima fase è completamente
automatizzato: il parser utilizzato è generato tra-        FROM: Un’assunzione importante è stata fat-
mite una funzione della libreria NLTK e necessita        ta nella gestione dei join, ovvero che le tabelle
solamente della definizione di una grammatica. Il        avessero sempre delle chiavi esterne definite espli-
parsing dei token in input restituisce dunque un         citamente. Ciò semplifica notevolmente la tradu-
albero sintattico annotato con feature.                  zione, in quanto è sufficiente conoscere le tabelle
   Partendo dalla preanalisi della frase Quali so-       coinvolte per poter generare l’intera clausola com-
no i piatti con più di 40g di proteine?, si ottie-      prensiva delle condizioni di join. L’algoritmo di
ne l’analisi sintattica in Fig. 2(a), e la corrispon-    generazione riconosce i vincoli di chiave esterna
dente rappresentazione in calcolo relazionale in         tramite due cicli, che compongono la clausola ri-
Fig. 2(b).                                               sultante con gli attributi necessari. Da notare che
                                                         sia i vincoli relazionali, sia gli alias delle tabelle
4.2   Seconda fase: dal Calcolo Relazionale a            sono definiti tramite dizionari.
      SQL
                                                            WHERE: Questa clausola è l’unica costruita
La costruzione dell’interrogazione SQL utilizza          a partire dalle informazioni provenienti dalla LF.
l’albero sintattico e la corrispondente formula del      I predicati di questa sono indicati in un forma-
calcolo relazionale ottenute entrambe nella fase         lismo più simile a quello della FOL rispetto al
precedente, insieme a ulteriori dati provenienti dal     Calcolo Relazionale, al fine di aderire alla sintas-
dominio di interesse, e che sono implicitamente          si delle formule di NLTK. Per ognuno dei pre-
codificate nel database di riferimento. Mentre con       dicati si effettua una traduzione corrispondente
la prima fase si è potuto modellare la conoscenza       rappresentazione in SQL.
derivata dalla domanda iniziale, molto di ciò che ci
                                                            ORDER BY: Come la clausola WHERE, la
serve sapere non è direttamente derivabile da una
                                                         costruzione di questa clausola è determinata dal
domanda in italiano. Inoltre, poiché l’obbiettivo di
                                                         valore della feature ORD nella radice dell’albero
questo progetto rimane la creazione di un sistema
                                                         sintattico. Per i fini della nostra implementazio-
che operi su un dominio definito, è necessario che
                                                         ne è stato deciso di adottare, nel caso in cui la
le informazioni più importanti riguardanti questo
                                                         feature ORD risulti vuota, un ordinamento di de-
siano definite ed accessibili nel sistema: queste in-
                                                         fault sull’attributo di chiave primaria della tabella
formazioni sono fondamentali per stabilire i lega-
                                                         principale coinvolta.
mi tra ciò che è stato chiesto e i nomi effettivi di
tabelle e attributi.                                        Considerando ancora la terza frase della Tabel-
   Il processo di traduzione finale segue un algorit-    la 1, il risultato della seconda fase di traduzione è
mo generale comune: per ogni clausola principale         in Fig. 2-(c).
(S[FL=, ORD=?ord]
  (VP[] (PI[NUM=’pl’, QRT=’qual’] Quali) (IV[NUM=’pl’] sono))
  (NP[FL=?fl]
    (DET[NUM=’pl’] i)
    (NN[RL=, +TABLE] ricetta))
  (PP[FL=, ORD=?ord, PT=’with’, RL=?rl]
    (P[PT=’with’] con)
    (NP[FL=]
      (ADV[FL=] più)
      (PP[FL=, ORD=?ord, PT=’of’, RL=?rl]
        (P[PT=’of’] di)
        (NP[FL=] (CARD[FL=] 40) (NN[] grammi)))
      (PP[FL=, PT=’of’, RL=]
        (P[PT=’of’] di)
        (NN[+ATTR, FL=, RL=] proteineg)))))

                                                           (a)
{TL=ric.id, ric.descrizione, ric.nome , ric.proteineg | RL=ric(ricetta) |
LF=maggiore(ric(ricetta),proteineg,40)}
                                                           (b)
SELECT ric.id, ric.nome, ric.descrizione, ric.proteineg
FROM Ricetta ric WHERE ric.proteineg>40 ORDER BY ric.id ASC;
                                                           (c)

Figura 2: Il risultato della prima fase di analisi (a-b) e della seconda fase di analisi (c) sulla frase Quali
sono i piatti con più di 40g di proteine?.

5       Valutazione preliminare                                  boidrati?”: la difficoltà nell’includere una sotto-
                                                                 query (con annessa Window Function di SQL) ha
Nella sperimentazione preliminare è stato possibi-
                                                                 portato a interpretare “pochi carboidrati” non co-
le implementare la traduzione solamente di 7 do-
                                                                 me valori appartenenti al primo quartile sulla di-
mande rispetto alle 12 inizialmente definite nel
                                                                 stribuzione totale, ma come quantità al di sotto di
corpus4 . Seguono i limiti incontrati per alcune
                                                                 una soglia di default.
delle interrogazioni non realizzate.
   La domanda 6, Quanta acqua ho consumato il                    6   Conclusioni
giorno @data, è stata tralasciata poiché richiede-
rebbe una gestione delle informazioni riguardanti                In questo lavoro sono stati presentati i primi risul-
un utente che abbia effettuato l’accesso al sistema.             tati di un progetto ancora in corso per interpretare
   Non è stato possibile realizzare la domanda 10,              una domanda in linguaggio naturale come un’in-
“Quali sono le ricette con cottura in forno o a va-              terrogazione SQL nel dominio della dieta medi-
pore” per la natura dell’operazione richiesta (un                terranea. Le due caratteristiche principali di que-
OR esclusivo), la quale richiedeva una sotto-query.              sto progetto sono state l’uso del calcolo relazio-
Al momento non è implementato un meccani-                       nale su tuple per rappresentare il significato della
smo che rilevi la presenza di sotto-interrogazioni               frase (Sezione 4.1) e l’uso delle specificità del do-
a partire dalla struttura della frase.                           minio per trasformare poi tale rappresentazione in
   Nella domanda 11, “Quali sono gli ingredienti                 SQL (Sezione 4.2).
per @people persone della ricetta @recipe?”, la                     In futuro intendiamo completare le interroga-
difficoltà incontrata è stata la gestione dei valori           zioni contenute nel corpus proposto per poi inte-
NULL ottenibili in certi attributi.                              grare il prototipo in un agente conversazionale sul
   La domanda 12, “Quali sono i piatti con po-                   dominio della gestione di una dieta salutare. Con-
chi carboidrati?”, è stata realizzata nella versione            siderando la presenza di indeterminatezza nel lin-
semplificata “Quali sono i piatti con meno car-                  guaggio naturale, potrebbe essere interessante da-
    4
                                                                 re supporto per estensioni del modello relaziona-
   Un elenco completo dell’output è disponibile a http:
//www.di.unito.it/˜mazzei/papers/clic202                         le che trattano indeterminatezza (Anselma et al.,
1/OutputPrototipo.pdf                                            2016).
References                                                 Dan Jurafsky. 2014. The language of food: A linguist
                                                             reads the menu. WW Norton & Company.
Katrin Affolter, Kurt Stockinger, and Abraham Bern-
  stein. 2019. A comparative survey of recent na-          Esther Kaufmann, Abraham Bernstein, and Renato
  tural language interfaces for databases. The VLDB          Zumstein. 2006. Querix: A natural language inter-
  Journal, 28(5):793–819.                                    face to query ontologies based on clarification dia-
                                                             logs. In 5th international semantic web conference
Sihem Amer-Yahia, Georgia Koutrika, Frederic Ba-             (ISWC 2006), pages 980–981.
   stian, Theofilos Belmpas, Martin Braschler, Ursin
   Brunner, Diego Calvanese, Maximilian Fabricius,         Alessandro Mazzei, Luca Anselma, Franco De Mi-
   Orest Gkini, Catherine Kosten, Davide Lanti, Anto-        chieli, Andrea Bolioli, Matteo Casu, Jelle Gerbran-
   nis Litke, Hendrik Lücke-Tieke, Francesco Alessan-       dy, and Ivan Lunardi. 2015. Mobile computing
   dro Massucci, Tarcisio Mendes de Farias, Alessan-         and artificial intelligence for diet management. In
   dro Mosca, Francesco Multari, Nikolaos Papadakis,         International Conference on Image Analysis and
   Dimitris Papadopoulos, Yogendra Patil, Aurélien          Processing, pages 342–349. Springer.
   Personnaz, Guillem Rull, Ana Claudia Sima, Elle-
   ry Smith, Dimitrios Skoutas, Srividya Subramanian,      Dezhao Song, Frank Schilder, Charese Smiley, Chris
   Guohui Xiao, and Kurt Stockinger. 2021. INODE:            Brew, Tom Zielund, Hiroko Bretz, Robert Martin,
   building an end-to-end data exploration system in         Chris Dale, John Duprey, Tim Miller, et al. 2015. Tr
   practice [extended vision]. CoRR, abs/2104.04194.         discover: A natural language interface for querying
                                                             and analyzing interlinked datasets. In International
Luca Anselma and Alessandro Mazzei. 2015. Towards            Semantic Web Conference, pages 21–37. Springer.
  diet management with automatic reasoning and per-
  suasive natural language generation. In Portuguese       David H.D. Warren and Fernando C.N. Pereira. 1982.
  Conference on Artificial Intelligence, pages 79–90.        An efficient easily adaptable system for interpre-
  Springer.                                                  ting natural language queries. American Journal of
                                                             Computational Linguistics, 8(3-4):110–122.
Luca Anselma and Alessandro Mazzei. 2020. Buil-
  ding a persuasive virtual dietitian. Informatics,
  7(3):27.
Luca Anselma, Luca Piovesan, and Paolo Terenzia-
  ni. 2016. A 1nf temporal relational model and
  algebra coping with valid-time temporal indetermi-
  nacy. Journal of Intelligent Information Systems,
  47(3):345–374.
Luca Anselma, Alessandro Mazzei, and Andrea Pirone.
  2018. Automatic reasoning evaluation in diet mana-
  gement based on an italian cookbook. In Procee-
  dings of the Joint Workshop on Multimedia for Coo-
  king and Eating Activities and Multimedia Assisted
  Dietary Management, pages 59–62.
Simone Balloccu, Ehud Reiter, Matteo G. Collu, Fe-
  derico Sanna, Manuela Sanguinetti, and Maurizio
  Atzori. 2021. Unaddressed challenges in persuasive
  dieting chatbots. In Judith Masthoff, Eelco Herder,
  Nava Tintarev, and Marko Tkalcic, editors, Adjunct
  Publication of the 29th ACM Conference on User
  Modeling, Adaptation and Personalization, UMAP
  2021, Utrecht, The Netherlands, June 21-25, 2021,
  pages 392–395. ACM.
Steven Bird. 2006. NLTK: the natural language tool-
   kit. In Nicoletta Calzolari, Claire Cardie, and Pier-
   re Isabelle, editors, ACL 2006, 21st International
   Conference on Computational Linguistics and 44th
   Annual Meeting of the Association for Computatio-
   nal Linguistics, Proceedings of the Conference, Syd-
   ney, Australia, 17-21 July 2006. The Association for
   Computer Linguistics.
E. F. Codd. 1972. Relational completeness of data
   base sublanguages. Research Report / RJ / IBM /
   San Jose, California, RJ987.
Puoi anche leggere