Pattern ist ein Web-Mining-Modul für Python. Es verfügt über Werkzeuge für:
Data Mining: Webdienste (Google, Twitter, Wikipedia), Webcrawler, HTML-DOM-Parser
Verarbeitung natürlicher Sprache: Wortart-Tagger, N-Gramm-Suche, Stimmungsanalyse, WordNet
Maschinelles Lernen: Vektorraummodell, Clustering, Klassifizierung (KNN, SVM, Perceptron)
Netzwerkanalyse: Diagrammzentralität und Visualisierung.
Es ist gut dokumentiert, mit mehr als 350 Unit-Tests gründlich getestet und wird mit mehr als 50 Beispielen geliefert. Der Quellcode ist unter BSD lizenziert.
In diesem Beispiel wird ein Klassifikator für Adjektive trainiert, die mit Python 3 aus Twitter gewonnen wurden. Zunächst werden Tweets gesammelt, die das Hashtag #win oder #fail enthalten. Zum Beispiel: „20 $ Trinkgeld für eine süße kleine alte Dame heute #gewinnen“ . Die Wortteil-der-Sprache-Tags werden dann analysiert, wobei nur Adjektive erhalten bleiben. Jeder Tweet wird in einen Vektor umgewandelt, ein Wörterbuch aus Adjektiv-→Zählelementen mit der Bezeichnung WIN
oder FAIL
. Der Klassifikator nutzt die Vektoren, um zu erfahren, welche anderen Tweets eher wie WIN
oder eher wie FAIL
aussehen.
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 # fail', start=i, count=100):s = tweet.text.lower()p = '#win' in s und 'WIN' oder 'FAIL'v = tag(s)v = [Wort für Wort, pos in v if pos == 'JJ'] # JJ = adjectivev = count(v) # {'sweet': 1}if v:knn.train(v, type=p)print(knn.classify('sweet Potato Burger')) print(knn.classify('dumme Autokorrektur'))
Pattern unterstützt Python 2.7 und Python 3.6. Um Pattern so zu installieren, dass es in allen Ihren Skripten verfügbar ist, entpacken Sie den Download und führen Sie über die Befehlszeile Folgendes aus:
CD-Muster-3.6 Python setup.py installieren
Wenn Sie pip haben, können Sie es automatisch aus dem PyPI-Repository herunterladen und installieren:
Pip-Installationsmuster
Wenn keiner der oben genannten Schritte funktioniert, können Sie Python auf drei Arten auf das Modul aufmerksam machen:
Legen Sie den Musterordner im selben Ordner wie Ihr Skript ab.
Legen Sie den Musterordner am Standardspeicherort für Module ab, damit er für alle Skripte verfügbar ist:
c:python36Libsite-packages
(Windows),
/Library/Python/3.6/site-packages/
(Mac OS X),
/usr/lib/python3.6/site-packages/
(Unix).
Fügen Sie den Speicherort des Moduls zu sys.path
in Ihrem Skript hinzu, bevor Sie es importieren:
MODULE = '/users/tom/desktop/pattern'import sys; Wenn MODULE nicht im sys.path: sys.path.append(MODULE)from pattern.en parsetree importieren
Dokumentation und Beispiele finden Sie in der Benutzerdokumentation.
3.6
BSD , siehe LICENSE.txt
für weitere Details.
De Smedt, T., Daelemans, W. (2012). Muster für Python. Journal of Machine Learning Research, 13 , 2031–2035.
Der Quellcode wird auf GitHub gehostet und Beiträge oder Spenden sind willkommen.
Pattern ist mit den folgenden Datensätzen, Algorithmen und Python-Paketen gebündelt:
Brill-Tagger , Eric Brill
Brill-Tagger für Dutch , Jeroen Geertzen
Brill-Tagger für Deutsch , Gerold Schneider & Martin Volk
Brill-Tagger für Spanisch , geschult auf Wikicorpus (Samuel Reese & Gemma Boleda et al.)
Brill-Tagger für Französisch , trainiert auf Lefff (Benoît Sagot & Lionel Clément et al.)
Brill-Tagger für Italienisch , entnommen aus Wiktionary
Englische Pluralisierung , Damian Conway
Spanische Verbbeugung , Fred Jehle
Französische Verbflexion , Bob Salita
Graph-JavaScript-Framework , Aslak Hellesoy und Dave Hoover
LIBSVM , Chih-Chung Chang & Chih-Jen Lin
LIBLINEAR , Rong-En Fan et al.
NetworkX-Zentralität , Aric Hagberg, Dan Schult und Pieter Swart
Rechtschreibkorrektor , Peter Norvig
Autoren:
Tom De Smedt ([email protected])
Walter Daelemans ([email protected])
Mitwirkende (chronologisch):
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
Martin Volk
Samuel Joseph
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
Peter Bull
Maurizio Sambati
Dan Fu
Salvatore Di Dio
Vincent Van Asch
Frederik Elwert