在Hadoop上运行NLTK代码示例

3 篇文章 0 订阅

在Hadoop上运行NLTK

在Hadoop上运行Python进程,有很多种方法。本节将会谈论一些在Hadoop运行Python的主流方式,如流MapReduce作业,在Hive中的Python UDF,以及Python Hadoop包装器。

通常,以map函数和reduce函数的形式,编写Hadoop作业。对于给定的任务,用户必须写出map和reduce函数的实现。通常,这些mapper和reducer是使用Java实现的。同时,Hadoop提供了流,在任何其他的语言中,用户可以使用类似于Java语言的方式,编写Python的mapper和reducer。假设读者已经使用Python运行了单词计数的示例。在本章稍后部分,我们也将使用NLTK,运行相同的示例。

使用Python的其他方法是在Hive或Pig中编写UDF(User Defined Function,用户定义函数)。此处的思想是,在NTLK中执行的大部分操作是高度并行化的。例如,POS标签、词语标记、词形还原、停止字删除和NER是高度可分布的。原因是各行的内容是互相独立的,在进行这些操作时,不需要任何上下文。

因此,如果在群集的每个节点上有NTLK和其他Python库,那么可以使用Python语言的NLTK和scikit库,编写UDF。这是使用NLTK(特别是大规模使用scikit)时最简单的方法之一。本章将讨论这两个库

不同的组织实现了各种各样的包装器使Python运行在集群上。实际上,其中一些包装器是非常容易使用的,但是所有的这些包装器有性能差异。其中一些包装器如下所示,如果你想进一步了解它们,请浏览项目页面。

    • Hadoopy
    • Pydoop
    • Dumbo
    • mrjob

前面已经谈了很多关于NTLK库的内容,以及它所提供的一些经常使用的函数。现在,NLTK可以解决许多NLP问题,其中许多问题是高度并行的。这就是我们试图在Hadoop上运行NLTK的原因。

在Hadoop上运行NLTK最好的办法是将它安装在集群中的所有节点上。实现这一点并不是很困难。有多种方式可以做到这一点,如将资源文件作为流参数进行发送。但是,这里宁可选择第一个选项。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值