0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用約43000張圖片的數(shù)據(jù)集,來計算得出表情包的火爆程度排名

如意 ? 來源:讀芯術(shù)微信公眾號 ? 作者:讀芯術(shù)微信公眾號 ? 2020-10-11 10:06 ? 次閱讀

電視節(jié)目的火爆程度可以根據(jù)尼爾森收視率排名(Neilsen ratings)來衡量,但是表情包呢?目前仍然沒有什么獨立指標能用以評估表情包(memes)的瀏覽人數(shù),所以筆者自己摸索出了一些方法!

本文將說明如何用約43000張圖片的數(shù)據(jù)集和五項數(shù)據(jù)科學(xué)原則,來計算得出表情包的火爆程度排名。

1. 明確定義估算對象

對文字信息的理解因人而異。筆者不知見識過多少次這樣的場景:二人在對話中就項目的目標達成了一致,之后卻發(fā)現(xiàn)彼此對關(guān)鍵詞的理解大相徑庭。因此,如果在項目開始時徹底厘清每個詞的定義,就能省下不少時間。

例如,假設(shè)你要估算“2019年的英國人口數(shù)量”。這是指2019年初、年末還是年中的人口數(shù)量?還是三者的平均值?這里的“人口”是指常住居民,還是包括游客和臨時居民在內(nèi)的所有人?

回到表情包的話題上。首先聲明,筆者要討論的并非表情包的學(xué)術(shù)定義,而是網(wǎng)絡(luò)表情包(結(jié)合了網(wǎng)上流行的圖像和文字)。更具體地說,筆者感興趣的是找出最流行的表情包模板(表情包的背景圖像)。因此筆者所謂的“最火表情包”其實指的是:瀏覽人次最多的表情包模板(通過累加所有使用該模板的網(wǎng)絡(luò)表情包的瀏覽量來計算得出)。

明確了這一點之后,就要開始收集數(shù)據(jù)。

2.以最小化偏差的方式采樣數(shù)據(jù)

尼爾森排名系統(tǒng)不可能監(jiān)測每臺電視機,同樣,筆者也無法全部下載網(wǎng)絡(luò)上的每個表情包。因此,這兩種情況都必須要經(jīng)過采樣。

如果一個數(shù)據(jù)樣本真正代表了更廣泛的群體,那么我們稱其為無偏見數(shù)據(jù)。但在很多情況下,這是不可能的。通常,我們必須以盡可能合理的方式最小化偏差,然后在分析數(shù)據(jù)時盡最大努力修正偏差。

本項目中的表情包采集自Reddit,它是世界上最大的圖片分享網(wǎng)站之一。使用一個爬蟲工具在一天中多次查看該網(wǎng)站與表情包有關(guān)的幾個部分,并且抓取前100張最受歡迎的圖片。

其中的許多表情包都托管在Imgur上,該網(wǎng)站公開了表情包瀏覽數(shù)據(jù)。因此交叉引用這些數(shù)據(jù)可以讓我們推斷出Reddit上圖片的瀏覽量。通過Reddit和Imgur的應(yīng)用程序接口(API),只需寥寥幾行python代碼就可完成該采樣。

接下來的問題是:這一采樣方法真的能夠最小化偏差嗎?Reddit只是網(wǎng)站中的一個個例,所以并不能真正代表整個互聯(lián)網(wǎng)。我們可以對其他網(wǎng)站(如instagram或Facebook)上的表情包進行采樣,以減少偏差。

然而,這些網(wǎng)站公開的數(shù)據(jù)有限,無法進行比對。比對這些網(wǎng)站數(shù)據(jù)的唯一的方法是做出大膽的假設(shè),但此舉可能會為最終估計值引入更多的偏差。

沒有十全十美的答案。有時,我們只能接受這一點。筆者認為應(yīng)當從一個最優(yōu)的數(shù)據(jù)來源進行采樣,而不是將多個數(shù)據(jù)來源合并起來得到一個不可靠的數(shù)據(jù)集。筆者之所以稱Reddit是最好的來源,是因為它是最大的圖像共享網(wǎng)站,從中(通過交叉引用Imgur的數(shù)據(jù))可以推斷出精度合適的瀏覽量。

3. 復(fù)雜模型只適用于復(fù)雜問題

我們需要確定數(shù)據(jù)集中每個表情包所使用的圖像模板。這是一個圖像分類問題,并且屬于一個簡單的圖像分類問題。如果簡單的方法就足以見效,那么就沒必要選擇復(fù)雜的解決方案。

近來最先進的圖像分類器,比如那些在Image-Net比賽中名列前茅的分類器,都是能夠不受角度、光線或背景的影響而正確識別物體的深度神經(jīng)網(wǎng)絡(luò)。觀察一個表情包并識別其圖像模板則容易得多,因此需要的東西遠非100層神經(jīng)網(wǎng)絡(luò)那么復(fù)雜。

表情包圖像模板的數(shù)量有限,并且都具有獨特的顏色模式。我們僅需要計算像素并將結(jié)果傳遞給線性支持向量機,就能精確地分類表情包。訓(xùn)練支持向量機僅需幾秒,而神經(jīng)網(wǎng)絡(luò)則需要數(shù)天。

4. 審核(有條件時引入人工)

很多時候,躊躇滿志的年輕數(shù)據(jù)科學(xué)家跑來找到筆者,自豪地公布一個偉大的發(fā)現(xiàn),卻在被問及如何審核結(jié)果時面露怯色。通過基本的審核發(fā)現(xiàn)重大紕漏后,所謂的偉大發(fā)現(xiàn)往往將黯然退場。

在審核圖形分類模型的結(jié)果時,人眼是無可替代的(至少目前如此)。你或許認為,驗證圖形分類器在這個數(shù)據(jù)集(約有43000張圖像)上的結(jié)果需要很長時間,但有許多工具能加速這一過程。

借助標注工具,筆者平均使用20秒就能夠?qū)徍?00張圖像(在10x10的格子中瀏覽),因此,全部審核完43000張圖像只花費了不到3小時。這樣的事情日常做大概吃不消,但一年一次還可以忍受。

5. 仔細考慮每個假設(shè)

統(tǒng)計模型有賴于數(shù)據(jù)和假設(shè)。通常情況下,原始數(shù)據(jù)無法優(yōu)化,但假設(shè)可以改進。工作的最后一步是獲取數(shù)據(jù)集,并提取出每個表情包模板的瀏覽數(shù)據(jù)。由于數(shù)據(jù)具有局限性,這一分析需要一些額外的假設(shè)。

第一個假設(shè)涉及到缺失值。如果數(shù)據(jù)集中的某個條目出現(xiàn)了缺失值,那么最好是移除該條目(因而將減小樣本)呢,還是推測該缺失值是什么(因而或?qū)⒁胝`差)呢?

這取決于數(shù)據(jù)集中缺失值的比例。如果比例較低,通常最好直接丟棄缺失值。而如果比例較高(該表情包數(shù)據(jù)集就是如此),那么丟棄所有缺失值可能會大大降低樣本的代表性。因此,筆者認為盡可能準確地填充這些缺失值是更好的做法。

第二個假設(shè)涉及修正我們的數(shù)據(jù)集對Reddit用戶的傾向性。筆者用下面的“傳播”假設(shè)來解決這一問題。筆者從Reddit的幾十個不同板塊進行了采樣,以此來測量每個表情包模板在多少個板塊中出現(xiàn)過。筆者假設(shè),一個表情包在Reddit內(nèi)部傳播得越廣,說明它在Reddit之外的傳播范圍也越廣。為了反映這一點,筆者擴增了這些表情包的瀏覽次數(shù)。

對于假設(shè)來說,標準答案是不存在的。我們唯一的選擇就是做出能讓人信服的抉擇。

計算結(jié)果:最受歡迎的表情包模板(2018年)

算法在2018年全年都在運行,共下載了40萬張圖片,并識別出其中的43660張使用了250個最常見的表情包模板之一。

如你所見,歌星Drake的表情圖以極大優(yōu)勢奪得了2018年的流行之冠,共有1億5700萬次瀏覽量(該分析結(jié)果很有可能小于實際數(shù)據(jù))。

如何用約43000張圖片的數(shù)據(jù)集,來計算得出表情包的火爆程度排名

此外,頂層模板的總瀏覽量分布近似于帕累托分布(Pareto distribution)。

世界上有許多難以精確測算的事物,表情包的流行程度就是其中之一。有時我們只能盡量追求最優(yōu)解。筆者討論了在這一工作中使用的5項原則,一言以蔽之,即:在著手開始之前,仔細考慮項目的每個步驟。
責編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關(guān)推薦

    aic23b的ADC輸入信號范圍是多少,如何計算得出電壓?

    aic23b的ADC輸入信號范圍是多少,如何計算得出電壓
    發(fā)表于 10-29 07:59

    TAS5720MEVM Z1/Z2/C11/C12是如何計算得出的?

    TAS5720MEVM,Z1/Z2/C11/C12是如何計算得出的?不同的揚聲器,改如何匹配LC參數(shù)?
    發(fā)表于 10-14 07:50

    運放的靜態(tài)電流就是輸入偏置電流嗎?運放的輸入偏電流又是怎么計算得到的呢?

    我想問一下運放的靜態(tài)電流就是輸入偏置電流嗎?運放的輸入偏電流又是怎么計算得到的呢?
    發(fā)表于 09-06 06:51

    LPV521 Vout是怎么計算得出的呢?

    麻煩分析一下如下電路圖的工作原理:Vout是怎么計算得出的呢? 圖中測量電流的范圍能達多少呢?怎么計算出來的呢? 圖中三極管工作在什么狀態(tài)?怎么進行選型呢? 謝謝!
    發(fā)表于 09-05 07:37

    LMH6552在設(shè)置放大倍數(shù)為2時,計算得RF/RG=2,輸出的波形有偏差,為什么?

    為什么在設(shè)置放大倍數(shù)為2時,計算得RF/RG=2,輸出的波形有偏差,按照數(shù)據(jù)手冊上給的阻值設(shè)置卻沒有偏差,數(shù)據(jù)手冊上RF/RG約等于2,RG與計算值偏差幾歐姆,這是為什么
    發(fā)表于 08-29 07:48

    永煒:智能物聯(lián)2.0時代,如何用數(shù)字化手段助力“雙碳”目標的實現(xiàn)?

    2.0時代,如何用數(shù)字化手段助力“雙碳”目標的實現(xiàn)?》的主題探討。以下根據(jù)直播訪談內(nèi)容整理。數(shù)字化技術(shù)助力綠色低碳智次方:您如何看待云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能和
    的頭像 發(fā)表于 05-28 08:04 ?163次閱讀
    <b class='flag-5'>張</b>永煒:智能物聯(lián)2.0時代,如<b class='flag-5'>何用</b>數(shù)字化手段助力“雙碳”目標的實現(xiàn)?

    請問NanoEdge AI數(shù)據(jù)該如何構(gòu)建?

    我想用NanoEdge識別異常的聲音,但我目前沒有辦法生成模型,我感覺可能是數(shù)據(jù)的問題,請問我該怎么構(gòu)建數(shù)據(jù)?或者生成模型失敗還會有哪
    發(fā)表于 05-28 07:27

    STM32 IDE如何訪問、計算得到122.69K并暫存到變量中呢?

    路過的大神們,幫忙看一下,感謝感謝!??! 如圖,在KEIL5環(huán)境中,可以通過以上訪問到工程flash使用的大小(bin文件的大?。? 再如圖,在STM32IDE環(huán)境中工程編譯完成,F(xiàn)LASH Used使用122.69K,那么程序中如何訪問、計算得到122.69K并暫存到變量中呢?
    發(fā)表于 05-24 07:02

    多模高頻PWM控制器TPS43000數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《多模高頻PWM控制器TPS43000數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 04-22 10:20 ?0次下載
    多模高頻PWM控制器TPS<b class='flag-5'>43000</b><b class='flag-5'>數(shù)據(jù)</b>表

    STM32 FFT計算得到的相位譜與matlab計算的不一致是什么原因造成的?

    STM32 FFT計算得到的相位譜與matlab計算的不一致?
    發(fā)表于 04-18 07:52

    鴻蒙HarmonyOS引用圖片的方法

    前言 Image通過調(diào)用接口創(chuàng)建,接口調(diào)用形式如下: ? Image(src: string | Resource | media.PixelMap) ? 該接口通過圖片數(shù)據(jù)源獲取圖片
    的頭像 發(fā)表于 02-01 14:35 ?930次閱讀
    鴻蒙HarmonyOS引用<b class='flag-5'>圖片</b>的方法

    ADCMXL3021使能autonull功能后,這個null值是怎么計算得到的?

    一樣? 2.使能autonull功能后,這個null值是怎么計算得到的,是以220k的速率還是以sr3配置速率去采4096的數(shù)據(jù)進行計算嗎?
    發(fā)表于 12-28 06:18

    大模型數(shù)據(jù):力量的源泉,進步的階梯

    一、引言 在? ? 的繁榮發(fā)展中,大模型數(shù)據(jù)的作用日益凸顯。它們?nèi)琮嫶蟮闹R庫,為AI提供了豐富的信息和理解能力。本文將用一種獨特的風格探討大模型數(shù)據(jù)
    的頭像 發(fā)表于 12-07 17:18 ?618次閱讀

    AD7760采集的數(shù)據(jù)偏低如何解決?

    :V = Vi/2^24 * 4.096 * 2,其中Vi為采集值,V為計算值,算得計算395mV,如果發(fā)2V信號,采集和計算出的值為
    發(fā)表于 12-05 07:04

    何用import導(dǎo)入一個

    :使用絕對導(dǎo)入和使用相對導(dǎo)入。絕對導(dǎo)入使用的全名,而相對導(dǎo)入使用相對于當前模塊的位置引用其他模塊。 首先,讓我們從絕對導(dǎo)入開始。假設(shè)我們有一個名為“my_package”的,包含以下文件和文
    的頭像 發(fā)表于 11-22 14:59 ?1075次閱讀