中文偽春菜後援會論壇  

打印

[偽AI] 关于事物的联想:使用面向对象化的技术

关于事物的联想:使用面向对象化的技术

认真的拜读了utoto的理论与yinkit的程序实现以后,我提出一种更有效的实现方法—面向对象的记录。
关于面向对象化,说的最多的大概是面向对象化的编程了。这也是c与c++的根本区别,其实这个技术也是从人对于事物的理解之中借鉴过来的。如果对c++或者是其它面向对象化的编程语言很熟的人,应该想到怎么应用到这里来了吧?
首先给那些不懂编程的人解释一下关键术语
术语:类
类是对事物属牲,行为,性质,状态的一个集合。比如说,水果就可以视为一个类,它的属性就有酸甜,气味,味道等等,而行为就是吃,看,拿等等。
术语:继承
类与类之间可以继承,我们都知道,人是哺乳动物。那么,人这个类就继承了哺乳动物这个类。也就是说,人具有哺乳动物的通性。比如,哺乳。但是人具有其它哺乳动物所没有的特性。比如说话,思考。所以说,人这个类继承了哺乳动物的所有特征,又有自己独立的特征。
术语:实例
实例就是把类给具体化,也就是说,从类这一抽象概念,到具体的事物。比如,水果进行实例化后就有西瓜,苹果,桃子。这些都有水果的特征,但每个对象的属性值不同,西瓜的酸甜属性就是甜,而苹果的酸甜属性就是酸甜,它们具有相同的方法。
下面谈谈具体方法。
首先,建立各种不同的类,比如球体,水果等等,尽量按大的类别建,例如
球类
属性:离心率
特征:曲面
方法:滚动
水果
属性:酸甜,气味,味道
特征:果实
方法:吃
继承:球类
从上面可以看出水果是球类的子类。因此,水果具有以下性质:
特征:曲面,果实
属性:酸甜,气味,味道,离心率
方法:吃,滚动
其次,对事物进行实例化。
这样记录的话,联想起来很方便。

TOP

对于伪春菜来说,可能面向对象化的方法过于勉强,所以我认为可以使用其他语言实现,比如说python.
本人觉得伪春菜系统对于功能的扩展过于困难,所以想重新编写一个基于python内核的伪AI,主要特点是模块式开发,便于功能的添加,这方面python支持的很好,
还有就是与系统进行融合,接管桌面,以自己的方式显示,这个在旧站上曾经讨论过.不知旧站的资料还在否?

TOP

真正要了解人工智能的话
http://www.2nsoft.cn/bbs/read.php?tid=6990&fpage=3
话说我们讨论的都是浮云,这个论坛上的牛人才多(大陆站点)
本人也是大陆的,四川这次遭的有点惨

TOP

同感

的確,之前看了仁傑兄的字詞聯想實作試驗人格之後,小弟最初想到的也是"類別"與結構化的"關連式資料庫"...

以Class來為每個字詞定義,表達清楚,操作方便之餘(尤其是名詞與動詞之間的關係處理,也就是Winsock兄上文說到「水果」的方法是「吃」之類,此處不詳贅),也能夠兼顧詞性的特性承繼等要求;
以關連式資料庫來連繫不同字詞,也比起以陣列具擴充性而且存取得有效率。

可是...對於玩偽AI的新手而言,這些也是很高的門檻...Class要真的有點OOP程式根底;Database也要有SQL底子...(汗)

與其重新開發一個核心,其實,是否可以利用DLL plugin插件的方式,把這些功能加到現有的偽AI裡? 這樣,大概便可以同時兼顧初階用家與及高階用家吧

偽AI始終是以擬似真實對話文字操作為目的,要以真AI的思考能力為目標,似乎有點遠啊

TOP

dll可以是可以,但是我是c++苦手

TOP

嗯, 用這種模式化的方法的確比較方便又易維護.........
用在準確無誤的手動學習上的確有效, 不過我恐怕用在自主學習不太實用..........
(其實我寫學習系統主要是為了自主學習, 不是手動學習)

原因大概如下:
1. 學習過程中, "類"的屬性會不斷改變(畢竟有可能出現新的未知屬性), 甚至某父類或實例會突然脫離關係(基於發現錯誤連繫)
看看以下例子:
類1--木瓜{ 特徵:生果 ; 属性:味道,氣味,品種...... ; 方法:被吃}
如果某輸入"番木瓜是木瓜來的", AI會分類"番木瓜"是屬於"木瓜"
於是會出現 類2--番木瓜{ 特徵:木瓜,生果 ; 属性:味道,氣味,品種...... ; 方法:被吃}
重點是, 萬一跟你跟AI說"其實番木瓜跟木瓜是兩種東西的喔!"
AI究竟要怎樣分割番木瓜和木瓜之間的關係呢?! 或許您曾經輸入過"番木瓜的味道很好"(同時表示番木瓜有味道這屬性)
本來屬於番木瓜的屬性(例如味道) , 究竟要怎樣判斷是否跟木瓜有關呢?

所以你會發現我的寫法是"面向實例"的, 因為只要它們有獨自的屬性
就不會出現類屬之間的直接干涉
(尤其是直接版, 由始至終不會自動歸類, 每個事物只會記錄自己的特徵)

2.類別的多樣化絕對是問題. 以您的看法, 始終要定義某個"類"的屬性, 特徵和方法
可是實際上, AI可能在自動學習中知道"蘋果"有"甜"這種屬性....但在AI知道"甜"是"味道"之前
不可能出現一個擁有"味道"這個屬性的類!! 那麼"甜"這屬性之前要怎樣處理呢?
難道AI每次的自動學習之後, 都要問主人要怎樣處理嗎(汗)
而且每個事件自己也是個類, 屬性可能會加加減減的.........
怎樣說都會搞出程式混亂
再者, 就算是手動學習, 恐怕要窮盡"類"的可能性是超級苦力幹, 效果也不見得有多好 囧

3.這種方法似乎不利於一些屬性的辨別
例如: 某某君--[屬性:性格(善良)&性別(雄性).........]
如果我輸入"我遇到個很好很好的男人喔!"........AI會辨別得到"某某君"是屬於他說的那類人嗎?
我們因此一定要建構"同義詞/詞彙意思庫", 記錄"善良"有"好"的意思, "雄性"等於"男"等等

4.屬性是不言而喻的記錄(例如指定函數/陣列的某個位置), 還是用文字記錄的?
請您想想, 如果我輸入"味道很甜的水果"
AI大概會分析自己要從"水果"這個類中找出擁有"味道"這屬性是"甜"的實例
好啦, 如果屬性是不言而喻的話, AI根本無法分析"味道"這屬性在哪裡
不要說只需要找出"甜"這屬性的存在, 因為除了"味道很甜"之外, 還有"笑得很甜"等等的
直接找出"甜"的話會正中下懷呢(畢竟人類的說話就有很多變化, 會一詞多用呀)
所以屬性最終要用到文字記錄(這樣AI就知道"味道"在哪裡), 同時需要"同義詞/詞彙意思庫"
這樣就變得跟我寫的聯想判斷式差不多了..............


所以如果不是準確無誤的學習, 面向對象也不是好用得多的方法
以上是我的部分見解~ 請多多指教啦(死)
因為本人沒有接受過正統程式學習, 所以邏輯上可能不太完整~

-------------------------------------------------------------------------------------------------------------------
其實樂觀點來看, 如果今年中國一定會有大地震的話, 在這種日子出現總比在奧運時出現好!
如果奧運的時候, 北京突然震了一震, 水立正的水突然出現了波濤, 鳥巢突然搖了一搖.........
恐怕會引起觀眾恐慌吧...........某些可愛的人又要嚷著要離開的了(順便杯葛)

再者, 如果發生在冬天的話, 下雪和冷天氣會凍死沒有被立即救出來的人.........
如果發生在炎夏的話, 下雨會引發更可怕的山泥傾瀉和令救援困難起來........因屍體而起的疫病會很嚴重...........

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



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

TOP

我打字打太久, 現在才發現有新的回應(炸)

>"類別"與結構化的"關連式資料庫"
個人覺得比較可行~ 完全是面向對象的話會挺難搞
寫不是個問題, 方法背後的問題才是真正的問題(汗)

我要找出最好的寫法啦~ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
"企圖製造不可能"ing



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

TOP

哦耶.....确实存在这些问题....咱也没有系统的学习过面向对象化的编程,只是最近学习python想到的...

TOP

還不用失落啦, 只是想告訴大家 好的方法一定有其弊處
只能夠說這個方法不太適合ai學習, 反而做成生物百科全書會有優勢

"面向對象"的技術無疑帶來了很多方便和好處, 但是它根本的煩處都出現在邏輯上
甚麼可以承繼, 甚麼會被承繼, 為什麼要承繼, 甚麼是獨立的 等等都要算得清清楚楚..........
這點在我製作RPG小遊戲時也略有體驗(死)

當大家發現天空多了條階梯升上天堂, 卻發現地上多了個深坑直落地獄
大家在這條(不歸)路上要小心一點呀!
"企圖製造不可能"ing



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

TOP

我也认为不需要失望得那么早,
很多时候我们会得到对某样事物片面的知识.似乎很适合用面对对象的方式储存在AI的档案中. 如果可以用class操作最基本的常识,再使用仁杰style的阵列连接,分类.请问是否可行?
例如:事物A{特征...苹果(继承:水果(继承:球类))}?
class苹果:
class能否做出解除继承?虽然winsock兄解释过,但我还是不甚了解class的操作方法,可能要找些材料预习一下才能和大家讨论了T_T
另外"真正要了解人工智能的话
http://www.2nsoft.cn/bbs/read.php?tid=6990&fpage=3"
看过后我认为对方引用的关于幼龄教育的resource是值得参考的,我打算去找一些障碍学习的书:在电脑没有五感(假设伪春菜的短期目标只在于听,说的功能)的情况下,似乎会很接近失明人教育的方式吧?

我对输入-学习-输出的模式是如此理解(暂):
输入----><分析>------------>Memory Reconstruct(1)-----------><思考"output*(在别处解释)>---
                 |-语句结构                 |-记忆新信息:单词,含义,等(未定)
                 |-关键字                     |-自动对比/产生:同义词,反义词
                 |-情绪:intention        |_ (是否放入可能和不可能特征?)
                 |_(正确含义的理解)
                       
-------->Output-------->Memory Reconstruct(2)
                                        |-新information和旧data做出联接/联想(review)

(假设无上下句关联)而Memory Reconstruct(1)+(2)=自我学习功能

如果真的如此设定,到时伪春菜可能在你提出关闭时会说:"主人,请再给我三分钟.我需要考虑一些事情....orz"
(添乱中....)   
理论的东西去仁杰那边继续^^;

[ 本帖最後由 utoto 於 2008-5-16 23:03 編輯 ]

TOP

其實我的寫法本來就有類似面向對象(物件導向)的特徵承繼
現在只是在說"是否需要好像填表格般將特徵填下去"
而這種表格本身可以不斷承繼下去~

不過根本的問題是我們要做很多表格, AI也未必懂得填表格, 表格內容也可能會變動
究竟表格有沒有用真的要好好研究(死)


而且老實說, winsock的例子有個邏輯錯誤, 因為水果絕對不是屬於球類
水果有球狀的特性, 但只是其部分特徵(has a characteristic), 不是本質上是一種東西, 故不能包含在球類之中
就像"蘋果是植物"中[蘋果]可承繼[植物]的特徵(eg:生物......)
但"蘋果是紅色的"不能導出"蘋果是屬於紅色"這結果
[蘋果]不能承繼[紅色]的特徵(eg:顏色......)

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



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

TOP

也对哦,实用性,适用性为上才是语言的最基本要求.
对我来说下一步还是偏重特征的研究.

TOP

如果,我們只是先建立幾個基礎類別,然後以此衍生出所有的東西呢?
也就是例如我們最初只建立1.名詞、2.形容詞、3.動詞、4.副詞、5.連接詞
這幾個泛用的類,然後讓AI把學習到的知識對號入座,從這些基本類承繼到新類別呢?

例如:名詞
-----------------------------------
1. Inheritance(某程度來說,這是跟其他名詞之間的關係)
- 承繼自哪個類別?        e.g. 實體→物件→食物→素食→水果→木瓜
                實體→人物→孫文
                抽象→物理→火
- 集合?                像「水果」是一個集合,集合以下可以有子類別。
- 唯一性?                是不是Unique的存在?(e.g. 你也叫孫文?那你跟國父是同一人嗎?)
- Alias                (遇上相同名稱(主要是人名)時,以此欄分辨)

2. Method(跟其他動詞之間的關係,這件東西可以用來做甚麼/怎樣用之類)
- 動詞
- 及物動詞

3. Properties(跟形容詞之間的關係)
- 外在特徵                [陣列]形狀,觸感,顏色,其他
- 內部特徵                [陣列]形狀,觸感,顏色,結構,(味道...詢如此類)
- 構成成分/物料
- 個別好惡參數(有點像仁傑兄的「好人/壞人/普通人」一般分類,也可以加入模擬人格對該物件的「個人」好惡指數e.g. 討厭「魚」)
-----------------------------------


特徵部分傾向採用陣列方式儲存資料,而陣列的頭幾個元素(例如1-5吧)我們把它們定義成一些所有物件也必然擁有的某些特性欄位,以便於搜尋。
這樣可以解決類別多樣化的問題嗎?

P.S. 同義/反義是否也可以放到形容詞的屬性陣列裡? ^_^

TOP



當前時區 GMT+8, 現在時間是 2023-10-3 18:03

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

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