Quel est le moyen le plus efficace d'analyser le langage naturel?Analyse syntaxique du langage naturel
Let "cordes" être un map<string, void (*func)(int,char**)>
contenant des chaînes telles que:
Set the alarm for *.
Call *.
Get me an * at * for *.
et leurs fonctions correspondantes. Maintenant, supposons que « entrée » est un string
contenant une phrase comme:
Call David.
Comment mettre en œuvre une fonction telle que parse
qui prendrait la « entrée » et correspond à l'une des chaînes de la carte. Puis appelez sa fonction correspondante, en lui passant argc et argv contenant tous les entires sauvages (* dans les chaînes). Quel est le moyen le plus efficace de mettre en œuvre une telle fonction?
Si vous avez une liste prédéfinie de commandes avec des espaces réservés fixes qui ne sont pas réels C'est un langage naturel, mais plutôt une langue spécifique au domaine ou tout au plus une langue formelle (google DSL - langage spécifique au domaine). Vous pouvez donc simplement définir un ensemble d'expressions régulières pour faire correspondre les commandes et extraire les espaces réservés par exemple. Mais votre question est assez large pour y répondre facilement. – xander
Commentaire de style: Depuis C++ 11 nous écririons cela comme 'std :: function>)'. –
MSalters