0
雷鋒網(wǎng)按:本文作者 grapeot,原載于知乎,雷鋒網(wǎng)獲授權(quán)轉(zhuǎn)載。
聊天機(jī)器人部署了一周了。花了幾個(gè)小時(shí)的時(shí)間做了一些改動(dòng),有意思的部分主要有:
和ElasticSearch和Kibana連了起來(lái),現(xiàn)在有了實(shí)時(shí)監(jiān)控和可視化了。能看到每小時(shí)平均有多少次自動(dòng)回復(fù),多少次看群里話嘮,多少次看標(biāo)簽云。令我意外的是已經(jīng)過(guò)去一周了,可是大家的熱情仍然沒(méi)有消退。尤其是最簡(jiǎn)單的自動(dòng)回復(fù)功能,你提到“鴨哥”機(jī)器人就會(huì)自動(dòng)回復(fù)“嘎?”。這么簡(jiǎn)單的功能我以為用戶會(huì)玩玩就膩了。但數(shù)據(jù)顯示,直到今天還有每小時(shí)30多次的峰值調(diào)戲量。甚至有個(gè)群一晚上刷了幾百個(gè)鴨哥。。真是不能隨便猜用戶喜歡什么東西啊。。
第二個(gè)改動(dòng)就是把標(biāo)簽云的算法從TF換成了TF-IDF。TF (Term-Frequency)就是最簡(jiǎn)單的數(shù)詞頻,這是最簡(jiǎn)單可靠的算標(biāo)簽云的方法,但有一個(gè)缺陷,如果沒(méi)有對(duì)一些無(wú)意義的虛詞做特殊處理的話,會(huì)很容易出現(xiàn)一些巨大但沒(méi)啥意義的詞。比如這個(gè)例子,“這個(gè)”,“就是”,“可以”等等。占據(jù)了大量的空間,但沒(méi)啥信息量。
而 IDF(Inverse-Document Frequency)則可以解決這個(gè)問(wèn)題。它基本上代表了每個(gè)詞的信息量。IDF的基本思想是,如果一個(gè)詞在好多群里面都有出現(xiàn)(比如“的”),那么就對(duì)這個(gè)詞施加懲罰,讓它的權(quán)重變小。如果這個(gè)詞只在幾個(gè)群里面出現(xiàn)(比如“社會(huì)主義”),那就讓它變大。這樣就能保證,面積最大的幾個(gè)詞不僅是大家經(jīng)常說(shuō)的,而且是最有信息量的。經(jīng)過(guò)算法的這個(gè)更改以后,我們對(duì)同一個(gè)群計(jì)算標(biāo)簽云,結(jié)果就變成了這樣:
這個(gè)群最有特色的幾個(gè)詞一下就出來(lái)了。
此外,我還試著把標(biāo)點(diǎn)符號(hào)也加入到了計(jì)算里面,結(jié)果很有意思。大多數(shù)的群的標(biāo)簽云里面都是沒(méi)什么標(biāo)點(diǎn)符號(hào)的。原因很簡(jiǎn)單。第一,聊天的時(shí)候以短句為主,后面本來(lái)就很少加標(biāo)點(diǎn),TF不高。第二所有群基本上用標(biāo)點(diǎn)的頻率都差不多,所以標(biāo)點(diǎn)的IDF也差不多。因此不會(huì)有標(biāo)點(diǎn)特別大的情況出現(xiàn)。但我看到了兩個(gè)群有很大的標(biāo)點(diǎn)出現(xiàn)。
上面這個(gè)圖是科大的AI群。因?yàn)槔锩娼?jīng)常進(jìn)行一些大段的深入的討論,所以逗號(hào),句號(hào)和頓號(hào)都非常明顯。而下面這個(gè)群,則是因?yàn)樵诹馁I房,貸款,所以出現(xiàn)了百分號(hào)%。又因?yàn)檫@個(gè)符號(hào)在其他群里都沒(méi)有出現(xiàn),所以IDF巨大。一下就搶占了很大的空間。這也是為什么里面出現(xiàn)了房子,地主婆等關(guān)鍵字的原因。。
所以在某種程度上,這個(gè)機(jī)器人已經(jīng)可以理解大家說(shuō)話的內(nèi)容了。比如可以區(qū)分內(nèi)容中獨(dú)特的部分。這對(duì)于分類,聚類等等進(jìn)一步的應(yīng)用都是非常有幫助的。如果你有什么有意思的應(yīng)用,也可以在評(píng)論中提出來(lái),我們來(lái)幫你實(shí)現(xiàn)。
編者注:關(guān)于本文的后續(xù)內(nèi)容,我們后面幾天將在雷鋒網(wǎng)陸續(xù)刊登,敬請(qǐng)關(guān)注。
雷鋒網(wǎng)相關(guān)閱讀:
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。