search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

能理解聊天記錄的微信機器人

雷鋒網按:本文作者 grapeot,原載於知乎,雷鋒網獲授權轉載。

聊天機器人部署了一周了。花了幾個小時的時間做了一些改動,有意思的部分主要有:

  • 和ElasticSearch和Kibana連了起來,現在有了實時監控和可視化了。能看到每小時平均有多少次自動回復,多少次看群里話嘮,多少次看標籤雲。令我意外的是已經過去一周了,可是大家的熱情仍然沒有消退。尤其是最簡單的自動回復功能,你提到「鴨哥」機器人就會自動回復「嘎?」。這麼簡單的功能我以為用戶會玩玩就膩了。但數據顯示,直到今天還有每小時30多次的峰值調戲量。甚至有個群一晚上刷了幾百個鴨哥。。真是不能隨便猜用戶喜歡什麼東西啊。。

  • 第二個改動就是把標籤雲的演算法從TF換成了TF-IDF。TF (Term-Frequency)就是最簡單的數詞頻,這是最簡單可靠的算標籤雲的方法,但有一個缺陷,如果沒有對一些無意義的虛詞做特殊處理的話,會很容易出現一些巨大但沒啥意義的詞。比如這個例子,「這個」,「就是」,「可以」等等。佔據了大量的空間,但沒啥信息量。

而 IDF(Inverse-Document Frequency)則可以解決這個問題。它基本上代表了每個詞的信息量。IDF的基本思想是,如果一個詞在好多群裡面都有出現(比如「的」),那麼就對這個詞施加懲罰,讓它的權重變小。如果這個詞只在幾個群裡面出現(比如「社會主義」),那就讓它變大。這樣就能保證,面積最大的幾個詞不僅是大家經常說的,而且是最有信息量的。經過演算法的這個更改以後,我們對同一個群計算標籤雲,結果就變成了這樣:

這個群最有特色的幾個詞一下就出來了。

  • 此外,我還試著把標點符號也加入到了計算裡面,結果很有意思。大多數的群的標籤雲裡面都是沒什麼標點符號的。原因很簡單。第一,聊天的時候以短句為主,後面本來就很少加標點,TF不高。第二所有群基本上用標點的頻率都差不多,所以標點的IDF也差不多。因此不會有標點特別大的情況出現。但我看到了兩個群有很大的標點出現。

上面這個圖是科大的AI群。因為裡面經常進行一些大段的深入的討論,所以逗號,句號和頓號都非常明顯。而下面這個群,則是因為在聊買房,貸款,所以出現了百分號%。又因為這個符號在其他群里都沒有出現,所以IDF巨大。一下就搶佔了很大的空間。這也是為什麼裡面出現了房子,地主婆等關鍵字的原因。。

所以在某種程度上,這個機器人已經可以理解大家說話的內容了。比如可以區分內容中獨特的部分。這對於分類,聚類等等進一步的應用都是非常有幫助的。如果你有什麼有意思的應用,也可以在評論中提出來,我們來幫你實現。

雷鋒網相關閱讀:

能理解聊天記錄的微信機器人 (一)

能理解聊天記錄的微信機器人 (二)

能理解聊天記錄的微信機器人 (四)



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦