root / xap / tags / 0.1.4 / tokenizer / tokenizer.txt

Revision 220:cb1c18a96b96, 2.6 kB (checked in by Lafaye Philippe (RAGE2000) <lafaye@…>, 10 months ago)

Add a new tag version of xap module

Line 
1Tokenizer
2_________
3
4:Revision: $Id: tokenizer.txt 46815 2006-06-28 16:25:48Z tziade $
5:Author: Tarek Ziadé
6
7Le module tokenizer est en charge d'effectuer un traitement sur les messages,
8pour en extraire une liste de lèmes.
9
10Chaque texte est traité en fonction de sa langue lorsque c'est possible.
11
12Tokenizer procède en 3 étapes:
13
14- éclatement du texte en mots et suppression des mots courts, suivant un seuil
15- application d'une liste de stop words
16- normalisation des mots restants
17- application d'un stemming
18
19Le code est organisé en suivant le principe d'une chaînes de transformations
20(design pattern: chain of responsibility):
21chaque étape est représentée par une classe qui réceptionne un élément
22à transformer et renvoie un résultat.
23
24Les implémentations font usage des modules C de zopyx.txng3 lorsque qu'ils
25sont disponibles.
26
27Le tokenizer prend le rôle de director et compose sa chaine de transformation
28
29Le texte à transformer est le corps d'un mail::
30
31  >>> text = """
32  ... Zope est un serveur d'application complet, écrit principalement en Python
33  ... -- et en C pour certaines parties --,
34  ... disponible comme logiciel libre depuis 1998, date à laquelle
35  ... Digital Creation,
36  ... la société à l'origine du produit, l'a mis à disposition de la communauté.
37  ... Zope a rapidement évolué vers une version 2.
38  ... """
39
40- Filtre 1, éclatement en mots, et seuil
41- Filtre 2, application d'une liste de StopWords
42- Filtre 3, normalisation (ie retrait des accents, etc..)
43- Filtre 4, stemming des mots par le biais de pystemmer/snowball
44
45Application de la chaine de filtres::
46
47  >>> options = {'lang': 'fr', 'treshold': 1}
48  >>> from xap.tokenizer.filters import applyFilters
49  >>> filters = ('splitter', 'stopwords', 'normalizer', 'stemmer')
50  >>> changed_text = applyFilters(filters, text, options)
51
52Résultat du filtrage::
53
54  >>> ' '.join(changed_text)
55  'zop un serveur appliqu complet ecrit principal en python et en certain part disponibl logiciel libr depuis 1998 dat laquel digital creation societ origin du produit mis disposit de communaut zop rapid evolu version'
56
57Application de la chaine de filtres en anglais::
58
59  >>> options = {'lang': 'en', 'treshold': 1}
60  >>> from xap.tokenizer.filters import applyFilters
61  >>> filters = ('splitter', 'stopwords', 'normalizer', 'stemmer')
62  >>> changed_text = applyFilters(filters, text, options)
63
64Résultat du filtrage en anglais::
65
66  >>> ' '.join(changed_text)
67  'zope est un serveur applic complet ecrit principal en python et en pour certain parti dispon comm logiciel libr depui 1998 date laquell digit creation la societ origin du produit mis disposit de la communaut zope rapid evolu ver une version'
Note: See TracBrowser for help on using the browser.