D'una consulta d'usuari com entrada als resultats de cerca com a sortida: Cerca en Llenguatge Natural

Inbenta té una ràtio d’autoservei insuperable gràcies al seu motor de cerca semàntic basat en el llenguatge natural. El motor de cerca semàntic permet establir correspondència entre consultes d’usuari sense estructurar i amb errors ortogràfics amb títols de FAQs concretes i estructurades perquè els usuaris trobin la informació que cerquen de manera ràpida i fàcil, d’una manera sense precedents.
Un dels principals reptes del Processament en Llenguatge Natural és tractar l’ambigüetat característica del llenguatge natural.
 
Prenem com a exemple la frase “run a test“. La paraula “run” sovint es refereix a l’acte de córrer, però en aquest context en concret significa “dur a terme, executar”. La diferència és òbvia per a un humà familiaritzat amb l’anglès, però no per a un ordinador.
 
Fins i tot, si un ordinador és capaç d’analitzar la sintaxi d’una frase com “run a test“, continuarà sense detectar la diferència entre aquesta frase i “run a race” – malgrat que el significat d’aquestes dues frases sigui completament diferent.
 
La cerca semàntica d’Inbenta fa un pas més i analitza el significat contextual de les paraules, de manera que se selecciona la millor definició de la paraula “run” encara que la sintaxi i la paraula siguin la mateixa.
 
Aquest document explica de forma succinta el funcionament d’aquest procés.
 
Imaginem que una empresa de telecomunicacions ha de crear una sèrie de FAQs, una base de coneixement, que serveixi perquè els seus clients trobin informació relacionada amb els seus dubtes.
 
Per aquest exemple en concret, hi ha una FAQ que descriu el cost i els plans de trucades a altres països amb el títol:
 
“What is the price for international calls?”(Quant costen les trucades internacionals?)
 
Aparentment sembla tot correcte, no? Tanmateix, el problema radica en què la probabilitat que els clients busquin aquesta FAQ utilitzant les mateixes paraules clau que apareixen al contingut és remota.
 
En comptes d’això, escriuran preguntes com:
 
“how much wll me cost to call to francw” (Quant em costarà trucar a França?)
 
Els usuaris sempre utilitzaran frases de cerca que descriguin la seva situació particular, de manera que les seves paraules seran diferents de les utilitzades a la FAQ, perquè aquestes últimes sempre descriuran una situació més general.
 
El primer que fa Inbenta és aplicar un sofisticat algorisme de correcció ortogràfica.
 

Spelling

A l’exemple “wll” no és una paraula en anglès, així que no forma part del nostre extens diccionari i necessita correcció.
 
Podríem arreglar l’ortografia amb “will”, “well” o “wall”. Malgrat això, la correcció més probable seria “will” ja que és la que s’ajusta millor al significat de tota la frase
 
Quant a l’altre error ortogràfic: “francw”: les possibles correccions serien “francs”, “franc” y “France”, encara que la més encertada en aquests cas seria el nom del país. Dir “la més encertada” és una decisió fàcil per als humans, però és molt difícil per a un ordinador. El diccionari d’Inbenta que està en diverses llengües (castellà, català, euskera, gallec i francès, entre d’altres) conté informació sobre possibles combinacions de paraules, basant-se en les particularitats de la base de coneixement en qüestió així com les caractarístiques generals de l’idioma en concret.
 

Search

 
A partir d’aquest punt, Inbenta deixa de tractar la pregunta d’usuari amb errors ortogràfics i troba resultats per la versió corregida de la pregunta:
 
El següent pas és resoldre qualsevol ambigüitat que tingui la frase; (i en llenguatge natural sempre hi ha ambigüitats)
 
“how much will it cost to call to France?”
 

Ambiguity

 
Per poder-ho fer, Inbenta utilitza vàries eines: diccionari, anàlisi sintàctic, gramàtiques locals i funcions lèxiques.
Fer una correcta anàlisi sintàctica i semàntica és crucial per trobar respostes rellevants.
 
Mitjançant l’anàlisi sintàctica Inbenta determina la funció específica de cada paraula en aquesta pregunta en particular. El resultat d’aquesta anàlisi és el següent:
 

Speech

 
L’anàlisi de la frase dependrà de molts factors, el diccionari, les regles de desambiguació, context, etc.
 
Per exemple, la paraula “call” és un nom que pot tenir diversos significats que no estan relacionats amb trucades telefòniques- “urge”, “decision”, “cry” etc. Però com a verb, i en el context de les telecomunicacions, sens dubte “call” es refereix a trucar per telèfon.
 
Tot seguit, Inbenta realitza una anàlisi semàntica per determinar la importància relativa de cada paraula a la frase. Els usuaris solen afegir molta quantitat d’informació a la pregunta que no és essencial per trobar una resposta rellevant. Les paraules de cerca adicionals introduïdes per l’usuari s’anomenen “soroll” i freqüentment generen resultats irrellevants. Tanmateix, el nostre sistema és capaç de determinar les paraules importants que tenen càrrega semàntica. A partir d’una base de coneixement específica i de l’exclusiu algoritme semàntic basat en l’estadística, Inbenta assignarà un pes semàntic específic a cada paraula de la pregunta d’usuari:
 

Percentage

 
Com es pot comprovar, no totes les paraules de la pregunta d’usuari tenen la mateixa importància. En aquest cas, “cost” i “France” tenen quasi el 70% del total del “pes semàntic” de la pregunta d’usuari. Ara ens apropem a obtenir una resposta rellevant per aquesta pregunta.
 
Inbenta té un extens diccionari que conté milers de termes i molts tipus de relacions semàntiques anomenades “Funcions Lèxiques”. Aquestes funcions lèxiques abarquen relacions senzilles, com la sinonímia, i també relacions més complexes que depenen del context on aparegui la paraula.
 
Gràcies al diccionari i a les funcions lèxiques, Inbenta és capaç de reconèixer frases amb el mateix significat però expressades amb diferents paraules.
Finalment, amb l'”algoritme de significat” som capaços de detectar el grau de proximitat d’aquestes frases des del punt de vista del significat.
 
Entre altres moltes, el diccionari conté les funcions lèxiques següents:
 
  • La paraula “international” està relacionada amb “nation”, i amb els noms dels diferents països. D’aquesta manera “France” i “international” són paraules que d’alguna manera estan relacionades semànticament.

Semantic Tree

  • Igualment, aquest usuari en concret va preguntar per “cost”, és a dir, la quantitat que es paga per un servei. Tanmateix, l’autor de la FAQ va utilitzar el terme “price”, que és bàsicament el mateix concepte, però des de la perspectiva de la persona a qui es paga, no de la persona que paga. D’aquesta manera, “cost” i “price” estan relacionades.

Paraphrase

 
Mitjançant aquestes dues funcions lèxiques, Inbenta sap que la consulta d’usuari està relacionada amb els conceptes de ‘pricing’ i ‘internacional’, malgrat que la consulta no utilitzi aquestes paraules.
 
El lèxic augmenta diàriament mitjançant la feina dels nostres Lingüistes Computacionals.
 
En aquest cas concret, el nostre “Algoritme de Coneixement Semàntic” patentat, en combinació amb l’extens lèxic ens permet interpretar que la pregunta d’usuari i aquesta FAQ en concret tenen una “coincidència semàntica” d’exactament el 57,49%.
 
Si no hi ha una altra FAQ amb millor puntuació de coincidència semàntica, la FAQ titulada “What is the price for international calls?” apareixerà com a primer resultat.
 
L’autor de la FAQ va escriure “What is the price for international calls?“; no va haver d’afegir paràfrasi, etiquetes, editar arxius de sinònims, o revisar alternatives de vocabulari.
 
A Inbenta creiem que els creadors i editors de la base de coneixement solament haurien de preocupar-se de QUIN és el contingut, i no de COM es troba aquest contingut. Inbenta s’encarrega d’això, perquè el gestor de coneixement tingui temps d’escriure MÉS i MILLORS continguts.
 
També és important tenir en compte que el nostre motor de cerca semàntic ha de tenir un temps de resposta extraordinari, encara que hagi de cercar entre milers de FAQs i que milers d’usuaris preguntin de diferents maneres al mateix temps.
 
En aquest exemple, el nostre motor de cerca va trigar solament 0,0033376097679138 segons en trobar la resposta correcta a aquesta pregunta, amb una base de dades de més de 2500 FAQs.