我需要做一个关于计算语言学课程的项目。是否有任何有趣的“语言”问题,其数据密集程度足以使用 Hadoop map reduce。解决方案或算法应尝试分析并提供“语言”领域的一些见解。但是它应该适用于大型数据集,以便我可以使用 hadoop。我知道有一个用于hadoop的python自然语言处理工具包。
4 回答
如果你有一些“不寻常”语言的大型语料库(在“已经进行了有限数量的计算语言学”的意义上),重复一些已经为非常流行的语言(例如英语、中文、阿拉伯语,...)是一个非常合适的项目(尤其是在学术环境中,但它也可能非常适合工业——当我在 IBM Research 从事计算语言学时,我从为意大利语,并重复 [[在罗马相对较新的 IBM 科学中心]] 与约克镇高地的 IBM 研究团队 [[我曾参与其中]] 已经为英语所做的非常相似的工作。
艰苦的工作通常是寻找/准备这样的语料库(这绝对是我当时工作中最重要的部分,尽管 IBM 意大利全心全意地帮助我与拥有相关数据的出版公司取得联系)。
所以,这个问题很重要,只有你能回答:你可以访问什么语料库,或者可以获取访问权限(和清理等),尤其是在“不寻常”的语言中?如果你能做的只是,例如英语,使用已经流行的语料库,那么做新颖有趣的工作的机会当然更难,尽管当然可能会有一些。
顺便说一句,我假设您正在严格考虑处理“书面”文本,对吗?如果你有一个口语材料的语料库(最好有好的成绩单),机会将是无穷无尽的(处理口语文本的工作要少得多,例如参数化不同母语者对同一书面文本的发音变体——事实上,此类问题甚至在本科 CL 课程中通常都没有提及!)。
CL 中的一个计算密集型问题是从大型语料库中推断语义。基本思想是收集大量文本并从它们的分布中推断出单词(同义词、反义词、下位词、上位词等)之间的语义关系,即它们与哪些词一起出现或接近于哪些词。
这涉及大量数据预处理,然后可能涉及许多最近邻搜索和 N x N 比较,这非常适合 MapReduce 风格的并行化。
看看这个教程:
http://wordspace.collocations.de/doku.php/course:acl2010:start
从 BioMed Central 发表的 60K OA 论文中下载 300M 字。尝试发现命题态度和相关的情感结构。重点是生物医学文献充满了对冲和相关的结构,因为很难对生物世界及其生物(它们的形式和功能以及遗传学和生物化学)做出简单的声明性陈述。
我对 Hadoop 的感觉是,它是一个需要考虑的工具,但要在完成设定目标的重要任务之后再考虑。你的目标、策略和数据应该决定你如何进行计算。当心寻找钉子研究方法的锤子。
这是我的实验室努力工作的一部分。
鲍勃·富特雷尔
BioNLP.org
东北大学
正如您所提到的,有一个名为 NLTK 的 Python 工具包,它可以与 dumbo 一起使用以利用 Hadoop。
PyCon 2010 就这个主题进行了很好的讨论。您可以使用下面的链接访问演讲中的幻灯片。