中文偽春菜後援會論壇  

打印

[偽AI] 對話AI超級一小步:詞彙聯想測試版

對話AI超級一小步:詞彙聯想測試版

搞了兩個星期, 終於寫到一點了XDD

在這篇討論串中我大概不會多說實作上的困難要事和解釋程式碼的了~
因為要說的話還真的沒完沒了(汗)

先放下載點:
http://ited.yingwa.edu.hk/~ywc-031301/ssp/AI_chat_dl.nar
(內附完成度0.000%的對話系統喔)(被毆)


----------------------------------------------------------
我編寫的這個系統是依照utoto的理論(?)為藍本的, 就是"輸入事物的必有特徵"這基礎上
這個測試版本提供 "特徵輸入" 和 "根據特徵進行聯想" 這兩部分
暫時沒有修改特徵這部分, 原因不想說(死)


話說為什麼我會先實作"必有特徵"部分呢?
因為在研究當中就發現那是無比尋常的難纏......我花了四五天處理理論上的問題囧

首先程式的架構是
儲存已輸入文字的陣列+記錄已輸入文字的屬性的陣列+各種事物相關東西的陣列(具有編號, 編號對照字詞於文字陣列的位置)

當輸入一個屬於事物A的特徵時, 事物A的陣列會儲存這個特徵
前兩個陣列會儲存特徵所用的字詞和特徵的性質(事物/描述)
為什麼要區別特徵的性質呢? 因為一個事物的特徵除了形容之外也可以是事物~ 例如"玻璃杯"的特徵是"玻璃"

每個輸入的東西可以大致上分為"事物"和"描述"性質, 這種區分是很重要的

----------------------------------------------------------
其實utoto的理論(?)忽略了一個很重要的東西:必有特徵上的承繼

例如, "玻璃杯"的必有特徵是"玻璃", "玻璃"的必有特徵是"容易破碎"
於是"玻璃杯"必定會承繼了"容易破碎"這特徵~

這種概念是: 如果[事物A]的特徵是[事物B], 那麼[事物A]會承繼[事物B]的所有[必有特徵]
這是一種很理想化的概念(?) 因為我暫時無視不相容的特徵XD" 還是一步一步完成會比較好~(被轟)
所以暫時不要提出"防碎玻璃杯"之類的東西~~~~

另一個概念是: 如果[字詞A]是描述性質, [字詞A]將不能有任何特徵
這個不難想像吧, 好像我們永遠不會說"紅彤彤的是鮮艷的"之類的怪東西(在此不考慮中文特有的賓主語缺失)

好啦, 以上完全是理論上的東西, 問題是實作上究竟要如何寫出來呢?!
究竟要如何讓偽春菜知道哪些是承繼了的特徵呢?! 在這個方向上, 我想出了兩種寫法


寫法1:在輸入[事物]的[必有特徵]時, 屬於該[事物]的東西(事物)將同時寫入那些[必有特徵]
寫法2:在進行聯想時, 才處理特徵的承繼

我只能說各有好壞處哪~
寫法1的好處是聯想的時候會很直接~因為所有[事物]的特徵都寫在屬於它的陣列中, 壞處當然是佔用的空間會比較大
寫法2的好壞處剛好跟寫法1的完全相反


另一個問題是實際上通常不會聯想事物的必有特徵, 更多的時候是根據必有特徵來聯想事物...
所以如果只記錄事物的特徵的話, 當尋找擁有特定特徵的事物時, 一定要比較所有已輸入的事物
於是乎進行聯想所需的時間進一步提升

解決方法大概是同時記錄擁有某[特徵]的事物, 形成某種雙向的記錄~
聯想所需的時間就會因此大幅減少了~ 因為不再需要比較所有已輸入的事物
當然這種做法的壞處是儲存所需的空間會兩倍化 囧


在這個測試版本中, "直接版"是寫法2+沒有雙向記錄, 佔用空間最小, 但處理聯想所需的時間最大
"複雜版"是寫法1+有雙向記錄, 佔用空間最大, 但處理聯想所需的時間最小


當然實際上是有四種組合, 不過不會花時間寫的了(爆) 除此之外還有等價字詞,對話系統應用等等問題
很累人呀~ 有空才繼續解釋吧~~~






PS: 考試快完結了~~~~~~~~~~~~~~~~~~~
"企圖製造不可能"ing



......逆天果然是我的本性(茶)

TOP

對了, 請愛用ClearWhite對話框~XD
"企圖製造不可能"ing



......逆天果然是我的本性(茶)

TOP

哦哦哦!!!  竟然做到这个地步了!
太感动了……  先下载测试,感想容后再补>.<;

目前為止覺得聯想2好用^^; 用1的時候犯了低級錯誤……

[ 本帖最後由 utoto 於 2008-5-6 22:54 編輯 ]

TOP

果然吸引到utoto過來看XDD

話說"複雜版"實在太複雜的關係(?) 編寫新功能會是件難事 囧
"直接版"真的是簡單易寫呀(死) 說不定以後用此版本開發=w="

話說"複雜版"是對應wordtest.dic, "直接版"是對應wordtest2.dic (不過應該怎樣也會看不懂orz)
如果輸入了錯誤資料的話, 清空yaya_variable.cfg的資料就可以了(逃)
"企圖製造不可能"ing



......逆天果然是我的本性(茶)

TOP

了解
继续测试中! 顺便检查一下能补充的句型等等^^
下一步是什么呢?完善对话功能还是增加user-friendly度呢?
加油加油!!!

TOP

嗯...這隻的程式碼還真的有點給他複雜
我看了幾分鐘就放棄了...(滾滾滾)

其實我最難以理解的是人格中預設字詞裡對「萌」的聯想事物...XD
末月返想 - 創意的存放處
二次元斷層 - 成果展現之所在

惰性是大敵。

TOP

其實我自己看程式碼........也有點暈...(轉轉轉)

我似乎忘記了清除我輸入過的東西(?) 萌大好~ 寫程式流程時都一直用"萌"做例子 <=內幕
下一步是甚麼? 慢慢來吧~ 理論上的東西都未完成...... 怎樣寫下去囧
"企圖製造不可能"ing



......逆天果然是我的本性(茶)

TOP

我什么都不会, 只能声援嗷~


[ 本帖最後由 CeMum 於 2008-5-10 16:12 編輯 ]

附件

azcm3.gif (9.6 KB)

2008-5-10 14:56

azcm3.gif

TOP

为什么不用面向对象的记录方法呢?

TOP

仁杰兄,在烦恼的是哪些理论问题呢?我觉得parts of speech(名词,形容词,等)也要成为一个阵列,是为了以后组句作参考。ai子判定中:'如果事物a的特征是事物b'存在一个文题:做为特征的是否应限定为行容词?在中文中有许多名词带有形容功能,是否应分得更细?玻璃杯是玻璃的 和 玻璃杯是用玻璃做的虽然第一个是形容词,第二个是名词,但对句子的意义没有影响。 但我认为照长远看应该区分为:如果(事物a.n)的特征完全包含(事物b.n)的必有特征,则事物b和事物a相似。很咬文嚼字,而且没完善这一点。等拿回电脑再跟进吧。。。  啊!我知道问题在哪里了,应该判断成:如果事物a包含事物b或b..c因为中文n1+n2=n3和 adj+的+n1=N1存在一个些小的差别,下次再续,手要抽筋了1

[ 本帖最後由 utoto 於 2008-5-14 20:14 編輯 ]

TOP

>winsock

請你解釋一下吧, 你突然拋出"面向對象"這個字我也不知道你想說甚麼=w=

如果你只是想說class的概念的話, 其實 字詞/短句的性質可以說是"類" , 字詞/短句本身也可以是"類"(雖然不太一樣)
如果你是指以class的性質去創建"對象", 我也想知道偽春菜要怎樣寫出來(爆)
如果是指父子程式上的承繼的話, 恐怕偽春菜寫不出來...............
如果只是分解複雜的程式成小程式的話, 偽春菜一向都可以~

[ 本帖最後由 yinkit 於 2008-5-14 20:19 編輯 ]
"企圖製造不可能"ing



......逆天果然是我的本性(茶)

TOP

>utoto

名詞的確會擁有形容詞的性質, 那是對話判斷的事~
老實說, 這不是大問題

最苦惱的是要怎樣輸出結果(回應)
你有沒有發現, 我們一直是用文字的邏輯分析句中的文字, 用文字的邏輯分析句的意思
但理論上電腦程式是沒有辦法理解文字的, 最終我們要以程式語言處理

怎樣令文字邏輯變成程式邏輯呢? 電腦程式無法直接分析"我是一個人"這句子的意義
就算最後我們分拆了noun為"我", adj(或描述用的noun)為"人"
電腦又怎樣用程式語言連接兩者之間的關係? 最終詞彙們都要化成可理解的某種"編碼"
然後,我們又要給出一堆非常複雜的規則和判決式...................

如果你有留意, 詞庫我都分成了一個個大小類別, 目的是為這種寫法舖路



究竟要怎樣做才可在程式邏輯和文字邏輯之中取平衡, 才是難事
"企圖製造不可能"ing



......逆天果然是我的本性(茶)

TOP

已经发贴解释了,请各位指教

TOP

ghost的樣子很有創意呢!
(不過既然是demo,幹麻還要費時設計性騷擾功能?)
.
要設計一個真的能理解人類語言的ai不容易呢!
讓我想到我自己,還是個小baby的時候學著講話的情形
人們是怎麼從只會說"我要糖糖!"一直到使用多種語言的學習過程。

[ 本帖最後由 empty 於 2008-5-15 17:49 編輯 ]
我承認我的個性就是喜歡大發議論
我的新blog:
www.wretch.cc/blog/SLX54461

TOP

>empty
我告訴你喔, 一開始的ghost只是一個"A"字............(不想花時間畫)
不過要天天對著這樣的怪物 還真的xx的討厭! 所以我用3D重畫了~~
可是因為電腦等級關係.........質素請無視吧XD

還有呀, 測試是苦悶的工作, 總是需要調劑的(?)間中騷擾AI子是件暢心慾事(?!)
"企圖製造不可能"ing



......逆天果然是我的本性(茶)

TOP

仁杰兄,知道你最近在瓶颈中>.<; 加油啊!
关于你帖子中几个问题,我的看法:
1:怎樣令文字邏輯變成程式邏輯呢? 電腦程式無法直接分析"我是一個人"這句子的意義
就算最後我們分拆了noun為"我", adj(或描述用的noun)為"人"
2:"最苦惱的是要怎樣輸出結果"

先认真地说一下1:
仁杰兄你恐怕是忽视了动词的逻辑性,
动词如:"是,爱,有"带有stative属性的,也就是陈述联系主词和宾词之间的逻辑.而且其实常用动词是有限的.
http://web2.uvcs.uvic.ca/elc/studyzone/410/grammar/stat.htm常用动词表.

"In some theories of formal semantics, including David Dowty's, stative verbs have a logical form which is the lambda expression
λ(x):[STATE x]
Apart from Dowty, Z. Vendler and C. S. Smith have also written influential work on aspectual classification of verbs. -----cited from wikipedia
总的来说,应该可以分析.

然后是无责任版, 顺便回答问题2:
>>:"我是一个人."
假设1:
data中存在以下,并设有关联性:
          人:{有生命,有思想,会老,会死}
          AI:{无生命,无思想(普遍认为),不老,不死(客观充分下)}
          常识:人发明了AI,人与AI不同, 多数舆论认为人比AI优越

假设2:我站在AI的角度,思考出以下回答:
1.那么我是一个AI. (自我介绍vs自我介绍) [天然...]
2.你什么时候知道自己是一个人的?(man from earth 中毒症) [play smart on the concept of "human"]
3.那么$user也会变老....有一天也会离开我?(chobits风格?!)
4.当你认为和AI交谈是一件愚蠢的事情时,你希望我怎样帮你确认此statement的真实性?
5.对于会老会死这一点,你觉得很骄傲吗?
其中4,5明显带有恶意,而3,5都是针对人类必有特征中负面成分的分析. 而1-5全体都很明显(2比较隐讳)把"我是一个人"当成存在对比性质的发言
思考过程简化版:
认知常识:人=/=AI, 人>AI
因为input存在对比性质(方法:句子structure得出),而且在认知上存有有负面性(关键字对比),所以得出结论user的态度:骄傲/优越感.
引起AI情绪:厌恶* (关于情绪对应的分析目前欠奉)
发言性质:反击. 方法:找出对方负面特征,并加以发挥(联想功能)

我对问题二的看法总结为:
1.决定对方发言的意义(态度分类下),
2.选择回答的意义(态度分类下),
3.组织关键字 (找出,比较,对应)
4.组织句型
5.输出2,3,4的组合.

*假设2带来的问题:如果利用逻辑建立的AI得出和我近似的答案,能证明AI和我经历了一样的思考过程吗?

当然,遇到这种问题有一种更简单的对应:
人作为关键字: 你知道第一个登陆月球的人类是....blahblah (Alan风格转换话题,是chatbot特色)

不过我相信.....大家会先走上钻牛角尖之路吧...orz

TOP

我最近也有類似的想法XD (不是馬後炮)

我一直在想, 人類很多時候都會用文字來思考.......
(當遇上複雜的東西就自然用上文字思考, 而聾啞人士的機制不明XDD
究竟要怎樣用程式模擬呢?

我昨天突然想了一想, 跟某網友(當初測試白靈子AI)說:
"幹嘛我不用文字模擬文字思考?" (就像當初人們想到用量子效應 模擬量子物理過程的計算)

當然, 讓AI用文字思考就先解決句子中的文字組合規則, 尤其是如你所述的詞性變化 (還有phrase)



其實我隱藏了很多研究機密(偷笑?!性格問題, 未充份思考準備的東西我是不會謬然擺在桌上給人看的............所以很多人不知道我在想甚麼幹甚麼)
就像大家都不知道我會突然釋出測試版這樣.................
不過看來, utoto兄的思維跟我的思維開始同步了

[ 本帖最後由 yinkit 於 2008-5-17 10:37 編輯 ]
"企圖製造不可能"ing



......逆天果然是我的本性(茶)

TOP

對了, 我們的鑽牛角尖之路, 恐怕是要做出強人工智慧
強人工智慧可是連科學家都搞不好的東西, 目前發展停滯
"企圖製造不可能"ing



......逆天果然是我的本性(茶)

TOP

上面的例子只是一种思维逻辑,能概括更多思维方式的理论现在仍在发展中。
一开始我就是这样想的,但是不敢说出来,怕听起来太”扯“会把人给吓跑了……
无论如何,现在开始考虑的输出对话的部分,会需要用到更多新程式(情绪对应,句型组合,等,暂定),但是就算要别人帮忙也要把理论更加完善才能制定分工啊……这方面多加把劲吧!(我也只有这方面的一点用处……)细节的东西和大家讨论会得到更多灵感,我是这么认为的^^。

TOP

引用:
原帖由 yinkit 於 2008-5-17 09:45 發表
對了, 我們的鑽牛角尖之路, 恐怕是要做出強人工智慧
強人工智慧可是連科學家都搞不好的東西, 目前發展停滯
高雄科工館裡,好像有兩隻能跟人溝通的機器人。
聽說它們還會假裝生病呢!

[ 本帖最後由 empty 於 2008-5-18 20:03 編輯 ]
我承認我的個性就是喜歡大發議論
我的新blog:
www.wretch.cc/blog/SLX54461

TOP



當前時區 GMT+8, 現在時間是 2018-8-15 21:19

Processed in 0.022303 second(s), 9 queries, Gzip enabled.

清除 Cookies - 聯繫我們 - 中文偽春菜後援會 - Archiver - WAP - TOP - 界面風格