Athena開發(fā)日記——第三日

這是一個奇怪的周末,我難得在個人項目上取得了一點進展。


我花了很長時間思考如何讓Athena可以記住東西。

毫無疑問,Athena的記憶就是我的,也可以說是她的數(shù)據(jù)庫。而Athena比人類好的一點是,除非數(shù)據(jù)源掛掉,否則她不會失憶,任何存儲在她腦海里的事情都會被記得。

之后再考慮記憶,人的記憶也類似于數(shù)據(jù)存儲,拋開生物層面不談。不過人會有短時和長久記憶的區(qū)分,不常用的事物,無關(guān)緊要的事物,會被選擇性遺忘。而人究竟記住了什么呢?我和楓哥就此討論了一番。最終,我偷懶的把記憶暫時的分為了——

概念:抽象的定義。可以看做是Class。比如,貓、波斯貓、一只波斯貓。

物體:具體的定義??梢钥醋鍪荗bject。由概念實體化而來。比如,我家的貓,路上看到的臟兮兮的土貓。物體是可以明確定義的。

人:由于人的屬性會比物體多很多很多,所以我特別的將人拎出來了。

事件:event,楓哥說在新聞中,事件有五W要素:when where who why what。

我最初的設(shè)計中只有物體和事件兩種,而他們共有entry, type, category和description四個屬性,以及一個名為option的解釋類屬性。

在這個暫時區(qū)分后,我發(fā)現(xiàn)description這個屬性非常的曖昧不清,于是我把它也去掉了。而四個分類依然可以共用剩下的屬性。

隨后我開始想,我要如何起手寫這個邏輯——一想就是大半天。直到后來,我覺得,無法再拖下去了,隨便寫點吧,才開始真正動手。

經(jīng)過一段時間的修改。我把memory_controller的大概寫了出來。擁有momerize與recall兩個方法,分別主管記憶(in)與回憶(out)?,F(xiàn)在想來,push和pull可能更形象一點?!樱簃emory在Mongoose自動轉(zhuǎn)換時不是變成memorys而是memories。這就是為什么我可以用model查到數(shù)據(jù)但是在RoboMongo里找不到數(shù)據(jù)的原因。


之后要做的事情就很簡單了——

我重寫了資訊的獲取邏輯,正式由實時爬取改為了取資訊記錄庫中的后十條。

然后由于Cheerio對RSS的解析實在是弱,同時舊的RSSFeed突然失效了。我用XMLReader這個庫把整個資訊的獲取部分翻修了一遍。另外由于CnBeta的RSS一次有100條數(shù)據(jù),我覺得后臺日志被刷屏實在是太無聊了,就用Async把咨詢處理那一段也重寫了一下。——雖然這個說的比較簡單,但是我還是整整做了一上午。

再后來,我利用recall方法,把Athena的初始化方法更新了——Athena在醒來的時候先會去記憶庫中尋找自己的資料,如果沒有會把一份初始化的資料灌進去。

另外,我花了一點時間找了一點音頻文件。然后研究了一下如何用JS操作audio。現(xiàn)在Athena在搜集到新的消息后,會發(fā)出非常銷魂的一聲“額~啊~~~~”——這個聲音一開始非常棒,但是后來我開始寫代碼的時候,就不停的被嚇到,一直到我寫這篇文章的前幾段,我還被嚇到過一次,以至于我不得不把音響給關(guān)了……

隨后我開始探索新的API,在百度的API庫里找到了幾個我還算中意的API,在測試動漫臺詞這個API的時候,遇到了Unicode編碼無法轉(zhuǎn)換的問題,一怒之下,看比賽去了,到現(xiàn)在還沒有解決。

這大概就是這幾天的工作了吧。


未來:

之后首先要解決的記憶的應(yīng)用——我需要在探索(爬蟲)模塊中,讓Athena自己知道應(yīng)該去爬取哪些東西。

之后是記憶的關(guān)聯(lián)——我認(rèn)為,聯(lián)想是一種非常重要的東西,Athena需要對記錄的所有信息做關(guān)鍵詞處理,然后做關(guān)鍵詞歸集和關(guān)聯(lián)。這樣當(dāng)我再問一個事情的時候,她就可以從各種關(guān)聯(lián)中取到所需的信息。

SM告訴我說,不要把她變成一個功能機器人,她是一個智能機器人。

我覺得很對。

Athena需要有自己的情感和思維。我其實非常希望她可以擺脫瀏覽器的束縛——然而我的第一次嘗試,試圖把她打包成一個APP的嘗試,由于地址的問題,沒有成功。

今天到現(xiàn)在,我非常的累。

感謝楓哥和我討論記憶的模式,并提供了系統(tǒng)音效的選擇。

以我這樣的半吊子水平,去逼近人工智能,我覺得似乎很遙遠(yuǎn)啊。然而如果Athena能夠確確實實的說出一句我沒有編碼過的話。我覺得,我還是會很開心的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容