文獻閱讀的文本分析流派
讀文獻是科研人員的基本功,一方面是了解學科發展,另一方面更現實一點,就是為了發文章。起步階段讀論文一般是模仿與學習,但到了中後期如果你的視野不夠開闊,很容易陷入到安全區陷阱,認為自己做自己那一小攤就挺好,其實很有可能大浪過來,全軍覆沒,說直白點就是申不到錢,課題與項目運轉不下去,思路也會枯竭。當你去開學術會議時,那些大會報告的報告人的開場總有個全局概覽的視野,這種評論是需要經驗去堆的,但其實也挺虛的:你回頭去看容易知道哪裡有坑哪裡有丘,但身處時代浪潮之中是不太容易感知趨勢的。
但傳統基於核心關鍵詞的檢索跟全局觀是本質相悖的,核心關鍵詞往往限制了內容,雖然有利於聚焦但不利於發散與概覽。不過當前文獻數據空前開放,如果你有類似全局視野問題,是可以自己探索的。這裡要用到一個名為自然語言處理(NLP)的工具,簡單說就是我不去看單篇文獻或薈萃分析,而是通過語義關係探索大量文獻中的潛在模式,進而找出熱點。今天我用pubmed這個免費的文摘資料庫來做個演示,探索下科學研究的整體前沿,結論不一定對,但方法思路如果你能掌握並舉一反三,會有發現新大陸的感覺。
數據獲取
數據獲取思路是這樣的:如果想知道整體前沿,最需要的是綜合類期刊,全文的數據量我的筆記本也跑不了,就考慮摘要,這樣也過濾了那些沒有摘要的評論與觀點,更多關注研究性論文。期刊選擇為綜合類的《科學》、《自然》與《美國科學院院刊》,收集2016年一整年的論文摘要,用easyPubmed包來搜索並整理成相對乾淨的數據集。這裡我只收集了題目、摘要、出版期刊與日期進行文本數據挖掘。
發文量
首先我們先看看著三份期刊的發文量:
這三份期刊里,PNAS發文量最大,佔總數一半。
高頻詞
然後我們看一下各期刊的前十大摘要高頻詞:
這裡解釋一下,如果我們單純尋找高頻詞其實這幾個期刊都應該差不多,但這裡我們用的是TF-IDF來加權篩選,這個加權不嚴謹的說就是這個詞出現在該期刊的詞頻與出現在所有期刊詞頻的比例,通過這個值我們可以找到單個期刊比較重要的詞。我們可以看到腫瘤與行為均出現在三個期刊的十大關鍵詞中,推測相關研究應該是去年的重點。此外,《自然》與《美國科學院院刊》都出現了模型這個詞。就特色而言,《自然》去年更關注造血過程、信號傳遞與衰老問題;《科學》雜誌則關心磷酸化、spo11蛋白與火山口還有小尺度問題;《美國科學院院刊》主題特色不算明顯,但比較喜歡強調研究重要性。
如果我們只考慮題目里的文字呢?
這裡我們可以看出,《自然》上的論文題目跟摘要內容契合度比較高;《科學》上論文題目喜歡出現中美的國家標籤;《美國科學院院刊》看意思題目里專業名詞比較多。此外,三份期刊的題目里都出現了勘誤,這倒是前沿高影響力期刊的特點:容易被質疑。詞關係
看完整體你應該想到,單個詞並非孤立,那麼這些詞之間會不會有相關性呢?這個問題我們也可以用NLP工具來研究:
其實這個技術更常見,平時你用的輸入法就實現去考察一些字詞的關係,然後讓其出現的排序更符合常識。這裡我們可以看到,從題目里我們能看到氣候變化、幹細胞以及前面提到的勘誤問題。從摘要里我們則會發現大多數是生物相關的主題,也就是前沿科研應該是生命科學在導向。但到目前為止我們都是把這一些文本當成一個整體,但科學是分科的,也就是有不同的主題,此時我們就要用到主題模型來探索去年前沿科研關注的主題分類。
主題模型分類
所謂主題模型,就是通過探索字詞間內部關係對文本進行分類的模型,舉例來說某個潛在的主題包含7個關鍵詞,如果某篇文章命中6個,那麼這篇文章大概率就屬於這個潛在主題。當然,現實生活我們並不知道這些潛在主題會是什麼,但通過隱含狄利克雷分布,也就是LDA方法我們就可以去探索結構,然後去擬合實際經驗。
從上面我們可以看出,有些探索出來的主題大概我們知道是哪個領域的,有些則屬於誤判或者說界限不明顯的綜合領域,這說明跨學科研究正在崛起。其中,我能識別出來的主題大體有癌症、腦科學、病毒、社會行為、基因組、膜蛋白結構、氣候變化、進化、動態系統、材料。總體來看,細胞生物學與分子生物學還是主流,但病毒、氣候變化等問題導向的學科也在發展。其實也可以直接分析10年的時間變化趨勢,不過這個就留成課後題吧(其實是我個人電腦跑不動)。
情感分析
一般認為科研人員都是比較樂觀的,但其實文字背後究竟是否樂觀可以用文本的情感分析來回答。這個分析的原理就是事先找個標註過情感的語料庫,然後通過語料庫與詞頻來分析具體文本的情感傾向性。正常這個語料庫是要自己根據語境去構建的,例如商品的好評差評,但作為資深懶漢,我直接用了現成的AFINN語料庫:
結果基本符合樂觀為主的預期,不過按說有些詞在科研中屬於中性詞,我們可以通過這個分析來考慮論文寫作的用詞方法。
其他
其實這只是一個很初步的分析,我甚至沒用用到引用與被引用的關係,也沒有考慮作者與研究機構的時空分布特徵,但類似這樣的文本分析應該是一個現代科研人員所具備的屬性。這種分析的好處在於你不是在採樣,而是直接分析所擁有的整體,也就幾十兆的文本量,如果你電腦跑得動,把十年二十年的文獻沿革都可以概覽一下,這是這個時代給我們的紅利,不要白不要。
你可以研究一個大牛幾十年的論文發表來發現其獨到的眼光;也可以針對某個期刊挖掘其關注點的變更;還可以構建自己認可的課題組的文獻庫,通過其發表內容探索同行那些自己都沒意識到的行為改變。這個時代學科內的經驗貶值飛速,很多東西沒必要閉門造車慢慢悟,利用開放數據的便利性你可以很快了解整體學術動態,這樣不至於隨波逐流。更麻煩的是如果你不懂而別人懂,那你將很容易體會到別人眼神中的憐憫,做一個好奇心使然的科研人員,現在起步從來都不晚。
更重要的是,這類技術本質是讓你滿足好奇心的,你可以用這個來了解社會,例如紐約時報就給個人提供API,你可以看看其對川普用詞風格的變化;為什麼最近比特幣搜索指數集中在拉美?歐洲吸引難民究竟是政治正確還是勞動力人口不足?不要等著看新聞來指導自己,要學會發現生活中的閃光點;不要通過鍵盤上情感喧囂來面對社會,要用鍵盤甚至語音編程(我果然很自然的想到了最懶的方法)從繁複的公開數據中挖掘趨勢;不要總是等著大牛來帶,在未知的領域人人都可能成為大牛,你需要掌握一些實現方法而已,你甚至不需要太了解演算法細節(會忘,比如我),但要有自己的兵器庫隨想隨用。你不需要帶著目的性去學,這說到底只是一種生活方式,你變強了也禿了的可能性是存在的(你能否感到我最近在看漫畫)。
本文實現代碼可見我的Github。
借用一個臨終前海盜的話講就是:
想要了解世界嗎?想要的話可以全部給你,去找吧!我把所有的線索都放在互聯網上了。
參考文獻
Text Mining with R推薦閱讀:
※「關鍵詞」提取都有哪些方案?
※Neural Responding Machine for Short-Text Conversation
※谷歌翻譯原理是什麼,從語言A到B,中間是否要翻譯成中介語言C(如英語)?
※REASONING ABOUT ENTAILMENT WITH NEURAL ATTENTION
※邏輯回歸和SVM的區別是什麼?各適用於解決什麼問題?