专栏首页学习首3写给NLP研究者的编程指南-杏彩总代
原创

写给NLP研究者的编程指南-杏彩总代

最近AllenNLP在EMNLP2018上做了一个主题分享,名为“写给NLP研究者的编程指南”(Writing Code for NLP Research)。

内容干货满满,仅仅只是看了slide就知道是非常有意思的一次演讲了。slide共有254页之多,这里我简单做个摘要,分享一些有意思的内容。

有时间的话推荐大家直接看slide,下面是地址

https://github.com/allenai/writing-code-for-nlp-research-emnlp2018/blob/master/writing_code_for_nlp_research.pdf

下面是整个分享的大纲。通过这次演讲,你可以学到如何写代码来促进你的研究,以及可复现的实验。

这里有两种写研究代码的模式,一种是写原型,一种是写组件。

我们先从写原型的方式开始介绍。

当我们开始写一个原型代码的时候,我们要做到下面三点。

  1. 写代码要快
  2. 跟踪实验结果
  3. 分析模型结果

快速开发

要做到快速编程,不要从头开始写所有内容,而是使用框架。这里的框架不仅指tensorflow或pytorch之类的框架,也可以理解为模板。比如上图中如果写trining loop的部分,已经有人写好了。我们只要看懂后,直接拿来用就行,没有必要从头开始自己写所有部分。杏彩总代ρρ【1530667】ρρ【1530667】ρρ【1530667】

上面提到的一些内容,都是可以找到现成框架来套用的。

Don’t start from scratch! Use someone else’s components.

如果有人把你想用的东西模块化了,还等什么,直接拿来用啊!

要想快速开发,另一个建议就是先复制,再重构。要记住,我们是在写原型,不用在乎什么可用性,先把代码写work了再说。如果实现的效果不错的话,再回去重构。

另外,我们要有好的编程习惯。比如起有意义的变量名,写注释帮助理解。记住,我们是写给人看的,不是机器!

跟踪实验结果

可以准备一个Excel表格,来记录实验结果

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大型互联网企业平台开放技术实践

    本篇文章一共分为四个部分,分别是开放生态、开放网关、开放授权和开放安全。为什么要做开放,开放的技术实现有哪些,主要是开放网关和授权,同时我们开放了以后肯定还需要...

    java大师傅
  • 程序员面试被要求手写代码,你与顶级程序员的差别在哪?

    面试时,被要求手写代码,自信心爆棚的你,忽然有了提笔忘记的感觉,在一张纸上反复涂涂画画,勉强写出了一个功能,结果漏洞百出,面试过程相当不顺利,丢下笔,对...

    xcbeyond
  • 朴素贝叶斯练习实例

    文本分类:过滤恶意留言 此处有两个改进的地方: (1)若有的类别没有出现,其概率就是0,会十分影响分类器的性能。所以采取各类别默认1次累加,总类别(两类)次...

    JasonhavenDai
  • 漫画说算法|有趣的扔鸡蛋问题

    有2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层。

    小白学视觉
  • 小白学Flask第八天| Flask上下文和请求钩子

    在这篇文章之前,我们学习过request和session这两个小家伙,他们两的功能都非常的强大,我们今天讲上下文对象,也是和他们两有着很大的关系。

    Python进击者
  • 为什么GPL是更好的开源许可证?

    1. 让我从一件新闻讲起。 2009年,计算机业界发生了一件大事:甲骨文公司以74亿美元收购SUN公司。 ? 消息宣布后,有一个人坚决反对这笔交易。他叫Mich...

    ruanyf
  • sqlalchemy和flask-sqlalchemy查询结果转json

    Flask-RESTful 有一个专门做这个的东西,叫 marshal_with, 具体介绍在这里:http://flask-restful.readthed...

    stys35
  • 看完这篇文章还能不懂Flask这种Web框架吗?

    Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于...

    IT派
  • SpringFramework之mvc的HandlerMapping

        我们从DispatcherServlet的doDispatch方法说起,如下List-2,getHandler(processedRequest)会调用...

    克虏伯
  • Ubuntu安装Opencv记录(附人脸识别和人眼识别例子)

    木东居士

扫码关注云+社区

领取腾讯云代金券