分类目录归档:中文信息处理

CIKM Competition数据挖掘竞赛夺冠算法陈运文

Start your future on Coursera today.

背景

CIKM Cup(或者称为CIKM Competition)是ACM CIKM举办的国际数据挖掘竞赛的名称。CIKM全称是International Conference on Information and Knowledge Management,属于信息检索和数据挖掘领域的国际著名学术会议,由ACM SIGIR分会(ACM Special Interest Group on Information Retrieval)主办。

随着数据挖掘技术越来越重要,CIKM会议的影响力也水涨船高,逐渐逼近KDD、WWW、ICDE。2014年是CIKM第一次在中国大陆举办,邀请了Google大神Jeff Dean,微软EVP陆奇博士和德国Max Planck Institute的Gerhard Weikum教授担任Keynote Speaker,盛况空前。CIKM很重视工业界的运用,既有面向工业届的Tutorial/Workshop,也有CIKM Cup这样面向实战的国际数据挖掘竞赛(类似另一个著名的数据挖掘竞赛KDD Cup),比赛使用真实的工业界数据和应用课题,让全世界的数据挖掘选手们一较高下。

cikm

今年的CIKM Cup竞赛的题目是自动识别用户的查询意图(Query Intent Detection,QID),主办方提供了来自百度线上的真实的用户查询和点击的数据(总行数为6141万行),竞赛目标是根据已标注的用户行为数据,来判断其中用户查询时的真实意图,要求识别的准确率和召回率越高越好。比赛历时2个半月,共吸引了520支队伍参赛,最终我们的队伍Topdata脱颖而出,所提出的算法以F1值0.9296排名Final Leaderboard第一获得冠军!

topdata

应很多朋友的邀请,发表这篇文章详细介绍我们使用的方法,给对大数据挖掘算法感兴趣的朋友们作个参考。另外在领奖现场我们和其他参赛队伍作了愉快的交流,因此本文也吸收了其他队伍的一些优秀思路,可以看作是这次竞赛整体方法和对策的总结。文章最后还附上了一些我个人的参赛感言(陈运文)。
继续阅读

Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器

Start your future on Coursera today.

斯坦福大学自然语言处理组是世界知名的NLP研究小组,他们提供了一系列开源的Java文本分析工具,包括分词器(Word Segmenter),词性标注工具(Part-Of-Speech Tagger),命名实体识别工具(Named Entity Recognizer),句法分析器(Parser)等,可喜的事,他们还为这些工具训练了相应的中文模型,支持中文文本处理。在使用NLTK的过程中,发现当前版本的NLTK已经提供了相应的斯坦福文本处理工具接口,包括词性标注,命名实体识别和句法分析器的接口,不过可惜的是,没有提供分词器的接口。在google无果和阅读了相应的代码后,我决定照猫画虎为NLTK写一个斯坦福中文分词器接口,这样可以方便的在Python中调用斯坦福文本处理工具。

首先需要做一些准备工作,第一步当然是安装NLTK,这个可以参考我们在gensim的相关文章中的介绍《如何计算两个文档的相似度》,不过这里建议check github上最新的NLTK源代码并用“python setup.py install”的方式安装这个版本:https://github.com/nltk/nltk。这个版本新增了对于斯坦福句法分析器的接口,一些老的版本并没有,这个之后我们也许还会用来介绍。而我们也是在这个版本中添加的斯坦福分词器接口,其他版本也许会存在一些小问题。其次是安装Java运行环境,以Ubuntu 12.04为例,安装Java运行环境仅需要两步:

sudo apt-get install default-jre
sudo apt-get install default-jdk

最后,当然是最重要的,你需要下载斯坦福分词器的相应文件,包括源代码,模型文件,词典文件等。注意斯坦福分词器并不仅仅支持中文分词,还支持阿拉伯语的分词,需要下载的zip打包文件是这个: Download Stanford Word Segmenter version 2014-08-27,下载后解压。

准备工作就绪后,我们首先考虑的是在nltk源代码里的什么地方来添加这个接口文件。在nltk源代码包下,斯坦福词性标注器和命名实体识别工具的接口文件是这个:nltk/tag/stanford.py ,而句法分析器的接口文件是这个:nltk/parse/stanford.py , 虽然在nltk/tokenize/目录下有一个stanford.py文件,但是仅仅提供了一个针对英文的tokenizer工具PTBTokenizer的接口,没有针对斯坦福分词器的接口,于是我决定在nltk/tokenize下添加一个stanford_segmenter.py文件,作为nltk斯坦福中文分词器的接口文件。NLTK中的这些接口利用了Linux 下的管道(PIPE)机制和subprocess模块,这里直接贴源代码了,感兴趣的同学可以自行阅读:
继续阅读

中文分词入门之字标注法全文文档

Start your future on Coursera today.

将“中文分词入门之字标注法”这个系列整理成了一个PDF文档放到微盘中了,感兴趣的同学可以下载:

微盘:中文分词入门之字标注法.pdf
百度网盘:中文分词入门之字标注法.pdf

如果愿意看网页,也可以从这个标签进入:字标注中文分词

另外在上一节关于CRF中文分词的介绍中,通过CRF++训练了一个CRF中文分词模型,实际训练的时间比较长,为了方便大家测试,也把这个CRF模型上传到微盘了,感兴趣的同学可以下载:crf_model

注:原创文章,转载请注明出处“我爱自然语言处理”:www.52nlp.cn

本文链接地址:http://www.52nlp.cn/中文分词入门之字标注法全文文档

北京森林工作室汉语句义结构标注语料库(BFS-CTC)共享资源

Start your future on Coursera today.

句义结构分析是汉语语义分析中不可逾越的重要环节,为了满足汉语句义结构分析的需要,北京森林工作室(BFS)基于现代汉语语义学理论构建了一种层次化的汉语句义结构模型,定义了标注规范和标记形式,建设了一个汉语句义结构标注语料库BFS-CTC(Beijing Forest Studio – Chinese Tagged Corpus)。

标注内容方面,基于句义结构模型的定义标注了句义结构句型层、描述层、对象层和细节层中所包含的各个要素及其组合关系,包括句义类型、谓词及其时态、语义格类型等信息,并且提供了词法和短语结构句法信息,便于词法、句法、句义的对照分析研究。

语料库组织结构方面,该语料库包括四个部分,即原始句子库、词法标注库、句法标注库和句义结构标注库,可根据研究的需要,在词法、句法、句义结构标注的基础上进行深加工,在核心标注库的基础上添加更多具有针对性的扩展标注库,利用句子的唯一ID号进行识别和使用。

语料来源和规模方面,原始数据全部来自新闻语料,经过人工收集、整理,合理覆盖了主谓句、非主谓句、把字句等六种主要句式类型,规模已达到50000句。

BFS-CTC基于现代汉语语义学,提供了多层次的句义结构标注信息,在兼容现有标注规范的情况下进行了词法和语法标注。BFS标注的词法,句法及句义既可以单独使用也可综合使用,可用于自然语言处理多方面的研究。

为进一步推动汉语语义分析的研究和发展,,北京森林工作室(BFS)从2013年4月15日起对外开放下载3,000句句义结构标注示例,更多句义结构标注语料可向BFS申请后免费使用,详见http://www.isclab.org/archives/2013/04/1740.html。句义结构的基本形式如下图所示:

BFS-CTC句义结构标注示例

 

3000句句义结构标注语料

语料查看工具

推荐《用Python进行自然语言处理》中文翻译-NLTK配套书

Start your future on Coursera today.

  NLTK配套书《用Python进行自然语言处理》(Natural Language Processing with Python)已经出版好几年了,但是国内一直没有翻译的中文版,虽然读英文原版是最好的选择,但是对于多数读者,如果有中文版,一定是不错的。下午在微博上看到陈涛sean 同学提供了NLTK配套书的中译本下载,就追问了一下,之后译者和我私信联系,并交流了一下,才发现是作者无偿翻译的,并且没有出版计划的。翻译是个很苦的差事,向译者致敬,另外译者说里面有一些错误,希望能得到nlper们的指正,大家一起来修正这个珍贵的NLTK中文版吧。另外译者希望在“52nlp”上做个推荐,这事是造福nlper的好事,我已经在“资源”里更新了本书的链接,以下是书的下载地址:

PYTHON自然语言处理中文翻译-NLTK Natural Language Processing with Python 中文版

  翻看了一下翻译版,且不说翻译质量,单看排版就让人觉得向一本正式的翻译书籍,说明译者是非常有心的。以下是从翻译版中摘录的“译者的话”:

  作为一个自然语言处理的初学者,看书看到“训练模型”,这模型那模型的,一直不知
道模型究竟是什么东西。看了这本书,从预处理数据到提取特征集,训练模型,测试修改等,一步一步实际操作了之后,才对模型一词有了直观的认识(算法的中间结果,存储在计算机中的一个个pkl 文件,测试的时候直接用,前面计算过的就省了)。以后听人谈“模型”的时候也有了底气。当然,模型还有很多其他含义。还有动词的“配价”、各种搭配、客观逻辑对根据文法生成的句子的约束如何实现?不上机动手做做,很难真正领悟。

  自然语言处理理论书籍很多,讲实际操作的不多,能讲的这么系统的更少。从这个角度
讲,本书是目前世界上最好的自然语言处理实践教程。初学者若在看过理论之后能精读本书,必定会有获益。这也是翻译本书的目的之一。

  本书是译者课余英文翻译练习,抛砖引玉。书中存在很多问题,尤其是第10 章命题逻
辑和一阶逻辑推理在自然语言处理中的应用。希望大家多多指教。可以在微博上找到我(w
eibo.com/chentao1999)。虽然读中文翻译速度更快,但直接读原文更能了解作者的本意。

  原书作者在书的最后列出了迫切需要帮助改进的条目,对翻译本书建议使用目标语言的
例子,目前本书还只能照搬英文的例子,希望有志愿者能加入本书的中文化进程中,为中文
自然语言处理做出贡献。

  将本书作学习和研究之用,欢迎传播、复制、修改。山寨产品请留下译者姓名和微博。
用于商业目的,请与原书版权所有者联系,译者不承担由此产生的责任。

翻译:陈涛(weibo.com/chentao1999)

2012 年4 月7 日

   最后希望大家在读这本书的过程中,记录一下需要勘误的地方,可以在“评论”中给出勘误建议,一起来修正这本书。谢谢!

欢迎大家试用信息学科数字化知识服务网络平台

Start your future on Coursera today.

 

各位同学、老师、网友,大家好,由中科院自动化所综合信息中心承担、国家科技部支持的自动化学科数字化知识服务网络平台已经上线。网站地址是:http://autoinnovation.ia.ac.cn/,欢迎大家使用,并且给我们提出意见和建议。

     下面是平台使用过程中的几点注意事项:(1)初次使用时,如果您的浏览器没有安装silverlight插件,请您按提示下载安装该插件;(2)如果您在使用中遇到一些小问题,可以查看网站的帮助文件3该平台框架实际为数据库检索系统,因此您输入检索词后,需要等待下拉菜单出现相应检索词,选中相应检索词,之后在点击搜索按钮,如下图所示

  

  1 检索说明示意图

   平台旨在挖掘、分析和展现我国自动化领域(包括部分计算机、通信的交叉领域)自1960年以来的学术发展情况。我们力求展现出国内自动化领域学术活动的立体全景,对领域内的文献、学者、机构、以及研究方向、方法、理论和工具等,做了全方位的关联分析。为了更好地展现知识,我们在精心设计页面布局的基础上,使用了SilverlightAjax等技术进行网站开发;为了让展现出来的知识更加精确,我们在数据处理中使用了包括命名实体识别与排歧、文本聚类在内的多种数据挖掘技术。

该平台凝结了综合信息中心的老师、开发人员、以及多位学生的大量心血。无论是在前期设计、后台数据处理、还是前台网站开发,我们都本着精益求精的原则,团队内部经过多次尝试和试验,力求选择最佳方案。但是作为一个人员有限的开发团队,我们的思虑与广博的群体智慧相比还是有所逊色的。为此,我们热诚地欢迎各位老师、同学、工作人员向我们提出您宝贵的建议。我们欢迎大家从各个层面给我们提出意见和建议,您的意见和建议将是敦促我们进步和改进的最给力的源泉!

我们的联系方式是:

email: y.liu@ia.ac.cn

 新浪微博:http://weibo.com/autoinnovation

                 http://weibo.com/finallyly

如果您觉得方便,可以留下您的姓名和单位,我们将在我们的网站进行致谢!

数据共享计划:

同时,我们将与数据堂展开合作,开源部自然语言处理相关资源,期待大家的关注。欢迎大家就NLP资源的需求问题,以及文本挖掘的技术问题互相交流和探讨。

 

 

 

NiuTrans: 一套开源的统计机器翻译平台

Start your future on Coursera today.

  晚上在CWMT(China Workshop on Machine Translation)的邮件组里看到东北大学自然语言处理实验室朱靖波老师的邮件,题为“NiuTrans: 一套开源的统计机器翻译平台”,仔细读了一下,觉得这句话很有分量:“内部测试结果显示性能和速度稳定优于Moses”,如果读者感兴趣,可以去NiuTrans的主页去申请下载,做个测试,NiuTrans的主页见:http://www.nlplab.com/NiuPlan/NiuTrans.html。前不久“哈工大语言技术平台(LTP)源代码正式对外共享”,而今东北大学也开源了NiuTrans这套统计机器翻译平台,这些对于致力于中文信息处理的NLPer来说都是好消息。以下内容全文转载自朱靖波老师的邮件:

各位老师,大家好!

我们实验室经过多个月的努力,NiuPlan的第一个NiuTrans系列系统-基于短语的统计机器翻译系统终于打包成功,Alpha版源代码正式对外免费发布,目前访问入口显示在我们实验室网站(http://www.nlplab.com)首页左上角。网页上提供了详细的使用说明和高级参数设置方法,并且还提供了部分样本数据用于学习如何使用NiuTrans. 内部测试结果显示性能和速度稳定优于Moses.系统代码的下载方式非常简单,在注册页输入姓名和电子邮件,即可得到动态下载的链接。建议提供正确的电子邮件,这样以后可以随时得到NiuPlan的最新发布和更新信息。

计划一年之内,我们实验室将不断推出NiuPlan不同系列的开源系统,包括Hierarchical phrase-based model,Syntax-based model (string-to-tree/tree-to-string/tree-to-tree)和基于统计的句法分析系统开源平台等。

NiuPlan最终将推出四个系列的开源平台系统:NiuTrans, NiuParser, NiuMining, and NiuKnowledge(暂定名字)系列系统.欢迎同行们免费下载使用,并能够将宝贵建议及时反馈给我们,我们承诺将尽力尽快完善NiuPlan各系列开源系统,在此感谢各位的使用和对现有Bug的容忍。所有系统可以从我们实验室网站上获取.祝好!

Best regards,

Dr. Jingbo Zhu (朱靖波)
Professor(PhD Supervisor), Director
Natural Language Processing Laboratory
Northeastern University
Shenyang, Liaoning, P.R.China
Phone: 0086-24-83672481 (O)(Fax)
Email: zhujingbo at mail.neu.edu.cn
Homepage: http://www.nlplab.com/members/zhujingbo.html

继续阅读

哈工大语言技术平台(LTP)源代码正式对外共享

Start your future on Coursera today.

哈工大语言技术平台(LTP)源代码已经于6月1号正式对外共享,这对于广大致力于中文信息处理的NLPer来说,无疑是一个好消息。以下转载自“哈工大社会计算与信息检索研究中心”的官方主页,有需要的读者可以关注一下:

语言技术平台(Language Technology Platform,LTP)是哈工大社会计算与信息检索研究中心历时十年开发的一整套中文语言处理系统。LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library, DLL)的应用程序接口,可视化工具,依存树库等语料资源,并且能够以网络服务(Web Service)的形式进行使用。

从2006年9月5日开始该平台对外免费共享目标代码,截止目前,已经有国内外400多家研究单位共享了LTP,也有国内外多家商业公司购买了LTP,用于实际的商业项目中。2010年12月获得中国中文信息学会颁发的行业最高奖项:"钱伟长中文信息处理科学技术奖"一等奖。

2011年6月1日,为了与业界同行共同研究和开发中文信息处理核心技术,我中心正式将LTP的源代码对外共享,LTP由C++语言开发,可运行于Windows和Linux操作系统。详见:http://ir.hit.edu.cn/ltp/

欢迎各界朋友共享!

Matrix67:漫话中文分词算法

Start your future on Coursera today.

注:这是今天在Matrix67上看到的关于中文分词的文章,粗略的读了一遍,觉得Matrix67能把中文分词的一些关键问题如此“漫话”开来,不愧是北大中文系的牛人!以下文章转自于Matrix67的“漫话中文分词算法”,有兴趣的读者可以移步到他的blog观赏。

记得第一次了解中文分词算法是在 Google 黑板报 上看到的,当初看到那个算法时我彻底被震撼住了,想不到一个看似不可能完成的任务竟然有如此神奇巧妙的算法。最近在詹卫东老师的《中文信息处理导论》课上 再次学到中文分词算法,才知道这并不是中文分词算法研究的全部,前前后后还有很多故事可讲。在没有建立统计语言模型时,人们还在语言学的角度对自动分词进 行研究,期间诞生了很多有意思的理论。

中文分词的主要困难在于分词歧义。“结婚的和尚未结婚的”,应该分成“结婚/的/和/尚未/结婚/的”,还是“结婚/的/和尚/未/结婚/ 的”?人来判断很容易,要交给计算机来处理就麻烦了。问题的关键就是,“和尚未”里的“和尚”也是一个词,“尚未”也是一个词,从计算机的角度看上去,两 者似乎都有可能。对于计算机来说,这样的分词困境就叫做“交集型歧义”。

有时候,交集型歧义的“歧义链”有可能会更长。“中外科学名著”里,“中外”、“外科”、“科学”、“学名”、“名著”全是词,光从词库的 角度来看,随便切几刀下去,得出的切分都是合理的。类似的例子数不胜数,“提高产品质量”、“鞭炮声响彻夜空”、“努力学习语法规则”等句子都有这样的现 象。在这些极端例子下,分词算法谁优谁劣可谓是一试便知。
继续阅读

代友转发:发起成立中文机器翻译定期学术沙龙

Start your future on Coursera today.

  以下文字代友Alex转发,如果哪位读者有水木帐号,恳请转载到“水木自然语言处理版”,非常感谢!Alex从事的是技术翻译相关的工作,对机器翻译比较感兴趣,希望搞个北京地区线下交流的自然语言处理的学术沙龙,主要面向中文机器翻译,也欢迎NLP其他领域的朋友,以下文字系Alex所写:

中文机器翻译是自然语言处理的重要应用领域之一,其跨学科的特点非常显著,涉及了语言学、数学、计算机、认知科学等多种学科。

目前在北京和全国对相关研究感兴趣的人很多,相对分散。仅仅在北京,从事相关研究的北京高校和科研院所就有清华大学、北京大学、中科院各研究所、北京外国语大学、北京师范大学、北京邮电大学、中国传媒大学、北京交通大学等。

鉴于此,拟组织定期学术沙龙活动,在轻松的环境中相互交流学术问题,促进相关的学术研究。沙龙设想的初期参与者包括北京各高校、研究所的硕士博士生和科研人员,也欢迎公司企业界和京外相关人士参加。

有兴趣的请发邮件到cmt.salon@gmail.com与我联系。谢谢!