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