2017-07-04 7 views
0

Pour mon projet de thèse de bachelor, je développe l'unité de compréhension du langage naturel pour un Chatbot. En ce moment je suis confronté au problème suivant:Chaîne floue correspondant à la recherche de synsets en allemand WordNet (GermaNet)

J'ai un mot, disons «Auto», qui est l'équivalent allemand de la voiture. Maintenant, l'utilisateur peut donner 'autto' comme entrée, parce qu'il a simplement fait une petite faute de frappe (en ajoutant un 't') et généralement dans une interface de chat, les utilisateurs ne suivent pas les règles majuscules/minuscules, mais tapent tout en minuscule.

Pour mon algorithme NLU, j'ai besoin de trouver pour chaque mot le Synset correct dans GermaNet (qui est à peu près équivalent au WordNet pour l'anglais). Un synset est un noeud dans le wordnet, qui abstrait tous les synonymes d'un sens de mot dans un noeud. Comme, par exemple, en allemand «Auto» (voiture) et «Automobil» ont la même signification et sont donc des représentations du même Synset.

La question est maintenant, comment puis-je trouver le Synset correct, si je n'ai pas une version orthographiquement correcte du mot? Je veux dire, la recherche de l'ensemble wordnet est complexe pour chaque mot.

Je pense que N-Grams pourrait offrir une solution au problème, mais je ne connais aucun algorithme. En ce qui concerne ce que j'utilise pour l'implémentation: Python3 avec NLTK, Stanford CoreNLP, et pygermanet.

Répondre

0

Si le mot d'entrée n'est pas dans GermaNet, vous pouvez d'abord appliquer une correction orthographique, par exemple PyEnchant, et rechercher le terme corrigé.