如何用VOSviewer分析CNKI關(guān)鍵詞共現(xiàn)?

用VOSviewer嘗試CNKI中文文獻(xiàn)關(guān)鍵詞共現(xiàn)(keyword co-occurence)分析時镣丑,你可能會踩到一個大坑。本文幫助你繞開這個坑娱两,或是從坑里爬出來莺匠。

疑惑

在《如何用VOSviewer分析CNKI數(shù)據(jù)?》一文中十兢,我們提到了如何用VOSviewer可視化分析CNKI文獻(xiàn)趣竣。

依照文中的步驟,我們從CNKI下載并導(dǎo)出《圖書情報(bào)知識》期刊2016年全年文獻(xiàn)數(shù)據(jù)旱物,通過Endnote作為中轉(zhuǎn)遥缕,最終導(dǎo)出了VOSviewer可以讀取的RIS文件。

我把這個幾經(jīng)輾轉(zhuǎn)得來的RIS文件存放到了這里宵呛,你可以直接下載使用单匣。

利用該數(shù)據(jù)文件,我們用VOSviewer分析合作者(Co-authorship)宝穗,做出了這張圖户秤。

有的讀者很興奮,立即打算用同樣的方法逮矛,做CNKI中文文獻(xiàn)的關(guān)鍵詞共現(xiàn)分析(keyword co-occurence)鸡号。

很快,他們就遇到了問題橱鹏。因?yàn)橛脴永龜?shù)據(jù)膜蠢,雖然可以做出分析結(jié)果圖堪藐,卻是這個樣子的:

圖里面只有關(guān)鍵詞莉兰,沒有任何關(guān)鍵詞之間的連接。這叫什么共現(xiàn)分析礁竞?糖荒!

有讀者很沮喪地把這幅圖發(fā)給了我。問我這是否意味著模捂,VOSviewer不能勝任中文文獻(xiàn)的關(guān)鍵詞共現(xiàn)分析捶朵?

當(dāng)然不是蜘矢。

VOSviewer做的是統(tǒng)計(jì)和可視化。對于它來說综看,中文和英文關(guān)鍵詞沒有本質(zhì)區(qū)別品腹。只要來源數(shù)據(jù)處理得當(dāng),分析的結(jié)果都應(yīng)該是正確的红碑。

那么問題究竟出在哪里呢舞吭?

原因

我們用樣例數(shù)據(jù),重新走一遍流程析珊。復(fù)現(xiàn)讀者遇到的困境羡鸥。

VOSviewer主界面里,我們選擇File -> map -> create忠寻,新建一個分析圖惧浴。

第一個對話框問我們映射方式。

我們從中選擇第二項(xiàng)奕剃。

然后新彈出的對話框會詢問分析源文件的格式衷旅。

我們選擇RIS。

下面的對話框纵朋,詢問分析類型芜茵。默認(rèn)是合作者分析(Co-authorship)。

我們選擇關(guān)鍵詞共現(xiàn)分析(Co-occurence)倡蝙。

然后VOSviewer詢問我們閾值的選擇九串。

注意默認(rèn)的閾值為3,可是這樣只有3個關(guān)鍵詞滿足閾值寺鸥。最終的圖上如果只有3個節(jié)點(diǎn)猪钮,就太稀疏了。于是我們降低閾值到1胆建。

VOSviewer提示我們烤低,通過閾值過濾的關(guān)鍵詞有83個。

我們選擇下一步笆载。這時可以看到全部關(guān)鍵詞列表扑馁。

我們可以從中選擇或者反選關(guān)鍵詞做分析。

但是此處別著急進(jìn)行下一步凉驻。我們看到了非常奇異的現(xiàn)象腻要。

注意圖中列表的最后一列,是連接強(qiáng)度涝登,也就是這一行的關(guān)鍵詞與其他關(guān)鍵詞共同出現(xiàn)的總次數(shù)雄家。默認(rèn)從大到小排列,可是所有的關(guān)鍵詞共現(xiàn)次數(shù)居然都是0次胀滚。

難怪我們點(diǎn)擊下一步的時候趟济,會出現(xiàn)關(guān)鍵詞節(jié)點(diǎn)間乱投,全無鏈接。

為什么關(guān)鍵詞同時出現(xiàn)次數(shù)分析值都是0呢顷编?難道每篇論文只有1個關(guān)鍵詞戚炫?關(guān)鍵詞之間從來沒有同時出現(xiàn)過?

這不符合常識媳纬。

我們發(fā)表期刊論文或者寫畢業(yè)論文時嘹悼,一般情況關(guān)鍵詞至少也要列出3個吧。

帶著這樣的疑惑层宫,我們就要檢查一下RIS源文件了杨伙。

以其中的第一篇《信息素養(yǎng)的歷史與實(shí)踐之旅》為例,我們看到關(guān)鍵詞一共有3個萌腿,分別為“信息素養(yǎng)”限匣、“行動素養(yǎng)”和“行動素養(yǎng)聯(lián)盟”。

如何識別它們是關(guān)鍵詞呢毁菱?

因?yàn)榍懊嬗袀€KW -前綴作為標(biāo)志米死。

然而問題來了,我們看到作者信息部分贮庞,每個作者名字前峦筒,都有AU -前綴。

AU - G.Zurkowski, Paul
AU - V.Kelly, Jeffrey
AU - 劉千卉
AU - 程璐

可是關(guān)鍵詞這里窗慎,除了第一個有KW -前綴物喷,其他都沒有。

KW - 信息素養(yǎng)
行動素養(yǎng)
行動素養(yǎng)聯(lián)盟

會不會是因?yàn)檫@個緣故遮斥,導(dǎo)致合作者分析鏈接正常峦失,而關(guān)鍵詞共現(xiàn)分析鏈接消失呢?

我們做個實(shí)驗(yàn)术吗,驗(yàn)證一下咱們的猜測尉辑。

實(shí)驗(yàn)的方法很簡單。我們把第一篇文獻(xiàn)的另外兩個關(guān)鍵詞之前较屿,都加上KW -前綴隧魄。其他文獻(xiàn)的關(guān)鍵詞不做任何處理。

修改后的RIS文件隘蝎,就成了這樣子:

我們回到VOSviewer购啄,重新分析。前面的步驟和上一節(jié)完全一致末贾。直至最后一步闸溃。

我們非常明顯地對比出整吆,關(guān)鍵詞總鏈接強(qiáng)度(Total Link Strength)一項(xiàng)發(fā)生了變化拱撵,有幾個關(guān)鍵詞辉川,不再是0了。

發(fā)生改變的這幾個關(guān)鍵詞拴测,恰恰是剛才添加過前綴的那幾個乓旗。

這個簡單的實(shí)驗(yàn),驗(yàn)證了我們的猜測集索。

并不是VOSviewr的處理能力有缺失屿愚,而是中文文獻(xiàn)元數(shù)據(jù),經(jīng)由Endnote導(dǎo)出為RIS格式的時候有紕漏务荆,導(dǎo)致多關(guān)鍵詞的前綴沒有全部正確添加妆距。

效率

問題找到了。

下面我們該怎么辦函匕?

很簡單娱据,把所有關(guān)鍵詞的前綴都添上就好了啊。

你可能立即覺得天旋地轉(zhuǎn)盅惜。

把前綴都添上中剩?說得輕巧!

樣例數(shù)據(jù)里抒寂,文獻(xiàn)有數(shù)十篇结啼。一篇篇找關(guān)鍵詞,添加前綴屈芜,雖然會做個頭暈?zāi)X漲郊愧,但畢竟還有個盼頭兒。

問題是井佑,要分析的文獻(xiàn)有好幾千篇糕珊。都添完的時候,是不是下學(xué)期都該開學(xué)了毅糟?

也沒那么夸張了红选。

想想愚公移山,精衛(wèi)填耗妨恚……先賢的精神力量還不夠給你以感召嗎喇肋?

精神固然要有,但效率也是要追求的迹辐。

我們當(dāng)然不能一條條手動查找關(guān)鍵詞并添加前綴蝶防,那樣效率太低。我們要用工具來自動化解決這個問題明吩。

好消息是间学,工具我已經(jīng)幫你編寫好了。

下面我詳細(xì)告訴你,該怎么使用低葫。

工具

我?guī)湍憔帉懙墓ぞ呦晗郏莻€Python腳本。

我們需要安裝Python運(yùn)行環(huán)境Anaconda嘿悬,來使用這個腳本实柠。

請到這個網(wǎng)址 下載最新版的Anaconda。下拉頁面善涨,找到下載位置窒盐。根據(jù)你目前使用的系統(tǒng),網(wǎng)站會自動推薦給你適合的版本下載钢拧。我使用的是macOS蟹漓,下載文件格式為pkg。

下載頁面區(qū)左側(cè)是Python 3.6版源内,右側(cè)是2.7版牧牢。請選擇2.7版本。

雙擊下載后的pkg文件姿锭,根據(jù)中文提示一步步安裝即可塔鳍。

安裝好Anaconda后,我們來下載腳本呻此。

我把腳本存儲在了Github項(xiàng)目里轮纫。請從這個位置下載壓縮包。

下載后解壓到本地焚鲜,這個目錄就是咱們的演示目錄掌唾。

請進(jìn)入終端(macOS或者Linux),用cd命令進(jìn)入到這個目錄忿磅。如果你用的是Windows糯彬,請運(yùn)行Anaconda Prompt程序,并進(jìn)入該目錄葱她。

下面撩扒,請執(zhí)行以下命令。

python ris-add-kw-prefix.py tsqbzs.ris

如果你要嘗試處理自己的RIS文件吨些,請把它拷貝到這個演示目錄里面搓谆,然后把上面命令語句中最后部分(文件名)改成你自己的RIS文件。

執(zhí)行后豪墅,你會發(fā)現(xiàn)目錄下多了一個文件泉手,叫做output.ris。

我們打開這個新生成的RIS文件偶器。

可以看到斩萌,所有的未加前綴的關(guān)鍵詞缝裤,都已經(jīng)自動添加了前綴。

我們嘗試將這個output.ris輸入到VOSviewer颊郎,這次的分析結(jié)果列表如下:

這時候再看關(guān)鍵詞鏈接數(shù)量憋飞,就合理多了。

利用這個分析結(jié)果來可視化袭艺,你會看到以下生成的圖形:

在這個樣例中搀崭,我們只有幾十篇文獻(xiàn)叨粘。利用腳本處理前綴猾编,顯得有些大炮轟蚊子。

但如果你需要處理幾千升敲、幾萬篇文獻(xiàn)的記錄信息答倡,用這個腳本也一樣可以瞬間完成操作。效率的差別就體現(xiàn)得淋漓盡致了驴党。

好了瘪撇,到這里為止,你已經(jīng)了解如何利用咱們編寫的工具港庄,對Endnote導(dǎo)出的中文文獻(xiàn)做關(guān)鍵詞處理倔既,在VOSviewer中正確分析關(guān)鍵詞共現(xiàn)了。

目標(biāo)達(dá)成鹏氧。

如果你對原理和技術(shù)細(xì)節(jié)不感興趣渤涌,下面就可以跳到小結(jié)部分了。

如果你還沒走把还,我來猜猜你在想什么实蓬。

這么高效的處理方法,是不是令你感覺不可思議吊履?

老師你的工具至少有300行語句吧安皱?

沒有。

其實(shí)程序從頭到尾艇炎,只有20多行酌伊。

而其中的核心部分,只有3行缀踪。

老師動用了什么黑魔法腺晾?!

魔法

我當(dāng)然不會魔法辜贵。

我們使用的悯蝉,是計(jì)算機(jī)最簡單的能力——根據(jù)指令,重復(fù)執(zhí)行枯燥勞動托慨。

從第一行開始鼻由,依次檢查每一行的文字。如果該行不是空行,而且其中不包含前綴連接符號“-”蕉世,那么我們就將其當(dāng)成未加前綴的關(guān)鍵詞蔼紧。

我們讓計(jì)算機(jī)在這行文字的最前面,加上KW -前綴狠轻。

就是這么簡單奸例,一點(diǎn)也不炫酷。

但是計(jì)算機(jī)怎么理解“不是空行”向楼、“不包含符號‘-’”呢查吊?

請看我們Python文件中的核心函數(shù)代碼。

def add_kw_prefix(data):
    regex = r"^([^\-\s]+?)\s+$"
    subst = "KW  - \\1"
    newdata = re.sub(regex, subst, data, 0, re.MULTILINE)
    return newdata

我們用到的工具湖蜕,叫做正則表達(dá)式(regular expression)逻卖,簡稱re。

它是計(jì)算機(jī)處理文本模式的一種經(jīng)典工具昭抒。

我們之前談到機(jī)器學(xué)習(xí)的時候评也,曾經(jīng)說過。機(jī)器學(xué)習(xí)模型灭返,是人不知道怎么描述規(guī)則的時候盗迟,讓計(jì)算機(jī)自己學(xué)。

而正則表達(dá)式熙含,則恰恰相反罚缕,是人類可以很準(zhǔn)確地描述規(guī)則時,為機(jī)器定義的模式婆芦。

正確定義模式后怕磨,計(jì)算機(jī)就會檢查文本中是否包含這種模式,并且做出對應(yīng)的處理消约。

正則表達(dá)式的功能非常強(qiáng)大肠鲫,不過學(xué)起來需要花一番功夫。

如果你對正則表達(dá)式感興趣或粮,希望自己也能操縱計(jì)算機(jī)程序导饲,對文本精確地做出模式識別與處理,可以參考DataCamp上的這篇教程來學(xué)習(xí)氯材。

小結(jié)

通過本文渣锦,希望你已經(jīng)了解了以下內(nèi)容:

  1. VOSviewer可以正確處理中文文獻(xiàn)的關(guān)鍵詞共現(xiàn)分析;
  2. CNKI文獻(xiàn)元數(shù)據(jù)經(jīng)由Endnote導(dǎo)出成RIS時氢哮,關(guān)鍵詞處理有瑕疵袋毙,需要添加對應(yīng)前綴;
  3. 你可以利用我提供的Python腳本冗尤,來快速完成前綴添加工作听盖;
  4. 正則表達(dá)式的使用胀溺,可以有效提升大規(guī)模文本模式匹配與處理操作的效率。

討論

用本文的方法皆看,你做出了正確的CNKI文獻(xiàn)關(guān)鍵詞共現(xiàn)分析了嗎仓坞?在此之前,你是如何處理關(guān)鍵詞共現(xiàn)分析的腰吟?有沒有什么更加簡便高效的方法无埃?歡迎留言,把你的經(jīng)驗(yàn)和思考分享給大家毛雇,我們一起交流討論嫉称。

如果你對我的文章感興趣,歡迎點(diǎn)贊禾乘,并且關(guān)注我的專欄澎埠,以便收到后續(xù)作品更新通知虽缕。

如果本文可能對你身邊的親友有幫助始藕,也歡迎你把本文通過微博或朋友圈分享給他們。讓他們一起參與到我們的討論中來氮趋。

延伸閱讀

數(shù)據(jù)科學(xué)相關(guān)文章合集(玉樹芝蘭)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伍派,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子剩胁,更是在濱河造成了極大的恐慌诉植,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昵观,死亡現(xiàn)場離奇詭異晾腔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)啊犬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門灼擂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人觉至,你說我怎么就攤上這事剔应。” “怎么了语御?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵峻贮,是天一觀的道長。 經(jīng)常有香客問我应闯,道長纤控,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任碉纺,我火速辦了婚禮船万,結(jié)果婚禮上细层,老公的妹妹穿的比我還像新娘。我一直安慰自己唬涧,他們只是感情好疫赎,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碎节,像睡著了一般捧搞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上狮荔,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天胎撇,我揣著相機(jī)與錄音,去河邊找鬼殖氏。 笑死晚树,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雅采。 我是一名探鬼主播爵憎,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼婚瓜!你這毒婦竟也來了宝鼓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤巴刻,失蹤者是張志新(化名)和其女友劉穎愚铡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胡陪,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沥寥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了柠座。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邑雅。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖愚隧,靈堂內(nèi)的尸體忽然破棺而出蒂阱,到底是詐尸還是另有隱情,我是刑警寧澤狂塘,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布录煤,位于F島的核電站,受9級特大地震影響荞胡,放射性物質(zhì)發(fā)生泄漏妈踊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一泪漂、第九天 我趴在偏房一處隱蔽的房頂上張望廊营。 院中可真熱鬧歪泳,春花似錦、人聲如沸露筒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慎式。三九已至伶氢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瘪吏,已是汗流浹背癣防。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掌眠,地道東北人蕾盯。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像蓝丙,于是被迫代替她去往敵國和親级遭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容