Pattern-用于Python的Web挖掘模块,包含抓取、自然语言处理、机器学习、网络分析和可视化工具

Pattern是Python的Web挖掘模块。它具有用于以下方面的工具:
  • 数据挖掘:Web服务(Google、Twitter、Wikipedia)、Web爬虫、HTML DOM解析器
  • 自然语言处理:词性标记、n元语法搜索、情感分析、WordNet
  • 机器学习:向量空间模型、聚类、分类(KNN、SVM、感知器)
  • 网络分析:图形中心性与可视化

它有很好的文档记录,通过350多个单元测试进行了彻底的测试,并附带了50多个示例。源代码是按照BSD授权的

示例

此示例使用Python3对从Twitter挖掘的形容词训练分类器。首先,收集包含#WIN或#FAIL标签的tweet。例如:“20美元今天给一位可爱的小老太太小费#赢了”然后解析词性标签,只保留形容词。每条推文都被转换为向量,即形容词→计数项的字典,标记为WINFAIL分类器使用向量来学习哪些其他tweet看起来更像WIN或者更像是FAIL

from pattern.web import Twitter
from pattern.en import tag
from pattern.vector import KNN, count

twitter, 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 and 'WIN' or 'FAIL'
        v = tag(s)
        v = [word for word, pos in v if pos == 'JJ'] # JJ = adjective
        v = count(v) # {'sweet': 1}
        if v:
            knn.train(v, type=p)

print(knn.classify('sweet potato burger'))
print(knn.classify('stupid autocorrect'))

安装

模式支持Python2.7和Python3.6。要安装Pattern以使其在您的所有脚本中都可用,请解压缩下载并从命令行执行以下操作:

cd pattern-3.6
python setup.py install

如果您有pip,您可以从PyPI repository

pip install pattern

如果上述方法都不起作用,您可以通过三种方式使Python了解该模块:

  • 将模式文件夹放在与脚本相同的文件夹中
  • 将模式文件夹放在模块的标准位置,以便所有脚本都可以使用:
    • c:\python36\Lib\site-packages\(Windows)、
    • /Library/Python/3.6/site-packages/(Mac OS X)、
    • /usr/lib/python3.6/site-packages/(UNIX)
  • 将模块的位置添加到sys.path在您的脚本中,在导入之前:
MODULE = '/users/tom/desktop/pattern'
import sys; if MODULE not in sys.path: sys.path.append(MODULE)
from pattern.en import parsetree

文档

有关文档和示例,请参阅user documentation

版本

3.6

许可证

BSD,请参见LICENSE.txt有关更多详细信息,请参阅

参考文献

De Smedt,T.,Daelemans,W.(2012)。Python的模式。机器学习研究杂志,13,2031-2035

贡献力量

源代码托管在GitHub上,欢迎投稿或捐赠

捆绑的依赖项

Pattern与以下数据集、算法和Python包捆绑在一起:

  • 布里尔标记器,Eric Brill
  • 用于荷兰语的布里尔标记器、杰伦·格尔岑(Jeroen Geertzen)
  • 用于德语的Brill标记器,Gerold Schneider&Martin Volk
  • 西班牙语的布里尔标记器,在Wikicorpus上进行培训(Samuel Reese&Gema Boleda等人)
  • 法语的布里尔标记器,关于Lefff的培训(Benoüt Sagot&Lionel Clément等人)
  • 适用于意大利语的布里尔标记器,从维基词典中挖掘
  • 英语复数,Damian Conway
  • 西班牙语动词词尾变化,Fred Jehle
  • 法语动词词尾变化、鲍勃·萨利塔(Bob Salita)
  • Graph JavaScript框架,Aslak Hellesoy&Dave Hoover
  • LIBSVM、张志忠、林志仁
  • LIBLINEAR、范荣恩等人
  • 网络X中心性供稿:Aric Hagberg,Dan Schult&Pieter Swart
  • 拼写校正器、彼得·诺维格(Peter Norvig)

确认

作者:

投稿人(按时间顺序):

  • 弗雷德里克·德·布莱泽
  • 杰森·维纳
  • 丹尼尔·弗里森
  • 杰伦·格尔岑
  • 托马斯·克伦贝兹
  • 肯·威廉姆斯
  • 彼得里斯·埃林斯(Peteris Erins)
  • 拉杰什·奈尔
  • F·德·斯梅德
  • RadimŘehůřek
  • 汤姆·洛雷多
  • 约翰·德博维斯
  • 托马斯·西里奥
  • 杰罗德·施耐德
  • 马丁·沃尔克
  • 塞缪尔·约瑟夫
  • 舒班舒·米什拉(Shubhanshu Mishra)
  • 罗伯特·埃尔韦尔
  • 弗雷德·杰尔
  • Antoine Mazières+Fabelier.org
  • Rémi de Zoeten+closealert t.nl
  • 肯尼思·科赫(Kenneth Koch)
  • 延斯·格里沃拉
  • 法比奥·马菲亚
  • 史蒂文·洛里亚
  • 科林·莫尔特(Colin Molter)+tevizz.com
  • 彼得·布尔
  • 毛里齐奥·桑巴蒂
  • 旦福
  • 塞尔瓦托·迪·迪奥
  • 文森特·范·阿施
  • 弗雷德里克·埃尔韦特