Skip to content

LeeptyAnalyser : ajout de dictionaire

solal edited this page Aug 12, 2012 · 7 revisions

L'analyser embarqué de Leepty se base sur des dictionnaires de mots communs afin d'identifier et d'écarter les mots trop communs pour avoir une valeur en temps que mot clé. Chaque langue supportée possède son propre dictionnaire.

L'ajout de dictionnaire afin d'étendre les capacités de support de langue de Leepty est très simple et se base sur une structure de dictionnaire préétablie.

Architecture

Les dictionnaire suivent l'architecture suivante :

UML Class

  • Les dictionnaires sont des classes PHP.
  • Le non de classe correspond au code ISO 639-1 (alpha-2) de la langue.
  • La classe est déclarée sous le namespace dictionary.
  • Les dictionnaires sont stockés dans le répertoire dictionary de l'analyser dans un fichier du même non que la classe.
  • La classe du dictionnaire hérite de la classe CommonDictionary.

Implémentation

L’implémentation d'un dictionnaire se base sur la surcharge d'une où deux méthode de la classe CommonDictionary.

  1. La méthode getWords() qui retourne la liste de mots.
  2. La méthode findWords($word) qui retourne si oui ou non (true/false) un mot se trouve dans la liste.

getWords()

Le but de la méthode getWords() est de retourner la liste de mots composant le dictionnaire. Cette méthode est obligatoire.

La classe CommonDictionary prévoie le traitement d'une liste de mots sous forme d'un tableau à 2 niveaux. Le premier niveau étant un tableau associatif entre des tableaux de mots commençant par une lettre commune, avec comme clé la lettre en question. Ce qui doit nous donner pour les langues occidentales un tableau découpé 26 sous-tableaux. Les mot doivent tous être en minuscule.

Exemple:

<?
array(
	'a' => array(
		'a','à','alpha','amont','avril'
	),
	'b' => array(
		'b','beaucoup'
	),
	{...}
);

Il est possible d'utiliser une autre forme d'organisation du dictionnaire. Mais elle ne pourra pas être directement lue par la méthode findWord($word) de CommonDictionary. Il faudra la surcharger.

findWord($word)

La méthode findWord($word) retourne true ou *false en fonction de si le mot passé en paramètre à été trouvé ou non. La classe mère CommonDictionary définie déjà son implémentation pour un dictionnaire ayant le format décrit précédemment. Il n'est donc nécessaire de la définir que si votre dictionnaire utilise un autre format.

Clone this wiki locally