Pattern é um módulo de mineração web para Python. Possui ferramentas para:
Mineração de dados: serviços web (Google, Twitter, Wikipedia), rastreador web, analisador HTML DOM
Processamento de linguagem natural: etiquetadores de classes gramaticais, pesquisa de n-gramas, análise de sentimento, WordNet
Aprendizado de Máquina: modelo de espaço vetorial, clustering, classificação (KNN, SVM, Perceptron)
Análise de Redes: centralidade e visualização de gráficos.
Está bem documentado, exaustivamente testado com mais de 350 testes de unidade e vem com mais de 50 exemplos. O código-fonte é licenciado sob BSD.
Este exemplo treina um classificador em adjetivos extraídos do Twitter usando Python 3. Primeiro, os tweets que contêm hashtag #win ou #fail são coletados. Por exemplo: "Gorjeta de $ 20 para uma doce velhinha hoje #ganhe" . As tags de classe gramatical de palavras são então analisadas, mantendo apenas adjetivos. Cada tweet é transformado em um vetor, um dicionário de adjetivos → contar itens, rotulado WIN
ou FAIL
. O classificador usa os vetores para saber quais outros tweets se parecem mais com WIN
ou mais com FAIL
.
from pattern.web import Twitterfrom pattern.en import tagfrom pattern.vector import KNN, counttwitter, knn = Twitter(), KNN() for i in range(1, 3):for tweet in twitter.search('#win OR # falhar', start=i, count=100):s = tweet.text.lower()p = '#win' em s e 'WIN' ou 'FAIL'v = tag(s)v = [palavra por palavra, pos em v se pos == 'JJ'] # JJ = adjetivov = contagem(v) # {'doce': 1}if v:knn.train(v, type=p)print(knn.classify('hambúrguer de batata doce'))print (knn.classify('autocorreção estúpida'))
O padrão oferece suporte a Python 2.7 e Python 3.6. Para instalar o Pattern para que fique disponível em todos os seus scripts, descompacte o download e na linha de comando faça:
padrão de CD-3.6 instalação do python setup.py
Se você tiver pip, poderá baixar e instalar automaticamente do repositório PyPI:
padrão de instalação pip
Se nenhuma das opções acima funcionar, você pode informar o Python sobre o módulo de três maneiras:
Coloque a pasta padrão na mesma pasta do seu script.
Coloque a pasta padrão no local padrão dos módulos para que fique disponível para todos os scripts:
c:python36Libsite-packages
(Windows),
/Library/Python/3.6/site-packages/
(Mac OS X),
/usr/lib/python3.6/site-packages/
(Unix).
Adicione a localização do módulo a sys.path
no seu script, antes de importá-lo:
MODULE = '/users/tom/desktop/pattern'import sys; se MODULE não estiver em sys.path: sys.path.append(MODULE)from pattern.en importar parsetree
Para documentação e exemplos, consulte a documentação do usuário.
3.6
BSD , consulte LICENSE.txt
para obter mais detalhes.
De Smedt, T., Daelemans, W. (2012). Padrão para Python. Jornal de Pesquisa de Aprendizado de Máquina, 13 , 2031–2035.
O código-fonte está hospedado no GitHub e contribuições ou doações são bem-vindas.
O padrão é fornecido com os seguintes conjuntos de dados, algoritmos e pacotes Python:
Marcador Brill , Eric Brill
Brill tagger para holandês , Jeroen Geertzen
Brill tagger para alemão , Gerold Schneider e Martin Volk
Brill tagger para espanhol , treinado no Wikicorpus (Samuel Reese & Gemma Boleda et al.)
Brill tagger para francês , treinado em Lefff (Benoît Sagot & Lionel Clément et al.)
Brill tagger para italiano , extraído do Wikcionário
Pluralização inglesa , Damian Conway
Flexão verbal em espanhol , Fred Jehle
Flexão verbal francesa , Bob Salita
Estrutura JavaScript de gráfico , Aslak Hellesoy e Dave Hoover
LIBSVM , Chih-Chung Chang e Chih-Jen Lin
LIBLINEAR , Rong-En Fan et al.
Centralidade NetworkX , Aric Hagberg, Dan Schult e Pieter Swart
corretor ortográfico , Peter Norvig
Autores:
Tom De Smedt ([email protected])
Walter Daelemans ([email protected])
Colaboradores (cronológico):
Frederico 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
Geraldo Schneider
Martin Volk
Samuel José
Shubhanshu Mishra
Robert Elwell
Fred Jehle
Antoine Mazières + fabelier.org
Rémi de Zoeten + closealert.nl
Kenneth Koch
Jens Grivolla
Fábio Marfia
Steven Loria
Colin Molter + tevizz.com
Pedro Touro
Maurício Sambati
Dan-Fu
Salvatore Di Dio
Vicente Van Asch
Frederik Elwert