Ahh, problème de coréférence. Ma spécialité.
Une manière de voir cela est un problème de correction d'orthographe dans un dictionnaire. Ce que vous voulez, c'est avoir deux composants, une métrique de distance d'édition comme noté par j_random_hacker ET un dictionnaire qui liste toutes les abréviations acceptées. Vous voudrez peut-être inclure un nombre dans le dictionnaire afin que les formes longues plus communes comptent plus.
Le modèle de distance d'édition va être déterminé en fonction d'une métrique d'évaluation. Il y a un bon tutoriel sur la vérification orthographique à http://alias-i.com/lingpipe/demos/tutorial/querySpellChecker/read-me.html
Vous ne comptez pas utiliser un modèle de langage pour évaluer les modifications, mais il vous mis en place pour les indicateurs de performance, la distance d'édition, etc ...
Breck
Clarification pour la question de suivi:
Vos mesures dépendront des performances du système. Vous regardez ce que le système a eu raison, ce qui s'est mal passé et vous modifiez ensuite la distance d'édition pour mieux modéliser ce que vous voulez. Donc, le score du dictionnaire peut être si la phrase est dans ou hors du dictionnaire. Je commençais par le premier caractère avec un score de -1 par mot dans la phrase et -1 pour les mots de fonction sautés dans la phrase comme 'et', -5 pour sauter une lettre dans l'acronyme. Donc, "bbq", en regardant le dictionnaire peut être apparié à "Beer and Bakes Gates" avec un score de -8 (-1 + -1 + -1 + -5)
"Barbeque Nation" aura besoin de modifications ce score mieux. Ainsi, une lettre dans le même mot obtient des scores de -5 et le mot sauté est -6,5 (-,5 + - .5 + - .5 + -5), ce qui est un meilleur score. Ces coûts d'édition doivent être équilibrés sur l'ensemble de formation que vous avez qui devrait être plusieurs milliers d'exemples si vous voulez une généralité.
Avant de pouvoir faire quoi que ce soit, vous avez besoin d'un moyen de marquer comment une abréviation correspond à une chaîne; le problème devient alors celui de déterminer quelle chaîne a le score le plus élevé (dans le pire des cas, il suffit de calculer le score pour chacun d'entre eux, et choisir le plus élevé). Il y a plusieurs façons de marquer des matchs, mais je ne peux pas penser à ceux qui marqueraient "Barbeque Nation" plus haut que "BBQ Smoke and Grill" - et dans tous les cas, * vous * devez décider quelle fonction de scoring utiliser . –