Sprint 5 onderzoek en conclusie (concept)

Afgelopen week diep in de features functie van LUIS gedoken. Het doel van deze sprint was:

Hoe dynamisch kunnen we de cypher* query generen op basis van het LUIS result.

De conclusie van het onderzoek is:

  • Antwoord type classificatie** toepassen d.m.v. vele intents
  • Features verder uitbreiden en toepassen voor relatie en onderwerp herkenning in een vraag van een gebruiker.

Er is onderzoek nodig naar wat de gevonden problemen voor invloed hebben op deze oplossing.

Verdieping

Meerdere intents

Het opmerkelijkst is dat om deze methode succesvol te maken is juist het gebruik van meerdere intents nodig. Eerst was de gedachte dat het beter was om 1 intent voor alle vragen te maken. 1 intent zou minder configureerwerk betekenen en ervoor zorgen dat het beperkt blijft tot 1 luis model (Omdat de max 80 intents is per luis model). Juist blijken de meerdere intents erg handig voor antwoord type classificatie waardoor de vragen beantwoord kunnen worden.

Hier ben ik ook pas 1 dag voor het einde van de sprint achter gekomen. Dus het onderzoek hierna wordt mogelijk doorgeschoven naar volgende sprint. Eerst was mijn conclusie was dat het antwoord type classificatie via een ander neuraal network moest worden gedaan.

Features

Daarnaast heb ik ook ontdekt hoe belangrijk de features zijn. Elk woord (onderwerp, relatie) wat je LUIS goed wilt laten classificeren naar een niet standaard entity moet in de features staan. Anders negeert of classificeert LUIS deze zoals LUIS denkt dat logisch is. Hierbij een voorbeeld van een koe *** die niet als dier is geclassificeerd is en daarom als encyclopedie item wordt herkent waar ik niets mee kan. (omdat niet alle dieren als encyclopedie item worden herkend)

Uitdagingen

De tegengekomen problemen zijn:

In de cypher query en in C# staat nog te veel hardcoded. Er wordt nog niet gewerkt met properties in de graph database. Hierin verwacht ik ook nieuwe problemen tegen te komen.

Voor relatie matching zijn er synoniemen nodig omdat de relatie die herkent wordt door LUIS ook bijv een synoniem kan zijn van de naam die wordt gebruikt in de graph database. Het toevoegen zal hoe dan ook veel tijd kosten. Indien het geautomiseerd wordt moet het ook worden nagekeken.

 

* Cypher is de query language voor de graph database Neo4J.

**Antwoord type classificatie houdt in dat een zin wordt geanalyseerd (in de moelijkste vorm) en daarbij bepaald wordt wat een gebruiker terug verwacht. Bijv een nummer:datum (dus 2017). Of een locatie:stad (bijv breda). Hieronder staat het meest gebruikte model van Li & Roth

*** Op dit moment van de afstudeerstage wordt gebruik gemaakt van een demo dierendatabase zodat er geen domein specifieke problemen moeten worden opgelost.

Leave a Reply

Your email address will not be published. Required fields are marked *