美文网首页數據科學
Data Trip - Line Bot 機器人進化吧!

Data Trip - Line Bot 機器人進化吧!

作者: zach14c | 来源:发表于2016-11-26 02:13 被阅读0次

我的 Line Bot 很認真的幫我們服務了數個月,舉凡提醒下班,休息,中午吃飯到提醒我們高尚的會計小姐該作些什麼事,又或方便資訊快速獲取,方便至極。今天我打錯命令關鍵字(key word),他就只會問我有事嗎?>.<|| 的確是沒什麼事.

改造前

為了讓他有趣一點,可以給一些驚喜的對答,把塵封己久的 TF-IDF (term frequency–inverse document frequency)技藝再度擦亮。如果只是要計算文件間的距離或是分類,可以使用 scikit learn 或是 mahout 來實作,不用自己來實作這部份,可以把時間節省下來給美好的人生。這裡我打算自行實作這三個數字,也因為我想建立一個自己的小而美輕量可操作模型,並且控制 Bot 的回應時間能在最短時間回覆。

** 資料 **

** 資訊技術 **

** 進化後的 Line Bot 機器人 **

我隨意找了兩部小說,一部是關於穿越時空,一部是關於愛情的,合計對話句子有48,084句,未來應該會讓 Bot 再學個三國誌相關帶有歷史色彩的小說來讓飽讀詩書。
先來問問他的狀況:

進化後Bot-01 進化後Bot-02

再來介紹我自己:

進化後Bot-03 進化後Bot-04

這個回答蠻有趣的,看來還是得回頭檢視分詞。

抱怨一下:


Selection_008.png

** 實作細節 **

  • 獲取來源文檔,並粹取對話句子,在這裡因為來源為簡體小說,所以為了使機器人能明瞭,使用了 Linux 下的 iconv 來轉換,常遇到這個錯誤

illegal input sequence at position

可以利用 -c 這個參數忽略該錯誤,如下的命令轉換,:

iconv -f utf8 -t gb2312 -c words-cn.txt \
  | iconv -f gb2312 -t big5 -c \
  | iconv -f big5 -t utf8 -c > words-big5.txt

如果是要繁轉簡則將 -f 與 -t 反之轉換

  • 分詞,則是相當重要的環節,分詞出來的結果會導致 TF 與 IDF 的計算準確度,以往我都會把含有頻率較多詞的句子一一看過,並使用自訂分詞的功能來將結果修正。而關於分詞的工具,可以參考這篇非常詳細的介紹:11 款开放中文分词引擎大比拼。目前我較常使用為結巴分詞,因其直接支持 Python及繁體,另外就是自訂詞。在分詞時可視應用需要把不必要的詞過濾(stop words),在這我把少於兩個字跟數字還有在我所定義的 stop_words[] 都過濾掉,其分詞如下:
import jieba
jieba.load_userdict("user-dict.txt")  #自訂義詞
seglist = jieba.cut(line_word) #結巴分詞
for s in seglist:
    #忽略詞長度小於 2
    if len(s) < 2:
        continue
    #忽略數字
    if re.match('(\d+)', s):
        continue
    if s in stop_words:
        continue
    if s in words_hash:
        words_hash[s] += 1
    else:
        words_hash[s] = 1
  • 計算 TF 與 IDF:
    • TF Bot晚安

相关文章

  • Data Trip - Line Bot 機器人進化吧!

    我的 Line Bot 很認真的幫我們服務了數個月,舉凡提醒下班,休息,中午吃飯到提醒我們高尚的會計小姐該作些什麼...

  • 用GAS搭建LINEBOT,

    参考:http://white5168.blogspot.com/2017/02/line-bot-2-line-...

  • 熱乾麵是鹹的 耳機也是鹹的 耳機掉進面裡 麵掉進淚水裡

  • 机器人的优势

    1 機器人不用吃饭 2 機器人不會長大,也不會變老 3 機器人可以幫人們做事 4 機器人可以在水里睜開眼睛,拍攝

  • 步進電機

    運行原理 磁極輪流導通,產生錯齒的轉子發生轉動。 四相步進電機 工作方式主要是通過脈冲的不同,以及每一個持續的長短...

  • curl

    curl:command line tool and library for transferring data ...

  • 地鐵和火車

    被控制著涌進地鐵 別無選擇的時候就是死的 好像會移動的然後笨笨的機器人喔 遙控器發出的信號就是向前移動向前移動不許...

  • 2020-03-25 DES, 3DES, AES简介

    DES:Data Encryption Standard 3DES:trip DES AES:Advanced E...

  • 2019-09-09

    今天唸了一課的熊叔英文,怛心自己懶癌上身,在下午先把日記寫一寫,今天到目前為止一定在學做LINE機器人,為什麼呢,...

  • 品茶奇思(王人義故事與美術)

    一、品茶與茶具 那一年去中國大陸要在台灣桃園機場轉機,中途轉機時間有六個小時。飛機清晨抵達桃園機場,走進機場就特別...

网友评论

    本文标题:Data Trip - Line Bot 機器人進化吧!

    本文链接:https://www.haomeiwen.com/subject/qgmwpttx.html