Pattern es un módulo de minería web para Python. Tiene herramientas para:
Minería de datos: servicios web (Google, Twitter, Wikipedia), rastreador web, analizador HTML DOM
Procesamiento del lenguaje natural: etiquetadores de partes del discurso, búsqueda de n-gramas, análisis de sentimientos, WordNet
Aprendizaje automático: modelo de espacio vectorial, clustering, clasificación (KNN, SVM, Perceptron)
Análisis de Redes: centralidad y visualización de gráficos.
Está bien documentado, probado minuciosamente con más de 350 pruebas unitarias y viene con más de 50 ejemplos. El código fuente tiene licencia BSD.
Este ejemplo entrena un clasificador con adjetivos extraídos de Twitter usando Python 3. Primero, se recopilan los tweets que contienen el hashtag #win o #fail. Por ejemplo: "$20 de propina para una dulce viejecita hoy #gana" . Luego se analizan las etiquetas de palabras de parte del discurso, conservando solo los adjetivos. Cada tweet se transforma en un vector, un diccionario de adjetivo → contar elementos, etiquetado como WIN
o FAIL
. El clasificador usa los vectores para saber qué otros tweets se parecen más a WIN
o más a FAIL
.
desde patrón.web importar Twitter desde patrón.en importar etiqueta desde patrón.vector importar KNN, counttwitter, knn = Twitter(), KNN()for i in range(1, 3):for tweet in twitter.search('#win OR # fail', start=i, count=100):s = tweet.text.lower()p = '#win' en s y 'WIN' o 'FAIL'v = etiqueta(s)v = [palabra por palabra, pos en v si pos == 'JJ'] # JJ = adjetivov = count(v) # {'dulce': 1}if v:knn.train(v, type=p)print(knn.classify('hamburguesa de batata'))print (knn.classify('autocorrección estúpida'))
Pattern es compatible con Python 2.7 y Python 3.6. Para instalar Pattern para que esté disponible en todos sus scripts, descomprima la descarga y desde la línea de comando haga:
patrón de cd-3.6 instalación de python setup.py
Si tiene pip, puede descargarlo e instalarlo automáticamente desde el repositorio de PyPI:
patrón de instalación de pips
Si nada de lo anterior funciona, puedes hacer que Python reconozca el módulo de tres maneras:
Coloque la carpeta del patrón en la misma carpeta que su guión.
Coloque la carpeta de patrones en la ubicación estándar para los módulos para que esté disponible para todos los scripts:
c:python36Libsite-packages
(Windows),
/Library/Python/3.6/site-packages/
(Mac OS X),
/usr/lib/python3.6/site-packages/
(Unix).
Agregue la ubicación del módulo a sys.path
en su script, antes de importarlo:
MÓDULO = '/usuarios/tom/desktop/pattern'import sys; si el MÓDULO no está en sys.path: sys.path.append(MÓDULO) de patrón.en importar árbol de análisis
Para obtener documentación y ejemplos, consulte la documentación del usuario.
3.6
BSD , consulte LICENSE.txt
para obtener más detalles.
De Smedt, T., Daelemans, W. (2012). Patrón para Python. Revista de investigación sobre aprendizaje automático, 13 , 2031-2035.
El código fuente está alojado en GitHub y se aceptan contribuciones o donaciones.
Pattern incluye los siguientes conjuntos de datos, algoritmos y paquetes de Python:
Etiquetador brillante , Eric Brill
Brillante etiquetador del holandés Jeroen Geertzen
Brillante etiquetador para German , Gerold Schneider y Martin Volk
Brill tagger para español , entrenado en Wikicorpus (Samuel Reese & Gemma Boleda et al.)
Brill tagger para francés , entrenado con Lefff (Benoît Sagot & Lionel Clément et al.)
Etiquetador brillante para italiano , extraído de Wikcionario
Pluralización inglesa , Damian Conway
Inflexión verbal española , Fred Jehle
Inflexión verbal francesa , Bob Salita
Marco gráfico de JavaScript , Aslak Hellesoy y Dave Hoover
LIBSVM , Chih-Chung Chang y Chih-Jen Lin
LIBLINEAR , Rong-En Fan et al.
Centralidad de NetworkX , Aric Hagberg, Dan Schult y Pieter Swart
corrector ortográfico , Peter Norvig
Autores:
Tom De Smedt ([email protected])
Walter Daelemans ([email protected])
Colaboradores (cronológicos):
Frederik 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 Sileo
Gerold Schneider
Martín Volk
Samuel José
Shubhanshu Mishra
Robert Elwell
Fred Jehle
Antoine Mazières + fabelier.org
Rémi de Zoeten + closealert.nl
Kenneth Koch
Jens Grivolla
Fabio Marfia
Steven Loria
Colin Molter + tevizz.com
Pedro Toro
Maurizio Sambati
Dan Fu
Salvatore Di Dio
Vincent van Asch
Frederik Elwert