王晶晶,李壽山,黃 磊
(蘇州大學 計算機科學與技術學院自然語言處理實驗室, 江蘇 蘇州 215006)
近幾年來,隨著社交網絡的迅猛發(fā)展,各種類型的微博即微型博客(Microblog)備受用戶的青睞,例如,Twitter、Facebook等。新浪微博是國內知名的微博網站,截止到2012年12月,新浪微博注冊用戶突破5.03億,用戶每日發(fā)博量超過1億條。由于微博既具有媒體傳播特性,又具有社交網絡特性。因此,吸引了眾多研究人員對微博數據進行分析研究[1-2]。例如,利用微博進行在線用戶潛在的人口特征識別[3]。
在微博數據研究中,性別特征的研究漸漸受到了越來越多的關注[4-6]。獲得的用戶性別信息可以被應用在很多領域,例如,市場推廣、廣告宣傳和法律偵查等[7]。雖然基于微博的性別分類已經有了一定研究,但是針對中文的性別分類工作還很缺乏。而且,中文微博的用戶性別識別同英文微博的用戶性別識別存在一定的差異,例如,中文的用戶名的尾字包含豐富的性別區(qū)分信息(例如,“劉雯雯”、“黃曉萌”中的“雯”和“萌”)。
通過觀察中文微博信息,我們發(fā)現,對于用戶性別識別,一種簡單有效的分類方法可能是利用用戶名文本進行判別。例如,“謝娜”、“曲婉婷”等包含“娜”、“婷”等女性化字詞的用戶名更有可能是女性用戶,而“王剛”、“畢福劍”等包含“剛”、“劍”等男性化字詞的用戶名更有可能是男性用戶。
此外,我們還可以利用微博提供的與用戶有關的其他信息來識別用戶性別。較常見的信息是用戶發(fā)表的微博。這些微博內容可能會有效幫助識別該用戶的性別。例如,“天哪!一雙高跟鞋和一件連衣裙加起來才一千不到,老娘果斷打劫了”,這條微博包含了“高跟鞋”、“連衣裙”、“老娘”這些女性使用比較頻繁的詞。因此,發(fā)表該微博的用戶更可能是一位女性。像“我靠,防水的剃須刀,就是牛掰”包含了“我靠”、“剃須刀”等詞的微博,更可能來自一位男性。
本文旨在提出一種基于中文微博的用戶性別分類方法。具體而言,分別利用用戶名及用戶發(fā)表的微博文本信息對微博用戶進行性別分類;在此基礎上,我們進一步提出將用戶名及用戶發(fā)表的微博兩種文本信息進行融合的分類方法,從而達到更好的分類效果。
本文其他部分組織如下: 第2節(jié)介紹微博中用戶性別研究的相關工作;第3節(jié)介紹微博語料的收集;第4節(jié)介紹本文提出的基于用戶名和微博文本的分類方法;第5節(jié)給出實驗設置及結果分析;第6節(jié)給出結論,并對下一步工作進行展望。
近十年來,自然語言處理領域的研究人員針對性別分類分別在博客、電子郵件、微博等平臺上面進行了一定研究。
首先,較多的性別分類研究工作是利用博客文本識別用戶性別。例如,Schler等[4]利用男女用戶的博客文本在寫作風格和內容上的不同,來確定一個未知用戶的性別類型;Yan[5]利用樸素貝葉斯(Na?ve Bayes)分類方法來識別博客用戶的性別;Nowson等人[8]利用博客文本構建了一個自動識別性別的特征集。類似的,其他研究人員進行了進一步的研究去發(fā)現更有效的特征來提高分類性能。例如,Mukherjee等人[6]、Peersman等人[9]和Gianfortoni等[10]。值得注意的是,Ikeda等[11]提出了一個半監(jiān)督學習方法,有效地利用未標注樣本來提升性別分類性能。
其次,一些性別分類研究工作是利用電子郵件文本識別用戶性別。例如,Corney等[12]從Email文本中抽取了一個與內容無關的特征集來進行性別分類;Mohammad等[13]發(fā)現不同性別的用戶在他們工作郵件中使用的情感類詞匯存在明顯差異。
最近,隨著社交網絡的發(fā)展,一些研究人員開始把他們的目光轉向微博文本。例如,Burger等[3]利用Twitter用戶的tweets和個人資料(賬戶名、全名、個人描述)以及他們的結合作為特征來識別用戶的性別;Miller等人[7]使用n元特征的感知器(Perceptron)和樸素貝葉斯(Na?ve Bayes)算法去識別Twitter用戶的性別;Ciot等人[14]第一次使用非英文文本來識別Twitter用戶的性別;Alowibdi等人[15]在Twitter文本基礎上探索獨立于語言的性別分類。
我們的研究也是在微博文本基礎上進行的。與以往微博研究不同的是: 首先,本文針對中文微博的用戶性別分類,目前關于中文微博的用戶性別分類方法研究還比較缺乏;其次,本文將組合分類方法應用到解決微博用戶性別識別問題中,用于組合分別基于用戶名特征和微博文本特征的兩個基分類器。實驗結果表明該方法要明顯優(yōu)于已有的特征疊加方法,例如,Burger等[3]。
我們利用新浪微博*http://weibo.com提供的開放API接口獲取用戶數據。數據包含用戶的個人信息(包含用戶名、性別、及其認證類型等)及用戶近期發(fā)表的微博。具體而言,我們首先隨機選擇一個用戶,獲取其用戶信息包括他的關注者、粉絲ID;然后再收集其關注者、粉絲的微博信息;最后重復以上操作直到收集工作結束。需要說明的是,在獲取語料的過程中考慮到存儲空間的局限性及為了提高抓取的速度,我們限制每個用戶的微博數目不超過500條。并且為了保證實驗結果的精確性,我們過濾掉了發(fā)表微博次數小于3的用戶。
新浪微博根據用戶的認證類型將用戶分為5大類: “黃V用戶”、“藍V用戶”、“微博女郎”、“達人用戶”和“普通用戶”。其中“藍V用戶”是一些企業(yè)性質的用戶而非個人用戶,“普通用戶”是指沒有經過新浪微博官方認證的用戶(包含個人用戶和企業(yè)性質的用戶)。為了避免大量的人工標注及保證實驗結果的精確性,本次實驗中我們抓取了除這兩者以外的其他經過官方認證的個人用戶,總共4 190個。其中男性用戶1 880個,女性用戶2 310個。各種認證類型的用戶數目如表1所示。
表1 不同認證類型的用戶介紹及實例
本文采用基于機器學習的方法進行用戶性別分類。首先,我們從兩種文本(即: 用戶名和用戶發(fā)表的微博文本)中抽取特征;然后,基于這兩種文本分別構建兩個不同的分類器;最后,采用組合分類器方法對這兩個分類器進行融合,以便獲得更佳的分類性能。下面我們將具體描述這兩種文本的特征及組合分類器方法。
用戶名文本: 根據用戶名文本,我們發(fā)現女性用戶的用戶名尾字普遍包含偏女性化字眼。例如,“劉雯雯”、“黃曉萌”、“休眠中的王小姐”等。并且像“妞妞”、“女王不淡定叻”、及“珊珊”這些用戶名,根據其首字判斷其為女性用戶的可能性較大;此外,男性用戶的用戶名也有類似的特點。例如“趙英俊是瀟灑哥”、“林書豪”、“天行者-王猛”及“好好先生李大爺”這幾個用戶名,根據其尾字判斷其為男性的可能性較大。因此,我們考慮將用戶名的首尾字特征加入特征空間,即在首尾字特征后加入特定符號(例如“_f”、“_l”等)以示區(qū)別。
發(fā)表的微博文本: 對于用戶發(fā)表的微博文本,我們利用一種標準的特征選擇方法信息增益(IG)[16]計算了其每個詞特征的性別信息量。并且對男性和女性用戶的微博文本分別選取了前10個IG值最高的詞特征,如表2所示。從表4中可以看出,用戶發(fā)表的微博文本中包含了許多與性別相關的字眼和稱謂,而這些特征能給我們預測用戶的性別提供很好的線索。例如,“哥”、“老婆”這兩個特征更可能來自男性用戶,而“親親”、“老娘”等更像女性用戶發(fā)表的。
表3和表4給出了一些例子來描述我們選擇用戶名和微博文本的具體特征的方法。其中,Unigram即一元特征,Unigram+首尾字特征是指在文本一元特征的基礎上加入首尾一元特征,Uni+Bigram即一、二元的組合特征,Uni+Bigram+首尾字特征是指在一、二元特征的基礎上加入首尾一、二元特征。
表2 男女用戶微博文本中前10個IG值最高的詞特征
表3 文本字特征介紹及樣例
表4 文本詞特征介紹及樣例
續(xù)表
組合分類方法是融合多個分類器的結果從而得到一個新的分類結果作為最終的分類決定[17]。組合分類方法是模式識別以及機器學習理論研究領域里面的一個重要的研究方向。
圖1給出了組合分類器方法的系統(tǒng)框架圖。從圖中可以看出,我們的組合分類器方法主要分為兩步。
(1) 訓練基分類器: 我們通過訓練兩個不同的語料產生兩個不同的基分類器。兩個基分類器分別為基于用戶名文本和基于微博文本訓練的分類器。
(2) 分類器融合: 我們利用融合算法將兩個基分類器結果融合得到最終分類結果。假設有R個參加組合的分類器fk(k=1,...,R),這些分類器給樣本x的分類結果為Lk(Lk=c1,...,cm)。另外,他們提供出了屬于每個類別的概率信息:Pk= [p(c1|dk), ...,p(cm|dk)]t,其中p(ci|dk)表示樣本dk屬于類別ci的概率。如果樣本dk屬于類別cj,在不同的融合算法中需要滿足不一樣的條件。本文中我們采用的是一種常見的固定融合算法,貝葉斯規(guī)則的條件如式(1)所示。
圖1 組合分類器系統(tǒng)的框架架構
本實驗中,我們利用新浪微博API收集了 4 190個經過官方認證的個人用戶的信息及其發(fā)表的微博文本。其中男性用戶有1 880個(正類樣本),女性用戶有2 310個(負類樣本)。本實驗的任務是利用用戶的用戶名和微博文本來識別用戶的性別。在實驗過程中,我們采用最大熵方法(Maximum Entropy,ME)作為分類算法,其中ME使用的是MALLET機器學習工具包*http://mallet.cs.umass.edu/。在使用個工具包的時候,所有的參數都設置為它們的默認值。此外,我們采用用戶名和微博文本的字和詞等特征構建分類器,具體的特征描述可參考4.1節(jié)。需要說明的是,我們采用復旦大學自然語言處理實驗室開發(fā)的分詞軟件FudanNLP*https://code.google.com/p/fudannlp/對文本進行分詞操作以便選取詞特征。從搜集的樣本中,我們選取2 800個樣本作為訓練樣本,200個樣本作為測試樣本。
首先,圖2給出了分別使用用戶名文本和微博文本的不同特征時的分類結果。從結果可以看出:
圖2 基于字和詞特征的分類結果比較
1) 利用用戶名文本進行分類時,其字特征要明顯優(yōu)于詞特征,高出的幅度超過9個百分點。該結果主要是因為分詞操作對用戶名文本進行切分時,會將某些用戶名作為一個整體,導致訓練樣本特征空間非常稀疏。此外,用戶名中的某些字,例如,稱呼(“姐”、“哥”等)對性別分類是有很大幫助的;而利用微博文本分類時,詞特征要好于字特征。在Uni+Bigram下尤其突出,前者比后者高出了3.5個百分點。
2) 在Unigram基礎上加入Bigram特征后,微博文本在字特征和詞特征下分類性能都獲得了提升,其中使用詞特征時提高了3個百分點。然而,在使用用戶名文本時,性能提高并不明顯。
其次,考慮到首尾字對用戶名分類的重要性,我們嘗試將用戶名的首尾字作為特征加入到特征空間中,具體來講,在首尾字后追加特殊符號,例如“_f”、“_l”以示區(qū)別,實驗結果如圖3所示。由圖3可以看出,對于用戶名,加入首尾字特征后分類性能獲得了提升。其中字的Uni+Bigram特征下最明顯,提高了兩個百分點;對于微博文本,加入首尾字特征對分類結果沒有影響。這是由于用戶名如4.1節(jié)特征分析中描述的一樣,其首尾字對性別的區(qū)分有幫助,而微博文本的首尾字對性別分類并沒有特殊意義,并且每條微博訓練樣本太長,分類器的特征空間太大,導致加入的兩類用戶名特征對分類結果沒有影響。
圖3 加入首末字特征的分類結果
值得注意的是,從圖2和圖3可以看出,微博文本的分類效果始終要明顯優(yōu)于用戶名的分類效果。在使用字特征的時候,前者仍比后者平均高出10個百分點。為此,我們特地隨機抽取200樣本(男女各100),采用人為識別的方式對用戶名進行性別分類,結果顯示在表5中。如表5所示,分類器的分類效果(使用最好特征集合)只比人工標注的低4.8個百分點。即使通過人工來識別用戶名,其分類效果仍比通過微博文本識別差8.2個百分點。其主要原因是某些用戶的用戶名不包含明確的性別特征,例如,“思想聚焦”、“愛吃魚的列”、“幸運素數”等。
表5 用戶名性別識別的人工識別效果和自動識別效果比較
綜合以上結果分析得出: 對于用戶名文本,利用其字的Uni+Bigram+首尾字特征分類效果最佳。而對于微博文本,其詞的Uni+Bigram特征表現最好。因此,我們使用這兩種特征作為兩種文本的基分類器的特征實現,用于進一步的分類器融合。
在上述的特征研究的基礎上,我們給出下面4種分類方法的分類結果進行比較。
? 用戶名: 利用用戶名文本的字的Uni+Bigram+首尾字特征訓練基分類器;
? 發(fā)表的微博: 利用用戶所發(fā)微博文本的詞的Uni+Bigram特征訓練基分類器;
? 特征疊加: 將上述兩種方法中的兩種特征疊加之后作為訓練集訓練分類器;
? 融合: 訓練上述用戶名和微博文本的兩個基分類器,然后根據貝葉斯融合規(guī)則將兩個基分類器融合,得到最終分類結果;
圖4給出訓練樣本規(guī)模從900變化到2 800時這四種方法的分類準確率。從圖中可以看出: 1)將用戶名和微博文本進行特征疊加并不能明顯提高分類性能。該結果的可能原因是微博的特征空間遠遠高于用戶名的特征空間,導致用戶名特征不足以對分類結果產生影響。相比而言,分類器融合方法獲得的分類性能明顯優(yōu)于其他3種方法,比用戶名分類器平均提高出18個百分點,比微博分類器平均提高3個百分點。2)訓練樣本從900變化到2 800時,融合的結果穩(wěn)定提高,且始終高于其他3種方法。該結果表明我們的融合方法有較好的穩(wěn)定性。
圖4 4種分類方法分類結果比較
最后,我們對分類結果進行分析,發(fā)現分類錯誤主要存在以下幾點原因: 1)測試樣本中仍然存在某些特征未在訓練樣本中出現,導致分類器無法學習到該部分信息;2)存在部分用戶由于發(fā)表的微博文本較少而且其用戶名屬于男性還是女性并不明顯,即使人工查看也無法區(qū)分其類別,以至于分類方法無法對其進行分類,例如,“思想聚焦”、“愛吃魚的列”、“幸運素數”等。
本文提出了一種基于用戶名和微博文本的分類器融合方法來對用戶性別進行分類。具體來講,首先利用用戶名和微博文本分別訓練兩個基分類器,然后根據貝葉斯規(guī)則對分類結果進行融合。實驗結果表明: (1)在中文微博性別分類中,用戶名文本里面的字特征具有一定的分類性能(但分類性能有限);(2)使用微博文本能夠獲得比使用用戶名文本更好的分類性能;(3)我們的分類器融合方法對用戶性別的識別能取得最佳的分類性能,并且分類效果明顯優(yōu)于利用用戶名文本、微博文本或兩者文本特征疊加的分類方法。
除了用戶名和微博文本外,微博中往往還包含了其他與用戶性別相關的信息,例如,關注者、粉絲及轉發(fā)等信息。在下一步工作中,我們考慮將更多用戶信息加入到中文微博用戶性別識別任務中。
[1] 文坤梅,徐帥,李瑞軒等. 微博及中文微博信息處理研究綜述[J]. 中文信息學報,2012,26(6): 28-36.
[2] 張劍峰,夏云慶,姚建民. 微博文本處理研究綜述[J].
中文信息學報,2012,26(4): 21-27.
[3] Burger J, Henderson J, Kim G, et al. Discriminating Gender on Twitter[C]//Proceedings of EMNLP-11, 2011, 1301-1309.
[4] Schler J, M Koppel, S Argamon, et al. Effects of Age and Gender on Blogging[C]//Proceedings of AAAI-06, 2006.
[5] Yan X, L Yan. Gender Classification of Weblog Authors[C]//Proceedings of AAAI-06, 2006.
[6] Mukherjee A, B Liu. Improving Gender Classification of Blog Authors[C]//Proceedings of EMNLP-10, 2010.
[7] Miller Z, B Dickinson, W Hu. Gender Prediction on Twitter Using Stream Algorithms with N-Gram Character Features[C]//Proceedings of International Journal of Intelligence Science, 2012,2(4):143-148.
[8] Nowson S, J Oberlander. The Identity of Bloggers: Openness and Gender in Personal Weblogs[C]//Proceeding of AAAI-06, 2006.
[9] Peersman C, W Daelemans, L Van Vaerenbergh. Predicting Age and Gender in Online Social Networks[C]//Proceedings of SMUC-11, 2011.
[10] Gianfortoni P, D Adamson, C Rosé. Modeling of Stylistic Variation in Social Media with Stretchy Patterns[C]//Proceedings of EMNLP-11, 2011.
[11] Ikeda D, H Takamura, M Okumura. Semi-Supervised Learning for Blog Classification[C]//Proceedings of AAAI-08, 2008.
[12] Corney M, O Vel, A Anderson,et al. Gender-Preferential Text Mining of E-mail Discourse[C]//Proceedings of ACSAC-02, 2002.
[13] Mohammad S, T Yang. Tracking Sentiment in Mail: How Genders Differ on Emotional Axes[C]//Proceedings of the 2nd Workshop on Computational Approaches to Subjectivity and Sentiment Analysis-11, 2011.
[14] Ciot M, M Sonderegger, D Ruths. Gender Inference of Twitter Users in Non-English Contexts[C]//Proceedings of EMNLP-13, 2013.
[15] Alowibdi J, U Buy, P Yu. Language Independent Gender Classification on Twitter[C]//Proceedings of 2013 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining, 2013.
[16] Li S, R Xia, C Zong, et al. A Framework of Feature Selection Methods for Text Categorization[C]//Proceedings of ACL-IJCNLP-09, 2009.
[17] Kittler J, M Hatef, R Duin, et al. On Combining Classifiers[C]//Proceedings of IEEE-98, 1998.
王晶晶(1990—),碩士研究生,主要研究領域為自然語言處理。E-mail: djingwang@gmail.com
李壽山(1980—),教授,博士后,主要研究領域為自然語言處理。E-mail: shoushan.li@gmail.com
黃磊(1989—),碩士研究生,主要研究領域為自然語言處理。E-mail: lei.huang2013@gmail.com