如何查找別人論文(計算機類文獻)中實驗的代碼?
12-27
最近看計算機類文獻,想看看別人論文中實驗是如何做出來的,請問如何查找別人論文中實驗的代碼
1. 如果這論文很老,論文里的演算法在該領域有舉足輕重的地位。那麼網上很可能有工具包。例如我做的機器學習方向,經典的聚類、分類演算法,MATLAB, python等常用語言都有豐富的工具包可供使用,一般有名的演算法都會包括在其中。
2. 如果論文非常新,或者論文中的演算法在該領域並沒有多大的影響,這時網上各種編程語言自帶的工具包一般是不包括它的。我能想到的大概有以下3種方法:
a. 在google搜索該論文的名稱或者第一作者的姓名,找到該作者的個人學術主頁(計算機領域多數科研人員都有自己的學術主頁)。在他的主頁上看看他是否公開了論文的代碼,很多學者樂於分享自己的代碼。
b. 在google搜索該論文中演算法的名字+code或者是某種語言,如python等。這是因為閱讀這篇論文的科研人員不少,有的人讀完會寫代碼並公布出來。
c. 郵件聯繫第一作者。可惜多數情況下郵件都是石沉大海。尤其是一些很忙的大牛,他們收到類似的郵件太多,可能掃一眼就不再過問。相反,如果是一些博士生,有的還是樂於分享代碼的,這樣自己的文章也更容易被同行引用。
根據我個人經驗,上述a,b,c方案成功的概率分別只有30%, 10%, 10%。當然不同領域的學術氣氛習慣也不同。
另外,還有的辦法是,查看該論文被哪些論文引用了,引用者有時需要將自己的演算法與引用的演算法作比較,所以他們有可能這個演算法的代碼。這個途徑找代碼工作量更大,概率更小,所以不推薦,不過我確實有通過這個途徑找到過。
補充幾點自己的經驗
1. 可以搜一下github。
論文作者的github id來自作者主頁,有時候他們會把代碼公布在自己的githhub上。 有的時候還有復現實驗或者做benchmark/tool box的的研究者會在github上公布自己的代碼,包含你想要的論文。但是這種不是原作者的代碼不能保證其正確性,也不能當做原作引用,除非他聲明已經原作者同意。
2. 仔細看論文,有的時候代碼/數據集公布會在腳註里有標註。
3.關注作者其他工作。有的作者會擴展自己的工作,此時以前的工作會作為baseline.有時候你看的那篇論文是作者擴展其他工作的,順藤摸瓜,總比沒有強。
3.如果論文citation比較高 那就看引作是否有代碼。
雖然搜集資料也是科研中重要的環節,但私以為到達一定程度以後可以自己復現實驗,這樣可以加深理解。即使有代碼,特別重要的工作可以自己復現然後對比作者代碼,看看細節處理,演算法理解是否與自己實現的一致,能學到不少。
推薦閱讀:
※為什麼直到現在投票都不藉助計算機?
※為什麼會有電腦關機後usb還供電這種坑爹的設定?
※從這張桌面,能夠得到哪些個人信息?
※Alienware算不算高端,好在哪裡?
※新買的電腦怎麼安裝驅動比較準確快捷省力?