Question

Je suis en train de modéliser un système de reconnaissance phonétique qui doit isoler les instances de mots (chaînes de téléphones) sur un long jet de téléphones qui ne dispose pas d'espace entre chaque mot. Le flux de téléphones peut avoir été mal reconnu, avec des substitutions de lettres / insertions / suppressions, donc je vais devoir faire chaîne correspondant à environ.

Cependant, je veux que le correspondant soit phonétiquement motivé, par exemple « M » et « n » sont phonétiquement similaires, de sorte que le coût de substitution de « m » pour « n » devrait être faible, par rapport à dire, « m » et « k ». Donc, si je cherche [mein] « principale », il correspondrait à la séquence de lettres [MEIM] de « mutiler » avec, par exemple, le coût de 0,1, alors qu'il correspondrait à la séquence de lettres [Meik] « faire » avec, par exemple , le coût de 0,7. De même, il y a des coûts différents pour l'insertion ou la suppression de chaque lettre. Je peux fournir une matrice de confusion qui, pour chaque paire de lettres (x, y), donne le coût de substitution x par y, où x et y sont une lettre ou la chaîne vide.

Je sais qu'il ya des outils qui font une concordance approximative, comme agrep, mais pour autant que je peux dire, ils ne prennent pas une matrice de confusion en entrée. Autrement dit, le coût de any insertion / substitution / suppression = 1. Ma question est, sont-il des outils open-source déjà disponibles qui peuvent faire une concordance approximative avec des matrices de confusion, et si non, ce qui est un bon algorithme que je peux mettre en œuvre pour y parvenir?

EDIT: Pour être clair, je tente d'isoler les cas approximatives d'un mot tel que [mein] à partir d'une chaîne plus longue, par exemple [Aiammeinlimeiking ...]. Idéalement, l'algorithme / outil doit signaler les cas tels que [mein] avec coût 0,0 (correspondance exacte), [Meik] avec un coût de 0,7 (match proche), etc, pour tous les matches de chaîne approximatives avec un coût inférieur à un seuil donné.

Pas de solution correcte

Autres conseils

Je ne suis pas au courant de phonétiques que de reconnaissance des matrices utilisation de confusion. Je connais Soundex et note match .

Je pense que le K-plus proche algorithme voisin pourrait être utile pour le type des approximations qui vous intéresse.

Peter Kleiweg de Tapis / L04 (pour la dialectologie de calcul) comprend une mise en œuvre de distance de Levenshtein qui vous permet de spécifier l'insertion non uniforme, la suppression et les coûts de substitution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top