文本主題特征抽取實(shí)踐與構(gòu)想

1 緣起

其實(shí)開(kāi)展文本主題特征抽取這個(gè)方面的工作胶哲,已經(jīng)近一個(gè)多月了。在此之前抹竹,部門(mén)內(nèi)部對(duì)于數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)這塊的積累還是比較薄弱的止潮。

文本主題特征抽取

經(jīng)過(guò)一個(gè)多月在這方面的實(shí)踐窃判、與行業(yè)內(nèi)相關(guān)同行的交流以及經(jīng)歷接觸的一些東西,我發(fā)現(xiàn)還是有些東西可以拿出來(lái)做分享的喇闸。

雖然有些東西看起來(lái)并不是很高端的東西袄琳,但是,從工程化的角度來(lái)說(shuō)仅偎,個(gè)人認(rèn)為還是值得借鑒參考的跨蟹。

2 文本主題特征抽取實(shí)踐

2.1 主題特征抽取能干嘛雳殊?

在當(dāng)前個(gè)性化推薦大行其道的時(shí)候橘沥,那就不得不提用戶(hù)畫(huà)像。關(guān)于用戶(hù)畫(huà)像夯秃,不久之前跟一個(gè)朋友聊過(guò)這方面的話(huà)題座咆,他有個(gè)觀點(diǎn)我很認(rèn)可。

用戶(hù)畫(huà)像

類(lèi)似CSDN這種以?xún)?nèi)容驅(qū)動(dòng)的社區(qū)網(wǎng)站仓洼,想直接做用戶(hù)畫(huà)像是比較困難的介陶。首先這種網(wǎng)站用戶(hù)的粘度不大,大部分都是游客色建;其次用戶(hù)本身的固有屬性很難獲取到哺呜,或者說(shuō)即使獲取到了,也是不夠準(zhǔn)確的箕戳。

那OK某残,如何解決這個(gè)問(wèn)題呢?那我們只能從“用戶(hù)到底干了啥”這個(gè)角度陵吸,嘗試去描述一個(gè)用戶(hù)了玻墅。那么,我們想要知道一個(gè)用戶(hù)“干了啥”壮虫,那么我們首先需要確定“他干的事到底是啥”澳厢。

換言之,我們需要知道他寫(xiě)的文章是什么文章,他看的文章是什么文章剩拢。然也线得,我們先得清楚文章的主題,我們得清楚文章的標(biāo)簽徐伐。

文章的標(biāo)簽準(zhǔn)了框都,那么通過(guò)用戶(hù)對(duì)標(biāo)簽的行為,那么呵晨,試想一下魏保,用戶(hù)的標(biāo)簽還不容易嗎?

所以摸屠,與天貓谓罗、京東類(lèi)似的電商不一樣(他們的物品已經(jīng)高度分類(lèi)以及標(biāo)簽化,并且用戶(hù)數(shù)據(jù)詳細(xì)而準(zhǔn)確)季二,以?xún)?nèi)容為王的技術(shù)社區(qū)想要做好用戶(hù)畫(huà)像檩咱,那么,物品畫(huà)像的構(gòu)建是重中之重胯舷。

而對(duì)于物品畫(huà)像的構(gòu)建刻蚯,標(biāo)簽系統(tǒng)又是重中之重。對(duì)于標(biāo)簽系統(tǒng)的建立桑嘶,那么炊汹,自然少不了文本主題特征的抽取。

2.2 簡(jiǎn)單說(shuō)一說(shuō)算法實(shí)踐吧逃顶!

2.2.1 TF-IDF模型

說(shuō)到文本主題特征抽取讨便,則不得不說(shuō)的TF-IDF模型,這是一種最常見(jiàn)也是最通用的文本關(guān)鍵詞提取模型以政。OK霸褒,我們來(lái)客觀的描述一下,在一個(gè)文本中盈蛮,什么樣的詞才能算的上是關(guān)鍵詞呢废菱?也就是能夠體現(xiàn)主題的關(guān)鍵詞。

答案顯然是否定的抖誉,因?yàn)檫@種詞結(jié)結(jié)實(shí)實(shí)地對(duì)我們的主題描述毫無(wú)作用殊轴,所以它有一個(gè)比較專(zhuān)業(yè)的名稱(chēng),那就是“停用詞”寸五。通常梳凛,我們?cè)谔幚砦谋镜臅r(shí)候,首先需要過(guò)濾掉的就是停用詞梳杏。

OK韧拒,拋開(kāi)停用詞不說(shuō)淹接,我們以CSDN技術(shù)博文為例,其實(shí)很多詞例如“JAVA”叛溢、“開(kāi)發(fā)”塑悼、“程序”、“函數(shù)”等出現(xiàn)的頻率相當(dāng)?shù)母摺?/p>

他們不屬于停用詞楷掉,但總體來(lái)說(shuō)厢蒜,它們依然很難作為某一篇具體技術(shù)文章的主題詞,因?yàn)槊枋龅奶珜挿号胫玻粔驕?zhǔn)確斑鸦,甚至是偏離主題的。通常這種詞草雕,我們習(xí)慣性的稱(chēng)之為“公共詞”巷屿,即在很多地方都經(jīng)常出現(xiàn)的詞。

但我們仔細(xì)分析每一個(gè)文本墩虹,特別是那種富文本(即比較長(zhǎng)的文本)嘱巾,會(huì)發(fā)現(xiàn),能夠體現(xiàn)文章主題的詞的確是容易反復(fù)被提起的诫钓。

根據(jù)上面的分析旬昭,我們來(lái)總結(jié)一下,什么樣的詞更有可能是主題關(guān)鍵詞:首先它必須不能是大眾詞菌湃,即盡量的在少數(shù)的文本中出現(xiàn)问拘;其次它在該文本中出現(xiàn)的次數(shù)必須足夠的多。

有了分析結(jié)果慢味,那么剩下的事情就好辦多了场梆,根據(jù)如上兩個(gè)規(guī)律,我們來(lái)設(shè)計(jì)模型纯路。

我們通過(guò)TF,也就是某個(gè)詞在文本中出現(xiàn)的頻度寞忿,來(lái)提升這個(gè)詞在主題中的權(quán)重驰唬,然后我們通過(guò)IDF值,即逆向文檔頻來(lái)降低公共詞的主題權(quán)重腔彰。TF*IDF也就得到了我們要的主題詞權(quán)重叫编,然后根據(jù)權(quán)重值排序,截取N個(gè)我們要的詞作為文本的主題詞霹抛。

可能大家對(duì)TF好理解點(diǎn)搓逾,對(duì)IDF依然不甚理解。我們來(lái)看一下它具體的計(jì)算方式杯拐,我們就明白了霞篡。

TF-IDF計(jì)算

計(jì)算過(guò)程:

詞頻(TF)=某個(gè)詞在文本中出現(xiàn)的次數(shù)/該文本中總詞數(shù)

或者有另一種變種的計(jì)算方法世蔗。

詞頻(TF)=某個(gè)詞在文本中出現(xiàn)的次數(shù)/該文本中出現(xiàn)次數(shù)最多的詞其出現(xiàn)次數(shù)

我們?cè)賮?lái)計(jì)算逆向文檔頻(IDF)。

逆向文檔頻(IDF)=log(語(yǔ)料庫(kù)中所有文檔總數(shù)/(包含某詞的文檔數(shù)+1))

//這里需要注意的有三點(diǎn):

(1)一是在我們的詞表與語(yǔ)料庫(kù)沒(méi)有直接關(guān)系時(shí)朗兵,分子中+1就很有必要了污淋,因?yàn)楹茈y保證詞表中的某個(gè)詞在語(yǔ)料庫(kù)中一定會(huì)出現(xiàn),反之余掖,如果詞表是通過(guò)語(yǔ)料庫(kù)整理而出寸爆,則沒(méi)有這個(gè)問(wèn)題;

(2)這里取log對(duì)數(shù)盐欺,我們可以取log10赁豆,log2甚至是log e,根據(jù)實(shí)際效果調(diào)整即可冗美;

(3)第三歌憨,這里所指的詞個(gè)數(shù),一定是刨除了停用詞的計(jì)算墩衙,甚至是專(zhuān)門(mén)的詞表务嫡;

最后,我們計(jì)算TF-IDF漆改,只需要將計(jì)算的TF值與IDF值累乘就得到了我們需要的權(quán)重值心铃,然后經(jīng)過(guò)再次排序,就能知道詞的重要程度了挫剑。

無(wú)聊的理論過(guò)后去扣,我們來(lái)說(shuō)說(shuō)實(shí)踐吧:

我們接著來(lái)說(shuō)一說(shuō)實(shí)際的實(shí)踐吧。其實(shí)在此之前樊破,部門(mén)內(nèi)部已經(jīng)有一定的累積了愉棱,最直接的體現(xiàn)就是有幾個(gè)不同篩選程度的詞表,例如通用8W詞詞表哲戚,技術(shù)技能8000詞的專(zhuān)用詞表等等奔滑。

說(shuō)到這,我就不得不說(shuō)一說(shuō)詞表的重要性了顺少。由于某種特定業(yè)務(wù)的需要朋其,我們需要對(duì)于CSDN中特定部分技術(shù)文章進(jìn)行主題詞抽取。

本著前人栽樹(shù)后人乘涼的原則脆炎,我們直接拿起之前整理的通用詞表梅猿,很快樂(lè)的進(jìn)行文本去噪后抽詞,然后TF-IDF模型自然是沒(méi)有什么難度的秒裕。

然后抽取結(jié)果抽樣進(jìn)行評(píng)測(cè)袱蚓,結(jié)果顯然是差強(qiáng)人意的,不然就不會(huì)有后面的故事了几蜻。這使得我一度質(zhì)疑TF-IDF模型的權(quán)威性喇潘。

不說(shuō)準(zhǔn)確度多少吧体斩,好歹你別漏這么多關(guān)鍵詞啊,而且權(quán)重排序好歹靠譜點(diǎn)啊响蓉。在與一個(gè)朋友(好吧硕勿,其實(shí)這貨就是微博@祝威廉二世,很流弊的一只人)交流過(guò)后枫甲,經(jīng)他提醒源武,我意識(shí)到一個(gè)很重要的問(wèn)題:我們的詞表有問(wèn)題。

構(gòu)建一個(gè)符合當(dāng)前業(yè)務(wù)場(chǎng)景的專(zhuān)用詞表非常重要想幻!

我們使用CSDN內(nèi)部通用8W詞表去做特殊業(yè)務(wù)場(chǎng)景的主題抽取粱栖,能夠好才怪呢!于是脏毯,我竭力說(shuō)服眾人去一個(gè)事:為這個(gè)項(xiàng)目整理一個(gè)專(zhuān)門(mén)的詞表(至于說(shuō)為何要說(shuō)服他們闹究,嘿嘿,不說(shuō)服他們食店,誰(shuí)幫我進(jìn)行人工整理O(∩_∩)O~)渣淤。

于是,我在100G的技術(shù)博文中吉嫩,過(guò)濾出針對(duì)這個(gè)業(yè)務(wù)場(chǎng)景的76W篇文章价认,然后進(jìn)行常規(guī)的分詞處理,最終處理出一份近8W詞并且?guī)臋n頻的詞表自娩。

其實(shí)用踩,在特定的業(yè)務(wù)場(chǎng)景下,其總詞數(shù)也是遠(yuǎn)遠(yuǎn)低于通用總詞數(shù)的忙迁。隨后脐彩,我把任務(wù)下發(fā)到8個(gè)人手里,哈哈,沒(méi)人領(lǐng)了1W詞回去(當(dāng)然也包括我),進(jìn)行人工篩詞俗壹。

在眾人看得眼花繚亂之后,終于整理出一份5W詞左右的詞表晨川。然后替換詞表之后,重新進(jìn)行結(jié)果測(cè)試删豺。

從個(gè)人抽樣結(jié)果來(lái)看,效果真心好了不止一籌愧怜。其實(shí)我們仔細(xì)分析一下會(huì)發(fā)現(xiàn)呀页,替換一個(gè)符合業(yè)務(wù)場(chǎng)景的詞表主要體現(xiàn)在以下兩個(gè)方面:一是篩除了很多的干擾詞;二是TF-IDF模型中拥坛,符合業(yè)務(wù)的真實(shí)詞分布相當(dāng)重要蓬蝶。

除此之外尘分,需要提一下的就是,我們?cè)谶M(jìn)行人工篩詞的時(shí)候丸氛,適當(dāng)?shù)目粗忻~與動(dòng)詞培愁,而形容詞與副詞之類(lèi)的,其實(shí)大部分情況下是可以篩除掉的缓窜。

然后定续,在考慮詞上下文的時(shí)候,由于CSDN技術(shù)博文很難像正規(guī)論文那樣禾锤,通過(guò)類(lèi)似文章頭部尾部來(lái)體現(xiàn)部分詞的加權(quán)私股,但是例如文章標(biāo)題其實(shí)是可以考慮加權(quán)的。

不管文章是不是一篇正規(guī)文章恩掷,標(biāo)題大部分時(shí)候都是主題高度凝練的體現(xiàn)倡鲸。

2.2.2 TextRank算法

關(guān)于TextRank算法,可能了解的人稍微的少一點(diǎn)黄娘。它是一種非監(jiān)督式的主題抽取算法峭状,即它可以不依賴(lài)于其他語(yǔ)料,直接從文本中抽取主題詞逼争。

說(shuō)到TextRank算法优床,我們先來(lái)說(shuō)一說(shuō)PageRank算法。PageRank算法想必不少人都熟悉氮凝,它是一種很有名的網(wǎng)頁(yè)排名算法羔巢。

PageRank的核心思想:一個(gè)網(wǎng)頁(yè)的重要程度取決于鏈接到它的網(wǎng)頁(yè)的數(shù)量以及這些網(wǎng)頁(yè)的重要程度。即每一個(gè)網(wǎng)頁(yè)的重要程度都是通過(guò)其他網(wǎng)頁(yè)來(lái)體現(xiàn)的罩阵,而它的重要程度又反過(guò)來(lái)影響它外鏈中的網(wǎng)頁(yè)重要程度。

詞關(guān)系圖

而TextRank算法則是借用了PageRank的核心思想幽钢,其把詞看做是一個(gè)網(wǎng)頁(yè)傅是,而詞與詞之間的聯(lián)系則通過(guò)詞之間的距離來(lái)表示匪燕,任何一個(gè)詞與其左右為5的詞都是類(lèi)似外鏈關(guān)系的。通過(guò)不斷的權(quán)重計(jì)算帽驯,并且移動(dòng)詞排序书闸,重新迭代計(jì)算權(quán)重尼变,最終達(dá)到一定的收斂即停止。

算法實(shí)踐:

我在MapReduce中跑了一批數(shù)據(jù)浆劲,其實(shí)其效果哀澈,我個(gè)人認(rèn)為還行度气,特別是使用專(zhuān)用詞表進(jìn)行雜詞過(guò)濾之后磷籍,效果還是可以的。

這是一種比較容易實(shí)現(xiàn)择示,并且相對(duì)比較簡(jiǎn)單的主題抽取算法。所以汪诉,如果在主題抽取方面不愿意投入過(guò)多資源的谈秫,可以適當(dāng)?shù)目紤]拟烫。

但是,我們需要注意的是课竣,由于它的實(shí)現(xiàn)機(jī)制置媳,一方面它如TF-IDF算法那樣,在富文本領(lǐng)域表現(xiàn)較佳迂曲,并且詞頻對(duì)于其結(jié)果影響較大寥袭;另外一方面就是由于每次它都需要進(jìn)行迭代計(jì)算传黄,所以效率上會(huì)有所降低,特別是迭代次數(shù)越多的時(shí)候膘掰。

可以作為一種備用選擇吧。

2.2.3 LDA主題模型

先簡(jiǎn)單的說(shuō)一下LDA的核心思想:我們認(rèn)為每一個(gè)文檔Doc都是由多個(gè)主題Topic組成啤覆,而每一個(gè)主題Topic由多個(gè)詞Word組成惭聂。

通過(guò)對(duì)語(yǔ)料庫(kù)D中所有的文檔d進(jìn)行分詞或者抽詞處理之后辜纲,通過(guò)模型訓(xùn)練(具體的訓(xùn)練過(guò)程我就不寫(xiě)了,有點(diǎn)復(fù)雜耕腾,而且我不一定能夠?qū)懬宄?扫俺,我們得到兩個(gè)概率矩陣:一是每一個(gè)Doc對(duì)應(yīng)K個(gè)Topic的概率;二是每一個(gè)Topic對(duì)應(yīng)N個(gè)詞組成的詞表的概率羹呵。

有了這兩個(gè)概率矩陣疗琉,那么,我們需要的是每一個(gè)Doc對(duì)應(yīng)的Word概率凑耻,然后找M個(gè)概率最大的詞作為關(guān)鍵詞柠贤。有Topic作為中間橋梁种吸,那還有什么問(wèn)題么?

并且镜盯,從這里猖败,我們會(huì)發(fā)現(xiàn)恩闻,通過(guò)LDA模型進(jìn)行關(guān)鍵詞查找,其關(guān)鍵詞不再依賴(lài)于詞是否出現(xiàn)在該文檔中破停,這點(diǎn)與傳統(tǒng)的基于統(tǒng)計(jì)模型的主題抽取方式是不一樣的。

算法實(shí)踐:

在寫(xiě)這篇文章的時(shí)候毅臊,我們剛把LDA結(jié)果跑出來(lái)黑界,詞表大約5W左右朗鸠,K值設(shè)置的大概是200,迭代次數(shù)為100左右胎挎。出來(lái)的結(jié)果簡(jiǎn)直慘不忍睹扰楼。

具體的方式也可以稍微的說(shuō)一說(shuō),我們使用了Spark MLlib上的LDA實(shí)現(xiàn)项栏。

(1)DistributedLDAModel類(lèi)中有describeTopics方法沼沈,可以獲取到每一個(gè)Topic對(duì)應(yīng)的詞Word概率矩陣币厕;

(2)DistributedLDAModel類(lèi)的topTopicsPerDocument方法可以獲取到每一個(gè)Doc對(duì)應(yīng)的K個(gè)Topic概率矩陣;

(3)有了如上兩個(gè)矩陣页衙,求Doc到Word的概率矩陣不是手到擒來(lái)店乐?

(4)對(duì)于新文本呻袭,DistributedLDAModel類(lèi)同樣提供了topicDistributions方法進(jìn)行新文檔對(duì)應(yīng)于K個(gè)Topic的概率預(yù)測(cè);

參數(shù)肯定還是會(huì)繼續(xù)調(diào)整的廉侧,但從我個(gè)人的角度上來(lái)說(shuō)段誊,我們目前的業(yè)務(wù)場(chǎng)景并不是很適合LDA算法模型,首先個(gè)人認(rèn)為K值會(huì)比較大陪腌,因?yàn)镵值的設(shè)置需要盡量的跟實(shí)際情況吻合烟瞧,而我們的業(yè)務(wù)場(chǎng)景恰巧是主題分散的類(lèi)型参滴。

其次锻弓,LDA主題模型是三層概率模型,通過(guò)中間層進(jìn)行橋接暴心,概率映射的精度會(huì)進(jìn)一步下降专普,所以弹沽,個(gè)人認(rèn)為在富文本的場(chǎng)景下,直接的統(tǒng)計(jì)模型不會(huì)輸于LDA炸渡。

再其次感覺(jué)就是LDA對(duì)干擾詞相當(dāng)?shù)拿舾欣鲆眩?dāng)然沛婴,也或許是我們沒(méi)有用好」蹋總之藕夫,我們會(huì)繼續(xù)的進(jìn)行探索。

2.2.4 TF-IDF與TextRank的融合

我個(gè)人還嘗試使用TF-IDF的值對(duì)TextRank權(quán)重進(jìn)行修正办悟,目前最簡(jiǎn)單的嘗試就是直接類(lèi)似TF與IDF的融合滩褥,直接進(jìn)行累乘瑰煎,其實(shí)效果還OK啦。

不過(guò)魄健,通過(guò)與祝威廉的交流插勤,他認(rèn)為一個(gè)比較理性的融合方式是农尖,如果我們有足夠的樣本,我們可以通過(guò)類(lèi)似的線(xiàn)性回歸的方式助隧,來(lái)確定兩種算法的結(jié)果權(quán)重窟扑,來(lái)計(jì)算最終的詞權(quán)重值嚎货。

這個(gè)有機(jī)會(huì),有人力物力的話(huà)姐叁,真心可以考慮試試外潜。

3 一些文本主題抽取方面的構(gòu)想

3.1 社會(huì)化詞表機(jī)制

社會(huì)化標(biāo)簽或許不少人聽(tīng)過(guò)挠唆,但社會(huì)化詞表是什么東西?

先別著急滔驾,我們先來(lái)說(shuō)一說(shuō)社會(huì)化標(biāo)簽哆致。據(jù)個(gè)人所知,豆瓣是社會(huì)化標(biāo)簽的重度使用者耻蛇。我們來(lái)看一下社會(huì)化標(biāo)簽的運(yùn)作胞此。

網(wǎng)站為用戶(hù)呈現(xiàn)物品時(shí)豌鹤,呈現(xiàn)的是社會(huì)化標(biāo)簽,而每一個(gè)人都可以為物品打上若干標(biāo)簽,但物品只是動(dòng)態(tài)的顯示TopN個(gè)最熱標(biāo)簽灵临。

隨著參與打標(biāo)簽的用戶(hù)越來(lái)越多趴荸,物品的標(biāo)簽主題描述就會(huì)越來(lái)越趨近于準(zhǔn)確发钝,而相應(yīng)的,利用標(biāo)簽做的一些推薦或者個(gè)性化定位也會(huì)隨之越來(lái)越準(zhǔn)確涛碑。

在之前的實(shí)踐中孵淘,我們很明確的了解到瘫证,一個(gè)適合的詞表對(duì)于主題抽取的準(zhǔn)確率有多大的影響。

在當(dāng)前詞表的基礎(chǔ)上毙籽,我所說(shuō)的合適詞表有兩層意思:一是進(jìn)一步篩除干擾詞坑赡,二是隨著業(yè)務(wù)變更,增加新詞厅翔。

在之前的實(shí)踐中刀闷,我并沒(méi)有提及太多對(duì)詞操作的事仰迁,例如分詞徐许、新詞發(fā)現(xiàn)之類(lèi)的。其實(shí)針對(duì)于一些新詞翻默,我們是有一些方法進(jìn)行判斷是否為新詞的修械。

例如检盼,我們?cè)谂袛嘁粋€(gè)字典中沒(méi)有的詞是否能夠成為一個(gè)新詞時(shí),我們可以通過(guò)語(yǔ)料蹦渣,計(jì)算該詞與其左右兩邊詞的信息熵柬唯。

信息熵的意義是属提,隨著熵值越大冤议,代表該詞與左右詞的組合信息越混亂,那就是說(shuō)把他們組合在一起使用是不合理的堪滨。

經(jīng)典實(shí)例如“被子”袱箱,我們可以找到諸如“疊被子”、“蓋被子”盟萨、“加被子”捻激、“新被子”前计、“掀被子”男杈、“收被子”、“薄被子”旺垒、“踢被子”肤无、“搶被子”等100多種組合舅锄,計(jì)算“被子”與左組合詞的信息熵皇忿,我們會(huì)發(fā)現(xiàn)很大坦仍。

這說(shuō)明本身“被子”一詞不適合和作詞組合成一個(gè)單獨(dú)的詞繁扎,他應(yīng)該可以算一個(gè)單獨(dú)的詞來(lái)使用。

反之爹梁,我們會(huì)發(fā)現(xiàn)姚垃,一些詞盼忌,例如“輩子”這個(gè)詞,與他組合的詞君编,諸如“一輩子”川慌、“下輩子”窘游、“上輩子”、“半輩子”贪嫂、“八輩子”力崇、“幾輩子”赢织、“哪輩子”等于置。其實(shí)不算很多八毯,而且詞頻也不會(huì)太大。

計(jì)算“輩子”與左邊組合詞的信息熵讶踪,相比于“被子”一詞乳讥,則不一樣廓俭,其信息熵很小白指。也就意味著“輩子”與左邊的詞組合信息混亂度很小,這意味著错维,它與左側(cè)詞組合赋焕,形成一個(gè)組合詞更有可能是一個(gè)單獨(dú)詞隆判。

除了計(jì)算詞左右組合詞的信息熵,當(dāng)然也還有其他辦法來(lái)判斷一個(gè)詞是否作為新詞去處理臭挽。

但在我們的實(shí)踐里欢峰,我沒(méi)有在新詞發(fā)現(xiàn)與分詞上做過(guò)多的事情涨共。個(gè)人的觀點(diǎn)是举反,在分詞上投入過(guò)多火鼻,其實(shí)效果是很小的。因?yàn)檫@個(gè)領(lǐng)域已經(jīng)屬于基礎(chǔ)領(lǐng)域中的基礎(chǔ)領(lǐng)域波俄,除非你愿意投入相當(dāng)大的精力,不然效果是很低很低的支鸡,從工程化的角度來(lái)說(shuō)趁窃,得不償失醒陆。

同理刨摩,在新詞發(fā)現(xiàn)領(lǐng)域,也一樣耘婚,屬于復(fù)雜度更高的研究陆赋,并且不容易出效果攒岛。

那么灾锯,有沒(méi)有便捷的方法去解決詞表更新的問(wèn)題呢?

答案是顯然的色乾,我們可以依靠眾人的力量去更新詞表暖璧,這比少數(shù)幾個(gè)專(zhuān)業(yè)人士的效率更高澎办。

我們主題特征的一個(gè)重要應(yīng)用就是標(biāo)簽系統(tǒng)金砍,我們可以模仿社會(huì)化標(biāo)簽操作的手法恕稠。我們給用戶(hù)推薦物品的標(biāo)簽鹅巍,同時(shí)允許用戶(hù)在推薦標(biāo)簽的基礎(chǔ)上進(jìn)行增刪去留骆捧。

當(dāng)用戶(hù)的操作量累積到一定程度的時(shí)候,比如妆绞,用戶(hù)會(huì)添加一些新詞進(jìn)去括饶,又諸如巷帝,一些干擾詞,我們可以通過(guò)用戶(hù)經(jīng)常刪除該推薦詞的操作得以發(fā)現(xiàn)驰徊。

所以,如果這個(gè)機(jī)制做好了堕阔,這就是一個(gè)良性的循環(huán)過(guò)程棍厂。其次,還有一個(gè)我一直很堅(jiān)持的觀點(diǎn)就是:算法真心沒(méi)有想象中流弊超陆,我們需要結(jié)合用戶(hù)的力量對(duì)算法效果進(jìn)行修正牺弹。

3.2 一種Word2vec邊權(quán)改進(jìn)的TextRank算法

說(shuō)這個(gè)之前,簡(jiǎn)單說(shuō)一說(shuō)這個(gè)點(diǎn)子的來(lái)源时呀,其實(shí)包括上面提到的TextRank與TF-IDF算法融合思想张漂,都是通過(guò)與一位朋友交流得來(lái)的谨娜。

12月12號(hào)的時(shí)候航攒,在2015大數(shù)據(jù)大會(huì)BDTC的活動(dòng)中,有一個(gè)分場(chǎng)趴梢,那就是“IBM算法馬拉松挑戰(zhàn)賽年度總決賽”漠畜,我作為大賽評(píng)委參與了大賽的評(píng)判工作。


IBM算法馬拉松年度總決賽

算法挑戰(zhàn)賽的比賽題目就是“文本主題特征詞抽取”坞靶,是不是有點(diǎn)巧憔狞。其實(shí)真的不巧,因?yàn)檫@題目是我出的彰阴。

白色衣服的就是俺(博客蟲(chóng))了~~

當(dāng)然瘾敢,這不是重點(diǎn),重點(diǎn)是比賽選手的作品情況尿这。其實(shí)總體來(lái)說(shuō)廉丽,比賽的結(jié)果不甚理想,不過(guò)想想也是妻味,把一個(gè)研究多年課題,要在六七個(gè)小時(shí)內(nèi)把它實(shí)際工程化欣福,的確是挺難的责球。

不過(guò),有些點(diǎn)子還是不錯(cuò)的,比如一等獎(jiǎng)的獲獎(jiǎng)團(tuán)隊(duì)他們的想法就很好雏逾,就是通過(guò)語(yǔ)料計(jì)算詞的IDF嘉裤,然后通過(guò)IDF進(jìn)行詞過(guò)濾,在詞過(guò)濾的基礎(chǔ)上改進(jìn)TextRank效果栖博。

大賽過(guò)后屑宠,我聯(lián)系了他們的領(lǐng)隊(duì),進(jìn)行了進(jìn)一步溝通交流仇让,他提出來(lái)Word2Vec與TextRank結(jié)合的觀點(diǎn)典奉,即下面一些內(nèi)容就是在此基礎(chǔ)上一些發(fā)散(這進(jìn)一步說(shuō)明了技術(shù)交流的重要吶)。

對(duì)于TextRank算法過(guò)程丧叽,上面我們已經(jīng)大概說(shuō)過(guò)了卫玖。并且在實(shí)際的實(shí)踐中,我也嘗試使用TF-IDF算法模型結(jié)果對(duì)TextRank結(jié)果進(jìn)行融合踊淳,但效果不會(huì)太好假瞬。

關(guān)于Word2vec,簡(jiǎn)單的說(shuō)一下迂尝。它是一種以三層神經(jīng)網(wǎng)絡(luò)為底層支撐的詞向量表征模型脱茉。具體的算法模型過(guò)程,我就不做過(guò)多的篇幅描述了垄开,有興趣的可以去查找一下資料琴许。

我們?cè)趙ord2vec上最直接的一個(gè)應(yīng)用就是,通過(guò)語(yǔ)料訓(xùn)練说榆,我們可以獲取到詞表中任何一個(gè)詞對(duì)應(yīng)于其他詞的相似度虚吟。

OK,我們?cè)倩氐絋extRank签财,它在計(jì)算詞的重要程度時(shí)串慰,針對(duì)于每一個(gè)詞,只把左右鄰居中5個(gè)詞作為參考對(duì)象唱蒸,并且參考度邦鲫,也就是詞與詞的邊權(quán)都是1。

我們有了Word2vec中詞向量神汹,我們是否能在計(jì)算詞與詞參考度上進(jìn)行優(yōu)化呢庆捺?比如TextRank中只參考詞左右N個(gè)詞作為“外鏈詞”,并且詞與詞之間的“外鏈權(quán)重”都是1屁魏,其實(shí)這是有很大優(yōu)化空間的滔以。

比如,我們可以根據(jù)詞與詞之間的距離的增加氓拼,減小詞與詞之間的邊權(quán)你画,然后邊權(quán)的計(jì)算也不單純依賴(lài)于距離抵碟,我們使用Word2Vec計(jì)算出的詞與詞的相似度作為邊權(quán)。

這個(gè)思考是一個(gè)構(gòu)想坏匪,沒(méi)有付諸具體的實(shí)踐拟逮,所以也沒(méi)法保證結(jié)果。但之后有時(shí)間一定要實(shí)踐一下适滓,預(yù)計(jì)結(jié)果會(huì)好一些敦迄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市凭迹,隨后出現(xiàn)的幾起案子罚屋,更是在濱河造成了極大的恐慌,老刑警劉巖蕊苗,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沿后,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡朽砰,警方通過(guò)查閱死者的電腦和手機(jī)尖滚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瞧柔,“玉大人漆弄,你說(shuō)我怎么就攤上這事≡旃” “怎么了撼唾?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)哥蔚。 經(jīng)常有香客問(wèn)我倒谷,道長(zhǎng),這世上最難降的妖魔是什么糙箍? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任渤愁,我火速辦了婚禮,結(jié)果婚禮上深夯,老公的妹妹穿的比我還像新娘抖格。我一直安慰自己,他們只是感情好咕晋,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布雹拄。 她就那樣靜靜地躺著,像睡著了一般掌呜。 火紅的嫁衣襯著肌膚如雪滓玖。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天质蕉,我揣著相機(jī)與錄音势篡,去河邊找鬼损姜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛殊霞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播汰蓉,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼绷蹲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了顾孽?” 一聲冷哼從身側(cè)響起祝钢,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎若厚,沒(méi)想到半個(gè)月后拦英,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡测秸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年疤估,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霎冯。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铃拇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沈撞,到底是詐尸還是另有隱情慷荔,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布缠俺,位于F島的核電站显晶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏壹士。R本人自食惡果不足惜磷雇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望墓卦。 院中可真熱鬧倦春,春花似錦、人聲如沸落剪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)忠怖。三九已至呢堰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凡泣,已是汗流浹背枉疼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工皮假, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骂维。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓惹资,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親航闺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子褪测,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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