如何做一款聊天機械人

2021-08-14 20:12:26 字數 1418 閱讀 3409

以此開題,並不是一定要做一款對話機械人,只是做事一定要以目標為驅動,目前所要研究的語義方向是乙個太大的方向,是乙個讓人完全摸不到頭腦的方向。因此,選取其中乙個分支作為切入點,開始我的認知過程。在這個過程中,我會不斷更新我的認識,以聊天機械人開篇,結尾處也許會面目全非!

總結下來,其實我們更需要的是乙個語音助手。

通過上面的得出的結論,對我們想要的東西,應該有個模糊的想象,我覺得就是那個樣子,沿著這個思路,繼續其明確我們的目標與實現途徑。

這一層的存在,其實是將網際網路上雜亂無章的資料,進行各簡單的分類,可能會用到一下三種方式:

人工維護錄入資料(不做細說)

第三方開放平台介面資料 

垂直爬蟲爬取資料

細說垂直型網路爬蟲

推薦幾個資料獲取的**:

數字聚合層的資料,其實還是一些原始資料,是下一步針對性抽取的前提。

這一層體系,基本上是在有行業資料的基礎上,進一步的對興趣點進行提煉。基本也分為三個方向:

文字挖掘 

從狹義的角度看,文字挖掘是不做推理的,但現在挖掘技術總是和深度學習結合在一起的。

協同過濾 

深度學習 

資料探勘層的輸出,就是各種各樣的知識庫,是語義系統能夠用到的最直接的東西。

這一層很好理解,其實更接近我們目前所能理解的東西。文字分析之後,去相應的知識庫尋求問答。例如,對於乙個機械人對話系統,你說一句話,語音轉成文字之後,根據文字的分詞、句法、語義分析結果,去對應的語言庫中,尋求或自動生成最合理的應答。對於語音助手,那麼先分析出,需要哪樣的知識庫,在去相應的知識庫中尋求結果,或回一句話,或放個**,或開個空調,等等等等。介紹下知識庫:

通用知識庫

專用知識庫 

社會化**庫 

語義庫和規則庫 

知識庫,是我們要做這件事的重中之重,或購買第三方,或自己進行訓練提取,難度呵呵噠!!!

這一步的假設是需求的資源都能獲取到。

已做乙個聊天機械人為例,講述一下如何通過上述架構來實現:

資料探勘層,那麼如何獲取這些資料呢,可以通過購買或者是爬蟲技術進行爬取。因為這些東西屬於使用者隱私,在使用爬蟲進行爬取的時候可能需要一些黑客的技術融入其中,針對很多大的資料**是有反爬機制的,還要想辦法繞過這一關。在此實現的基礎上,對對話內容進行nlu的分詞、句法分析等操作,並將輸出結果,作為深度神經網路的輸入,進行訓練。得到一套應答機制4。

知識庫層,利用3輸出的結果,構建應答的語義和規則庫

引擎層, 這一部分包括語音識別(聲音轉文字),語義理解引擎(對文字進行分詞和句法分析,將分析結果輸入上面訓練的神經網路,得到答覆),語音合成(將輸出的結果最終的讀出來)。

解決方案層, 構建乙個聊天機械人的應用,包括ui介面和互動邏輯等。 

整個上面的過程,實際上是我乙個門外漢,對整個我們要做的事情的乙個理解的過程。

文字挖掘

協同過濾

語義理解

社會化**

聊天機械人

我你好!小愛同學 小愛你好,很高興認識你!charset utf 8 css document 休息一會 sleep 1 獲取 使用者傳送的 訊息 可選 後端 對於 使用者發過來的 時候 是否 使用 可選 根據 傳送 過來的 訊息 返回 不同的內容 messagelist array 床前明月光,有...

機械人聊天軟體c C 聊天機械人

例項簡介 c 聊天機械人 例項截圖 核心 3181078聊天機械人 原始碼必讀.pdf 聊天機械人 1.ico 聊天機械人 1.ico form1.designer.cs form1.cs form1.resx program.cs properties assemblyinfo.cs resour...

聊天機械人ELIZA

1 在 自然語言理解 這本書的緒論中曾分析了聊天機械人eliza的設計機理,表明這是一種語言變換的技巧,而不是真正的 自然語言理解 午間休息時檢索了一下,找到了乙個它的連線 它並不如書中所舉的例子那樣的 聰明 也許因為這是第乙個聊天機械人,以及它並沒有真正採取 自然語言理解 的技術有關。下面是筆者與...