Implémentation de l'arbre TRIE en Python LOUDS est utilisé pour la structure de données lors de la création de l'arborescence TRIE
--Un arbre TRIE est un ensemble de chaînes de caractères représentées par une structure arborescente ordonnée. --Composé de nœuds et d'arêtes, et la position et la clé (chaîne de recherche) de chaque nœud correspondent. --Une chaîne de caractères vide correspond au nœud racine
En raison de ses caractéristiques, les arbres TRIE sont utilisés pour la conversion kana-kanji et la complétion automatique.
LOUDS --LOUDS (séquence de degrés unaire d'ordre de niveau) est l'une des expressions de l'arbre d'ordre et peut exprimer la structure arborescente avec une taille extrêmement petite.
Implémentation de ce qui suit en Python (GitHub)
--trie.py: arbre TRIE --builder.py: tableau de bits --words.py: créer / lire des données de dictionnaire --measure.py: mesure la mémoire et le temps de recherche --search_word.py: recherche de mots --test.py: Mesure du temps de recherche
Lorsqu'elles sont exécutées comme suit, les données de dictionnaire dans lesquelles les numéros de nœud et les mots de l'arborescence TRIE sont écrits séparés par des virgules sont créées. Données utilisées corpus wordnet de nltk Plus tard, les données de test seront créées à partir de ces données de dictionnaire.
from words import CreateWords
CreateWords("./data/origin/wordnet_words.csv")
python search_word.py Données du dictionnaire PATH
Vous pouvez effectuer une recherche sur un seul mot en exécutant le fichier ci-dessus Lorsque vous entrez un mot, le numéro de nœud, la définition du mot et le préfixe obtenus à partir de la recherche sont affichés comme indiqué ci-dessous.
Vous pouvez créer des données de test pour un nombre illimité de mots à partir des données du dictionnaire en exécutant ce qui suit
python words.py Données du dictionnaire PATH Nombre d'échantillons 1, Nombre d'échantillons 2, Nombre d'échantillons 3,…
Si vous souhaitez créer plusieurs données de test, spécifiez la taille de l'échantillon des données séparées par des virgules. Si "Les données de test sont créées." Est sortie, c'est ok. Les données de test sont créées dans ./data/test
Une fois exécuté, le test peut être exécuté un nombre illimité de fois avec les données de test comme indiqué ci-dessous.
python test.py Données du dictionnaire PATH Données de test PATH Nombre de tests
Si "Test est terminé." Est sortie, c'est ok. Les résultats de sortie sont créés dans ./results
Dans la mesure, le temps exact de recherche de correspondance et le temps de recherche de préfixe sont mesurés.
En interne, la fonction de recherche de la classe trie est exécutée pour le mot d'entrée et le numéro de nœud de l'arbre TRIE est sorti. Le numéro de nœud de sortie est assemblé avec le numéro de nœud dans les données du dictionnaire, et s'ils correspondent, le nombre de recherches est incrémenté de 1 et il est confirmé si la recherche est exacte. La même chose s'applique à la recherche de préfixe
Recommended Posts