Pattern est un module d'exploration de sites Web pour Python. Il dispose d'outils pour :
Data Mining : services web (Google, Twitter, Wikipedia), web crawler, analyseur HTML DOM
Traitement du langage naturel : marqueurs de parties du discours, recherche n-gram, analyse des sentiments, WordNet
Machine Learning : modèle spatial vectoriel, clustering, classification (KNN, SVM, Perceptron)
Analyse de réseau : centralité et visualisation des graphiques.
Il est bien documenté, minutieusement testé avec plus de 350 tests unitaires et est livré avec plus de 50 exemples. Le code source est sous licence BSD.
Cet exemple entraîne un classificateur sur les adjectifs extraits de Twitter à l'aide de Python 3. Tout d'abord, les tweets contenant le hashtag #win ou #fail sont collectés. Par exemple : « 20 $ de pourboire sur une gentille petite vieille dame aujourd’hui #gagnez » . Les balises des parties du discours des mots sont ensuite analysées, ne gardant que les adjectifs. Chaque tweet est transformé en un vecteur, un dictionnaire d'adjectifs → compter les éléments, étiquetés WIN
ou FAIL
. Le classificateur utilise les vecteurs pour savoir quels autres tweets ressemblent davantage à WIN
ou à FAIL
.
depuis pattern.web importer Twitterfrom pattern.en import tagfrom pattern.vector importer KNN, counttwitter, knn = Twitter(), KNN()pour i in range(1, 3):pour tweet dans twitter.search('#win OR # fail', start=i, count=100):s = tweet.text.lower()p = '#win' en s et 'WIN' ou 'FAIL'v = tag(s)v = [mot pour mot, pos en v si pos == 'JJ'] # JJ = adjectifv = count(v) # {'sweet': 1}if v:knn.train(v, type=p)print(knn.classify('sweet Potato Burger'))print (knn.classify('correction automatique stupide'))
Le modèle prend en charge Python 2.7 et Python 3.6. Pour installer Pattern afin qu'il soit disponible dans tous vos scripts, décompressez le téléchargement et depuis la ligne de commande faites :
modèle de cd-3.6 installation de python setup.py
Si vous disposez de pip, vous pouvez télécharger et installer automatiquement à partir du référentiel PyPI :
modèle d'installation pip
Si aucune des solutions ci-dessus ne fonctionne, vous pouvez informer Python de l'existence du module de trois manières :
Placez le dossier de modèles dans le même dossier que votre script.
Placez le dossier de modèles à l'emplacement standard des modules afin qu'il soit disponible pour tous les scripts :
c:python36Libsite-packages
(Windows),
/Library/Python/3.6/site-packages/
(Mac OS X),
/usr/lib/python3.6/site-packages/
(Unix).
Ajoutez l'emplacement du module à sys.path
dans votre script, avant de l'importer :
MODULE = '/users/tom/desktop/pattern'import sys; si MODULE n'est pas dans sys.path : sys.path.append(MODULE)from pattern.en import parsetree
Pour obtenir de la documentation et des exemples, consultez la documentation utilisateur.
3.6
BSD , voir LICENSE.txt
pour plus de détails.
De Smedt, T., Daelemans, W. (2012). Modèle pour Python. Journal de recherche sur l'apprentissage automatique, 13 , 2031-2035.
Le code source est hébergé sur GitHub et les contributions ou dons sont les bienvenus.
Pattern est fourni avec les ensembles de données, algorithmes et packages Python suivants :
Brill tagueur , Eric Brill
Tagueur de Brill pour le Néerlandais , Jeroen Geertzen
Brill tagger pour l'allemand , Gerold Schneider et Martin Volk
Brill tagger pour l'espagnol , formé sur Wikicorpus (Samuel Reese & Gemma Boleda et al.)
Tagueur de Brill pour le français , formé sur Lefff (Benoît Sagot & Lionel Clément et al.)
Brill tagger pour l'italien , extrait du Wiktionnaire
Pluralisation anglaise , Damian Conway
Inflexion du verbe espagnol , Fred Jehle
Inflexion du verbe français , Bob Salita
Framework JavaScript graphique , Aslak Hellesoy et Dave Hoover
LIBSVM , Chih-Chung Chang et Chih-Jen Lin
LIBLINEAR , Rong-En Fan et al.
Centralité NetworkX , Aric Hagberg, Dan Schult et Pieter Swart
correcteur orthographique , Peter Norvig
Auteurs :
Tom De Smedt ([email protected])
Walter Daelemans ([email protected])
Contributeurs (chronologiques) :
Frédéric De Bleser
Jason Wiener
Daniel Friesen
Jeroen Geertzen
Thomas Crombez
Ken Williams
Peteris Erins
Rajesh Nair
F. De Smedt
Radim Řehůřek
Tom Loredo
John DeBovis
Thomas Siléo
Gérold Schneider
Martin Volk
Samuel Joseph
Shubhanshu Mishra
Robert Elwell
Fred Jehlé
Antoine Mazières + fabelier.org
Rémi de Zoeten + closealert.nl
Kenneth Koch
Jens Grivolla
Fabio Marfia
Steven Loria
Colin Molter + tevizz.com
Pierre Bull
Maurizio Sambati
Dan Fu
Salvatore Di Dio
Vincent Van Asch
Frédéric Elwert