2010-07-23 17 views
2

J'ai un grand automate à états finis avec environ 50 états et chaque état a moy. 3-4 transitions vers d'autres états. Donc, je ne pense pas que le "modèle d'état" est approprié pour cela. Ce FSM a tendance à être un correcteur orthographique et un analyseur morphologique pour un langage agglutinant.Quel est le meilleur moyen d'implémenter un FSA/FSM en Java?

Quelle est la meilleure façon de mettre en œuvre un FSA/FSM en Java ou devrais-je utiliser une bibliothèque open source. Étant donné que les langues naturelles ne sont pas régulières (il existe des exceptions), existe-t-il un moyen de rendre cette implémentation flexible pour de telles situations?

Merci

+0

Si c'est un vérificateur d'orthographe, alors probablement vous pouvez utiliser le filtre bloom au lieu d'utiliser fsm. – Emil

+0

@emil merci pour le commentaire. Il ne va pas seulement vérifier le mot pour l'exactitude mais aussi l'analyser à sa racine et à ses suffixes. – hrzafer

+0

@hrzafer: Il semble que [trie] (http://en.wikipedia.org/wiki/Trie) serait une bonne structure de données pour vous.A [google search] (http://www.google.co. dans/search? hl = fr & safe = off & q = trie + google & aq = f & aqi = & aql = & oq = & gs_rfai =) vous donnerait quelques bonnes implémentations de trie. – Emil

Répondre

0

Il semble que ce serait facile à mettre en œuvre ce comme dirigé, graphe étiqueté. Peut-être y a-t-il des bibliothèques de graphes pour Java qui seraient appropriées pour cela aussi, mais je n'ai aucune expérience avec eux, donc je laisserai à d'autres le soin de faire des recommandations spécifiques.