語言學如此有趣(八)豆瓣關鍵詞與word cloud
去年年底的時候,看到眾多友鄰都發了自己的豆瓣關鍵詞。這玩意已經開發出來有幾年了,每年都會看到友鄰使用這個玩意。後來看到有友鄰吐槽,貌似這玩意似乎不是特別準確。於是我跑去翻了翻他們的介紹頁面。
這個玩意是清華的自然語言開發組開發的,根據他們的介紹,這個系統是根據這篇論文開發的:Automatic Keyphrase Extraction by Bridging Vocabulary Gap。 簡單來說,由這個系統生成的豆瓣關鍵詞,並不是簡單地根據你發的廣播中的詞頻生成的,而是比較你的廣播和一個參照樣本來生成你的豆瓣關鍵詞。他們使用的具體算法是 WAM算法(word alignment models),並不是通常的TF/IDF算法。通常的TF/IDF算法(term frequency–inverse document frequency),是比較目標文本中的詞頻和參照樣本的詞頻,然後計算相對的權重而生成的。按照wiki的解釋就是:字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。 當然也有很多word cloud是直接根據詞頻來生成的,比如wordle就是直接基於詞頻計算的。
當然下面探討的並不是算法,那個難免有些枯燥,我們關心的自然是word cloud這個有趣的玩意。
word cloud大約是在2009年左右誕生的,根據wikipedia 的介紹,這個概念似乎脫胎於tag cloud,最早由 Douglas Coupland 在1995年提出。word cloud已經提出,就吸引了大家的眼球,我也不例外,當時在很多幻燈片後面都喜歡貼一個用 Wordle 生成的word cloud。
後來,慢慢看到不少人對 word cloud 的批評。比如,語言學家批評它切斷了上下文的聯繫 (contextual relationship,提出這個批評的是Costas Gabrielatos,他在看到NYT對奧巴馬的就職演講分析後做了上述評論 )data scientist 批評這玩意濫用二維維度:This is frustrating, since it is very easy to abuse the flexibility of these dimensions and conflate the position of a word with its frequency to convey dubious significance。提出這個批評的是明星data scientist Drew Conway,他與John Myles White合著了Machine Learning for Hackers一書)。
接下來我們討論這兩個批評。Gabrielatos的批評是基於語料庫語言提出的。在語料庫語言學裡,頻率(frequency)和上下文(context)是最重要的兩個考量因素,很多語言學家更重視後者,因為這個恰恰是語料庫語言學區別於計算機語言學的最重要區別。通常而言,語料庫語言學家會先生成一個詞頻表(frequency list),然後觀察這個表格,找到值得研究的詞,然後分析它的collocation,也就是圍繞在這個詞附近的詞(參見這篇)。嚴格來說,就是觀察它的上下文。一般的語料庫分析工具都會提供分析上下文的選項,而word cloud並不具有這一功能。而單獨分析一個詞的頻率可能極具誤導性,因為很多詞有不同的意思,比如back可以用作動詞,也可以用作名詞,而意思截然不同。脫離上下文的話,很難理解back到底用作哪個意思。
而Conway的批評是基於他對數據的理解。正如前面所說,word cloud並不是基於簡單的詞頻 (絕對頻率)來生成的,而是基於一個加權計算的值生成的,所以脫離對比的話,那樣的可視化其實毫無意義,就像友鄰抱怨的那樣,很多詞並不是自己的常用詞。再者,由於word cloud同行使用字體的大小來顯示加權值的大小,沒有一個參考值的話,很難分辨到底兩個詞之間有多大的差別。所以Conway使用R寫了一個腳本,優化了word cloud的顯示。
在上面這個例子中,
1. 越接近左右兩側的詞,被兩個作者分別使用得越多;越接近中間的詞,被兩個作者同時使用得更多。
2. 字體的大小顯示了實際詞頻,右側有圖示顯示詞頻的比例。
3. 對於詞的排列,Conway直接使用了降序排列,而傳統的word cloud則偏向於將所有的詞揉作一團,根本不顧可讀性。
4. 傳統的word cloud中的顏色毫無意義,除了美化,不具有任何統計學或者語言學的意義,而Conway的例子用顏色來表示不同的作者。
以上的R腳本可以在這個repo裡找到:https://github.com/drewconway/ZIA/tree/master/R/better_word_cloud
說了這麼多,word cloud還是一個很有趣的玩意,看似簡單,其實涉及了不少知識。類似的玩意還有tag cloud,等有機會再來討論這個。當然也可以先看看嚴酷的魔王寫的slide:https://github.com/hetong007/Douban_Folksonomy
===============================
語言學如此有趣(一)
語言學如此有趣(二)詞典是怎麼編的
語言學如此有趣(三)文理不分科
語言學如此有趣(四)語言學與語言學習
語言學如此有趣(五)從紐約時報中文版談起
語言學如此有趣(六)J.K. 羅琳與比特幣
語言學如此有趣(七)火星文與計算機語言學
這個玩意是清華的自然語言開發組開發的,根據他們的介紹,這個系統是根據這篇論文開發的:Automatic Keyphrase Extraction by Bridging Vocabulary Gap。 簡單來說,由這個系統生成的豆瓣關鍵詞,並不是簡單地根據你發的廣播中的詞頻生成的,而是比較你的廣播和一個參照樣本來生成你的豆瓣關鍵詞。他們使用的具體算法是 WAM算法(word alignment models),並不是通常的TF/IDF算法。通常的TF/IDF算法(term frequency–inverse document frequency),是比較目標文本中的詞頻和參照樣本的詞頻,然後計算相對的權重而生成的。按照wiki的解釋就是:字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。 當然也有很多word cloud是直接根據詞頻來生成的,比如wordle就是直接基於詞頻計算的。
當然下面探討的並不是算法,那個難免有些枯燥,我們關心的自然是word cloud這個有趣的玩意。
word cloud大約是在2009年左右誕生的,根據wikipedia 的介紹,這個概念似乎脫胎於tag cloud,最早由 Douglas Coupland 在1995年提出。word cloud已經提出,就吸引了大家的眼球,我也不例外,當時在很多幻燈片後面都喜歡貼一個用 Wordle 生成的word cloud。
後來,慢慢看到不少人對 word cloud 的批評。比如,語言學家批評它切斷了上下文的聯繫 (contextual relationship,提出這個批評的是Costas Gabrielatos,他在看到NYT對奧巴馬的就職演講分析後做了上述評論 )data scientist 批評這玩意濫用二維維度:This is frustrating, since it is very easy to abuse the flexibility of these dimensions and conflate the position of a word with its frequency to convey dubious significance。提出這個批評的是明星data scientist Drew Conway,他與John Myles White合著了Machine Learning for Hackers一書)。
接下來我們討論這兩個批評。Gabrielatos的批評是基於語料庫語言提出的。在語料庫語言學裡,頻率(frequency)和上下文(context)是最重要的兩個考量因素,很多語言學家更重視後者,因為這個恰恰是語料庫語言學區別於計算機語言學的最重要區別。通常而言,語料庫語言學家會先生成一個詞頻表(frequency list),然後觀察這個表格,找到值得研究的詞,然後分析它的collocation,也就是圍繞在這個詞附近的詞(參見這篇)。嚴格來說,就是觀察它的上下文。一般的語料庫分析工具都會提供分析上下文的選項,而word cloud並不具有這一功能。而單獨分析一個詞的頻率可能極具誤導性,因為很多詞有不同的意思,比如back可以用作動詞,也可以用作名詞,而意思截然不同。脫離上下文的話,很難理解back到底用作哪個意思。
而Conway的批評是基於他對數據的理解。正如前面所說,word cloud並不是基於簡單的詞頻 (絕對頻率)來生成的,而是基於一個加權計算的值生成的,所以脫離對比的話,那樣的可視化其實毫無意義,就像友鄰抱怨的那樣,很多詞並不是自己的常用詞。再者,由於word cloud同行使用字體的大小來顯示加權值的大小,沒有一個參考值的話,很難分辨到底兩個詞之間有多大的差別。所以Conway使用R寫了一個腳本,優化了word cloud的顯示。
![]() |
在上面這個例子中,
1. 越接近左右兩側的詞,被兩個作者分別使用得越多;越接近中間的詞,被兩個作者同時使用得更多。
2. 字體的大小顯示了實際詞頻,右側有圖示顯示詞頻的比例。
3. 對於詞的排列,Conway直接使用了降序排列,而傳統的word cloud則偏向於將所有的詞揉作一團,根本不顧可讀性。
4. 傳統的word cloud中的顏色毫無意義,除了美化,不具有任何統計學或者語言學的意義,而Conway的例子用顏色來表示不同的作者。
以上的R腳本可以在這個repo裡找到:https://github.com/drewconway/ZIA/tree/master/R/better_word_cloud
說了這麼多,word cloud還是一個很有趣的玩意,看似簡單,其實涉及了不少知識。類似的玩意還有tag cloud,等有機會再來討論這個。當然也可以先看看嚴酷的魔王寫的slide:https://github.com/hetong007/Douban_Folksonomy
===============================
語言學如此有趣(一)
語言學如此有趣(二)詞典是怎麼編的
語言學如此有趣(三)文理不分科
語言學如此有趣(四)語言學與語言學習
語言學如此有趣(五)從紐約時報中文版談起
語言學如此有趣(六)J.K. 羅琳與比特幣
語言學如此有趣(七)火星文與計算機語言學
-
秋 转发了这篇日记 2020-02-10 02:12:02
-
Zacharius 转发了这篇日记 2015-12-02 15:10:09
-
稀奇八只脚 转发了这篇日记 2015-05-14 10:17:33
-
Zéphyr 转发了这篇日记 2015-03-09 19:56:32
-
Plutonic 转发了这篇日记 2014-02-24 21:58:18
-
Σείριος 转发了这篇日记 2014-01-20 16:39:54
-
文刀千林足 转发了这篇日记 2014-01-14 02:57:56
-
苷蘭 转发了这篇日记 2014-01-05 12:48:40
-
沈玉宁\ 转发了这篇日记
『在語料庫語言學裡,頻率(frequency)和上下文(context)是最重要的兩個考量因素,很多語言學家更重視後者,因為這個恰恰是語料庫語言學區別於計算機語言學的最重要區別。』
2014-01-04 08:31:58 -
坚定躺平的锡兵 转发了这篇日记 2014-01-03 09:27:10