Archive pour décembre 2008

Hakia

Hakia est, au même titre que Powerset, un moteur de recherche supportant les requêtes en langage naturel.

Le web semantique est actuellement en plein essor, et les sociétés misent beaucoup dessus. Nous avons vu que Powerset était maintenant propriété de Microsoft qui intègre leur technologie dans la nouvelle version du moteur LiveSearch, c’est également le cas de AskJeeves qui héberge actuellement Hakia.

Au premier abord, Hakia ressemble à Powerset : lorsqu’on effectue une recherche, les passages intéressants répondant à notre requête sont surlignés en jaune, et des liens sont présents vers des pages externes. Mais là où Powerset cherche dans des fiches Wikipédia, Hakia ne se limite pas à une seule source, et indexe le web au même titre que les moteurs de recherche habituels.

Seulement il se différencie par trois points :

  • les résultats proviennent de sites web dits “crédibles” recommandés,
  • ils font partie des informations les plus récentes disponibles,
  • et (selon Hakia), correpondent parfaitement à la requête.

Les résultats sont ordonnés en plusieurs parties : les résultats provenant du Web, ceux provenant des sites crédibles d’Hakia, des images et des news. 

Par delà ces petites innovations, Hakia propose une nouveauté dans le monde des moteurs de recherche : son indexation se fait non pas sur des critères de popularité, mais bien à partir de critères sémantiques. Ils ont en effet développé un tout nouveau moteur d’indexation : QDEX (Query Detection and Extraction). Durant l’indexation, chaque page, HTML compris, est analysée et l’algorithme extrait toutes les requêtes qui pourraient permettre d’aboutir à cette page.

Afin de ne pas tomber dans des problèmes d’explosion d’espaces combinatoire, Hakia utilise un algorithme permettant la décomposition sémantique des phrases, qui s’apparait à une analyse morpho-syntaxique. Cet algorithme est proposé par OnthologicalSemantics.

La deuxième nouveauté d’Hakia est son système de classement des résultats par la sémantique, ils utilisent pour cela leur algorithme SemanticRank. Le score final d’un document est calculé à partir d’une analyse conceptuelle avancée (et morphosyntaxique) de la requête et des meilleurs phrases des  paragraphes renvoyés par l’algorithme QDEX qui correspondent à la requête. 

Revenons maintenant au moteur en lui-même.

En pratique, si la réponse est parfois difficilement visible au travers des extraits des résultats affichés, la précision du moteur ( = la pertinence des résultats en fonction de leur rang d’apparition) est très bonne après quelques tests. De plus les images affichées sont toujours très pertinentes, et il y a peu d’erreurs de ce côté là.

Par exemple pour la requête “Who is Metallica’s singer?” nous pouvons voir ceci :

hakia_results

Comme il a été dit précédemment, la réponse n’est pas directement visible, mais on peut la trouver relativement facilement en ouvrant les différents liens.

hakia_img

Ici, les trois images affichées par le moteur correspondent effectivement à notre question, il n’y a pas d’erreur.

hakia_news

Hakia nous affiche ici également un extrait d’un article récent en rapport avec le sujet de notre question.

Les créateurs d’Hakia se basent sur le long terme, en affirmant haut et fort que les moteurs de recherche “traditionnels” ne pourront pas tenir la comparaison avec une recherche sémantique, et qu’ils ne pourront répondre qu’aux requêtes les plus populaires quand les utilisateurs auront reconnu la valeur de la recherche sémantique.

Romain

L’utilisation de règles pour la catégorisation des questions

Dans ce post nous allons voir comment on peut utiliser des règles afin de classifier les questions.

Au cours de mes recherches sur le sujet j’ai trouvé deux  systèmes différents qui utilisent un système basé sur l’utilisation de règles et qui sont très semblables.

Le premier est développé par des membres d’AT&T Labs-Research dont A. Singhal utilisé lors de la campagne d’évaluation TREC-8 et qui est une adaptation du système de recherche de documents SMART.

Le second est utilisé dans le moteur QALC développé par l’équipe du Limsi dont Laura Monceaux qui a aussi participé à plusieurs campagnes TREC donc TREC 2000.

Le premier système utilise les règles suivantes :

  • Who, Whom -> Personne
  • Where,Whence,Whither -> Lieu
  • When -> Date
  • How few, How great, How little, How many, How much -> Quantité
  • How tall, How wide, How high, How big, How far -> Mesure
  • How long -> Mesure ou Durée

Voilà pour les cas les plus simples.

Ensuite pour les cas où la phrase débute par Which ou What il est considéré que la classe de la question est du même type que la catégorie à laquelle appartient le premier nom rencontré.

Il y a enfin le cas où il n’y a aucun de ces mots, la stratégie alors adoptée et de prendre the first noun phrase that is an immediate constituent of the matrix sentence is extracted, and its head is used to determine query type, as for What X questions. (si vous pouviez poster un commentaire pour m’aider à comprendre correctement le sens de cette phrase je vous en remercie).

Ils apportent aussi quelques précisions en rajoutant à nouveau quelques règles afin de découper certains de ces cas.

Dans le cas où aucune de ces stratégies n’apportent de solutions ils donnent le même poids  à toutes les catégories.

L’approche du second système est très proche du premier système bien que des expressions régulières soient rajoutées dans les règles afin de permettre un affinement de ces règles.

Pour le premier système, lors de cette campagne ils ont put constater qu’il obtenait 62.5% de bonne classification lorsqu’il s’agit de Personnes, 67.5 pour les Lieux, 45.5 pour les Dates, 52.7 pour les Quantités et ensuite de plus faibles scores pour les autres cas voir des scores carrément nuls (égal à 0).

En conclusion on peut voir que les résultats sont assez intéressants au vu de la simplicité des règles. Cependant cela marche plutôt correctement dans ces exemples où l’on a finalement que très peu de catégories différentes. Dans le cas où une plus grande granularité est souhaitée, arriver à concevoir les règles nécessaires à départager les questions doit être nettement plus long et difficile.

Néanmoins, si l’utilisation de ces règles peut être une alternative dans le cadre de notre projet, nous pensons qu’elle ne peuvent et ne doivent pas être une finalité. En effet dans notre cas nous avons une catégorie “Organisation” qui, pour certaines questions, pourrait être confondue avec la catégorie “Personne” si l’on utilisait des règles. Par exemple dans la question : “Qui a construit la Laguna”, une étiquette “Personne” serait automatiquement attribuée et la recherche d’un constructeur de Laguna de type Personne ne donnerait probablement rien, alors qu’il faut bien évidemment trouver l’organisation qui produit (ou a produit) la Laguna.

Ceci va naturellement nous mener à considérer ce que pourrait nous apporter l’apprentissage automatique dans ce domaine.

 

Voici des liens vers des articles détaillants les deux systèmes :

Pour smart : http://trec.nist.gov/pubs/trec8/papers/att-trec8.pdf

Pour qacl : http://tln.li.univ-tours.fr/Tln_Colloques/TALN2001-RECITAL2001/Actes/tome1_PDF/partie4_p403_482/art6_p455_462.pdf

ludo & Romain

Introduction à la Classification des questions

Tout d’abord qu’entendons nous par “classification des questions” ?

La classification consiste par différents moyens à définir ce que l’utilisateur espère trouver comme type de réponse, c’est à dire que l’on associe à une question l’étiquette sémantique de la réponse attendue.

Par exemple:

  • What athlete makes the most money from sports merchandise sales ? -> PERSonne
  • What is the name of the city that Maurizio Pellegrin lives in ? -> LOC et plus précisément une ville

Tout d’abord pourquoi nous intéressons nous à ce sujet?

La raison est simple, dans le cadre de notre projet nous devons développer un système permettant de passer d’une requête en langage naturel à des informations permettant d’interroger les moteurs développés par Eric Charton regroupés dans la projet NLGbAse (Natural Language Generation and Natural Language Understanding).

Ces trois moteurs sont encore en développement et cherche les réponses sur Wikipédia.

Le premier des trois moteurs est un moteur classique, qui prend des mots clés et qui cherche les fiches nommées ainsi.

Le second prend en plus d’une liste de mots clés la catégorie de la fiche recherchée. (chaque fiche s’est vue attribuée une catégorie sémantique (ex: la fiche “Londres” -> Lieu). Par exemple si je cherche à savoir qui est le guitariste des Sex Pistols je dois indiquer que je cherche une PERSonne et mettre en mots clés guitariste Sex Pistols. Sur cet exemple la fiche des Sex Pistols sort en premier et on peux y trouver la réponse et ensuite en deuxième position apparait la fiche de Steve Jones qui est la personne recherchée.

Le troisième moteur est un système de question réponse. On rentre à nouveau la catégorie de la réponse recherchée mais aussi la fiche dans laquelle l’information doit être recherchée et enfin les mots près desquels l’information doit se trouver. Dans notre exemple : PERSonne, Sex Pistols et guitariste;guitare.

On voit donc que dans les deux derniers moteurs si l’on veut être capable de passer de la question “Qui est le guitariste des Sex Pistols?” il nous faut arriver à déterminer que l’utilisateur recherche une PERSonne et donc à arriver à classifier les questions en fonctions du type de  réponses souhaitées.

Donc pour notre projet, arriver à une classification des questions performante est un point capital, car si une question est mal classifiée alors les chances d’obtenir la bonne réponse est presque nulle (voire nulle si les moteurs ne font pas aussi d’erreurs).

On peut voir deux principaux avantages à utiliser la classification des questions.

Le premier est que cela fixe des contraintes sur la réponse attendue et donc les réponses sélectionnées ont plus de chances d’être celles souhaitées par l’utilisateur.

Par exemple sur la question : « Dans quelle ville est né Jean Sebastien Bach ? ». Avec une classification on peut déterminer que la réponse souhaitée doit être du type lieu mais plus précisément une ville. Par exemple si le système trouve pour résultats deux fiches : l’une est celle d’Eisenach (ville) et celle de l’Allemagne (pays) on sait qu’il faut sélectionner Eisenach.

Le second avantage que l’on peut voir est la possibilité d’avoir des méthodes d’extractions des réponses (dans les systèmes de question réponse) différents selon la catégorie de la question. Par exemple la question est  « Quand est né Poutine ? » en sachant que ce qui est attendu est une date mais plus particulièrement de naissance et en sachant que pour Wikipédia les dates de naissances d’une personne apparaissent souvent en début de document de la manière suivante « Nom_Personne (Date_Naissance – » on pourrait prévoir un système d’extraction probablement plus performant.

Dans le cadre de notre projet on voit bien que le premier avantage nous intéresse beaucoup et que le second va peut-être nous permettre de déterminer les mots près desquels doit se trouver la réponse attendue pour le troisième moteur.

La classification des questions est donc un point central de notre projet (au même titre que l’extraction de focus) et nous allons donc axer une grande partie de nos recherches et expérimentations sur ce domaine.

ludo

Excite

Excite est un moteur de recherche “classique” à ceci près qu’il recherche les réponses en utilisant aussi d’autres moteurs : Google, Yahoo! Search, Ask, About, Yahoo! Search Marketing, et Miva.

Il recherche à l’instars de Google des pages web, des images, des vidéos,des news et de l’audio.

Lorsque l’on effectue une recherche il nous ait proposé de classer les documents par pertinence ou par moteurs utilisés. Grâce à ceci on peut voir que les premiers résultats proposés lorsque l’on choisit la classement par pertinence sont en général un mix des résultats de Google et Yahoo principalement.

A droite de l’écran on peut voir nos dernières requêtes ainsi que des suggestions de requêtes.

Je ne m’étendrais pas plus longtemps sur le sujet, je pense qu’il était interessant de le signaler car il est interessant de pouvoir obtenir des informations issues de plusieurs moteurs différents afin de ne pas avoir toujours les mêmes documents et ce sans avoir à parcourir le site de plusieurs moteurs. De plus ce moteur reconnait automatiquement la langue dans laquelle est formulée la question ce qui est bien pratique.

Si ça vous interesse voici le lien

ludovic

AnswerBus

En farfouillant sur le net à la recherche d’un corpus de questions crée par Li et Roth je tombe par hasard sur une page qui m’annonce qu’un corpus de questions non annotées (contrairement à celui de Li et Roth utilisé dans SNoW) est disponible sur AnswerBus.

Du coup je cherche le site et j’ai la bonne surprise de tomber sur un moteur de question réponse.

Bon avant de m’éparpiller je cherche le corpus et effectivement il y a bien un corpus de près de 25000 questions (en anglais) mis à disposition dont voici le lien direct ici

Ce corpus n’est probablement sans défaut car il semblerait que ces questions soient extraites de l’historique des questions posées par les utilisateurs

Ceci fait je peux passer au moteur.

AnswerBus est un système de question-réponse qui va chercher les résultats dans des pages sur le web.

Le système est relativement simple, d’une part les questions sont catégorisées et d’autre part des mots en sont extraits.

AnswerBus sélectionne à partir des informations extraites quels moteurs parmi les cinq qu’il utilise (Google, Yahoo,YahooNews, AltaVista et WiseNut) est le plus apte à répondre à cette question (par exemple si la question porte sur un fait d’actualité YahooNews sera privilégié).

Une fois les documents performants récupérés des passages en sont extraits puis ceux qui correspondent au type de la réponse attendue sont conservés, triés et présentés à l’utilisateur.

On peut aussi voir que le moteur se propose de répondre aux questions formulée en plusieurs langues (Anglais, Français, Espagnol, Allemand et Portugais). Je dois admettre que j’ai eu du mal à formuler une question en français pour laquelle il ne m’a pas renvoyé : “Unfortunately, I don’t know the answer to your question” …

Quand finalement j’obtiens une réponse ce n’est pas bien pertinent.

Dans l’article mis en lien à la fin du post et qui explique comment fonctionne AnswerBus on peut voir que le système se contente de reconnaitre si la langue utilisée est l’anglais. Si ce n’est pas le cas AnswerBus envoit la question à l’outil de traduction Babelfish d’Altavista pour récupérer la version en anglais. Ceci est un peu surprenant car pour m’être beaucoup servi de cet outil je peux dire qu’il n’est pas très performant et que le sens de la phrase est parfois perdu. Comment alors espérer répondre correctement à la question de l’utilisateur? Cependant je pense qu’il y a des chances pour que cette approche ait été mise de côté puisque on constate que les réponses à une question posée en français sont elles aussi en français et ce n’est pas une traduction là aussi puisque lorsque l’on va sur les sites d’où sont issus les réponses on voit qu’ils sont en français… Etonnant.

Toujours d’après ce même article AnswerBus pourrait se targuer de répondre à près de 60% (selon la mesure NIST) des questions écrasant grand nombre d’autres système (tel que QuASM) et avec des temps de réponses très inférieurs dans le pire des cas.

J’ai donc fait deux ou trois tests sur le moteur et effectivement il répond asez bien aux questions en anglais.

Par exemple pour “who is nicolas sarkozy’s wife” (oui je sais il faut que je me renouvel) on a parmis les dix réponses proposées : les deux premières parlent de Cécilia, les trois suivantes de la mère de sarkozy… et ensuite les autres de Carla Bruni. Donc des meilleurs résultats que Powerset (si on met à part l’utilisation de Freebase et que l’on considère juste les pages rapportées).

Donc un moteur sympathique (pas grâce à son interface…), à étudier plus en profondeur !

Pour plus d’informations je vous propose de vous rendre directement sur le site d’AnswerBus où vous pourrez trouver en plus du moteur lui même, des corpus de questions (dont celui cité plus haut) et des publications ayant trait à ce système.

Voici aussi un lien vers l’article pré-cité qui explique rapidement comment fonctionne le moteur et comment sont résolus certaines tâches (comme l’étiquetage d’entité nommée ou encore la résolution des anaphores) ainsi qu’une évaluation du système.

ludo



Suivre

Get every new post delivered to your Inbox.