如何查找别人论文中的的程序?

作者:Jason Gu
链接:https://www.zhihu.com/question/21980275/answer/19929480
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

. 如果这论文很老,论文里的算法在该领域有举足轻重的地位。那么网上很可能有工具包。例如我做的机器学习方向,经典的聚类、分类算法,MATLAB, python等常用语言都有丰富的工具包可供使用,一般有名的算法都会包括在其中。
2. 如果论文非常新,或者论文中的算法在该领域并没有多大的影响,这时网上各种编程语言自带的工具包一般是不包括它的。我能想到的大概有以下3种方法:
a. 在google搜索该论文的名称或者第一作者的姓名,找到该作者的个人学术主页(计算机领域多数科研人员都有自己的学术主页)。在他的主页上看看他是否公开了论文的代码,很多学者乐于分享自己的代码。
b. 在google搜索该论文中算法的名字+code或者是某种语言,如python等。这是因为阅读这篇论文的科研人员不少,有的人读完会写代码并公布出来。
c. 邮件联系第一作者。可惜多数情况下邮件都是石沉大海。尤其是一些很忙的大牛,他们收到类似的邮件太多,可能扫一眼就不再过问。相反,如果是一些博士生,有的还是乐于分享代码的,这样自己的文章也更容易被同行引用。
根据我个人经验,上述a,b,c方案成功的概率分别只有30%, 10%, 10%。当然不同领域的学术气氛习惯也不同。
另外,还有的办法是,查看该论文被哪些论文引用了,引用者有时需要将自己的算法与引用的算法作比较,所以他们有可能这个算法的代码。这个途径找代码工作量更大,概率更小,所以不推荐,不过我确实有通过这个途径找到过。

方法总结如下:

1. 如果此论文里的算法已经成为著名的经典算法,那么网上应该已经有各种实现,甚至已经做成工具包了。

2. 仔细阅读论文,看有没有提到代码和数据的来源,以及相应链接。(位置可能在文中、文末或者脚注)

3. 谷歌搜索第一作者主页,包括个人主页和github主页,看是否有相关项目和论文的资源。

4. 搜索相关项目组实验室的主页,看是否有相关项目和论文的资源。

5. 谷歌和github搜索论文名称或对应的算法名称。(搜索时可能需要加"code"或者某种语言名称)

6. 发邮件联系作者(不限于第一作者),看能否提供代码和更完整的数据。(大多数情况不会有结果。因为如果作者愿意提供代码和数据,并且直接可用,那么应该已经通过公开渠道共享了。但是也不排除是作者没有共享的习惯,特别是如果是博士生写的论文,那么发邮件还是有可能要到代码的。)

7. 查看引用该论文且使用该论文作为baseline或比较对象的其他论文,找这些论文的作者要代码。

8. 某些论文算法可以分步解决,则可以分别找每一步的代码。

9. 最后没有办法只能自己写代码实现。(不一定要实现整个系统,可以有选择的去实现。)

补充几点自己的经验

1. 可以搜一下github。

论文作者的github id来自作者主页,有时候他们会把代码公布在自己的githhub上。 有的时候还有复现实验或者做benchmark/tool box的的研究者会在github上公布自己的代码,包含你想要的论文。但是这种不是原作者的代码不能保证其正确性,也不能当做原作引用,除非他声明已经原作者同意。

2. 仔细看论文,有的时候代码/数据集公布会在脚注里有标注。

3.关注作者其他工作。有的作者会扩展自己的工作,此时以前的工作会作为baseline.有时候你看的那篇论文是作者扩展其他工作的,顺藤摸瓜,总比没有强。

3.如果论文citation比较高 那就看引作是否有代码。

虽然搜集资料也是科研中重要的环节,但私以为到达一定程度以后可以自己复现实验,这样可以加深理解。即使有代码,特别重要的工作可以自己复现然后对比作者代码,看看细节处理,算法理解是否与自己实现的一致,能学到不少。



作者:匿名用户
链接:https://www.zhihu.com/question/21980275/answer/196096287
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值