製作一個能夠自動和人一起玩泡泡堂遊戲的軟件

製作一個能夠自動和人一起玩泡泡堂遊戲的軟件 1.允許軟件犯錯,因爲人也會犯錯,這樣,設計起來才容易 2.必須有學習功能,就是玩過一段時間後,明顯感覺到技能提高 3.對於印象程度深的事件,綜合出能夠遵照執行的規則 印象程度:玩遊戲過程中所發生的某一件事情,由於其發生的狀況很特殊,比如我竟然被自己下的泡泡所殺死,使得這件事情給人的印象很深刻.什麼叫特殊?就是需要和人腦中已存在的事件進行比較,只有從未經歷過或者很少經歷過,用專業術語來說,就是在已有的知識庫中搜索到的這件事情的發生概率很低.這需要將沒發生的一件事情進行概率統計.同樣需要將所發生的事情進行相似性分析.具體步驟如下: 1) 當發生一件事情時,抽取其特徵 2) 將其特徵與已有的事件知識庫進行相似性分析 3) 將這件事情進行分類,並進行概率統計 4) 若這件事情所屬類別的概率高,就馬上根據事件,綜合處規則,結合對該事件的熟練度,並賦予一定的的優先級 5) 若概率不高,則屬於新的知識,需要重視, 難點 抽取事件的特徵 ---------->自然語言理解,"主語-謂語-賓語"的模式 將事件進行相似性分析----------> 提取事件的規則 根據規則確定執行方案攻克難點的途徑:仿照人腦的思維模式人腦 1)抽取特徵:人對於兩個事件是否相似,是根據事件的動作,也就是動詞和動詞的對象來判斷.如我買了一斤豬肉,我買了一隻雞.這兩件事情涉及到的經驗可能有些類似,但又有些不同.爲什麼類似呢?因爲同是買.爲什麼不同呢?因爲一個買豬肉,一個買雞.這樣,抽取事件的特徵涉及到怎樣來建立事件的模型的問題了.一個可行的方案就是採用人類自然語言"主語-謂語-賓語"的模式.根據謂語動詞來進行大類分析.這個過程需要中文系的朋友幫忙分析.這個難題涉及到自然語言理解.一件事情,可能是一系列的動作,究竟是那些動作呢?也不能把所發生的所有動作都放到該事件中.這就需要對所有的動作進行原因邏輯分析.前面提到的主謂賓模式則必須加上條件,即動作發生所需要的條件.比如我被一個泡泡殺死,那爲什麼被殺死呢?因爲周圍都是泡泡.動作的條件構成前驅,動作的結果構成後繼,這樣就能夠很好的將所有動作聯繫到一起,形成事件鏈.人腦思維也是這個樣子的.如果我丟了鑰匙,我就會順着時間線,往過去一步一步的搜索所有發生的動作,想到我昨天只去過圖書館,那個時候鑰匙還在.這樣,原因就不知是動作的一個前驅了.包括動作發生的場所.綜上,前驅包含三一因素:空間相關因素,時間相關因素,作用對象(上一個動作的賓語就是這個動作的主語).首先說空間相關因素,當我掉了鑰匙,我會想我去過哪些地方.當我在一個地方沒找到,我會擴大範圍繼續搜索.這說明空間因素上有一個優先級別的問題,空間與動作(丟鑰匙)越近的地方,優先級越高.對於時間因素也一樣.可問題是我不知道在哪兒丟的.怎麼確定丟鑰匙的空間?根據時間由優先級別高的向優先級別低的搜索,由於每個時間必與空間相聯繫,故在每個時間點根據空間由優先級別高的向低的搜索,這就像程序中的雙重循環一樣.而作用對象因素,則是遍尋所有記憶,使用特徵詞(作用對象鑰匙)搜索,搜索方向也是根據時間優先級別進行.構造一個平面直角座標系,橫座標指示時間軸,方向由左至右,縱座標指示空間,距離越大表示空間距離越大.座標系中每一個點表示一個動作,兩個動作若構成動作練,就連起來.這樣,事件在這個座標系中就表示爲一條由左至右的曲線(時空連續體現爲曲線連續).當要分析事件鏈時,就順着曲線,沿時間軸左右,並在縱軸一定的距離內的曲線帶中分析. 有時候,也有這樣的事情:我丟了鑰匙,但我清清楚楚記得昨天晚上我還在寢室裏見過.這表示什麼?表示上述曲線的搜索有了一個明確的範圍,時間範圍爲昨天晚上至今,空間爲昨天晚上至今所有動作的發生地點以及其周邊地區.,用數學上的角度就是時間軸上有上下限.怎麼樣識別這個用自然語言表示的範圍?關鍵是這個動作(鑰匙在)與鑰匙丟了相矛盾.這樣問題就清楚了:沿着時間軸反向搜索,與但前動詞矛盾的動作時間點,即當前動作發生的邊緣條件. 這裏又引出一個難點.怎麼解決關於矛盾的問題.可行的幾個方案是:1. 整編人類自然語言,使其定義符合邏輯.這條很理想,很不現實. 2. 模仿現代程序結構,彙編一些詞彙庫,就像C語言運行庫一樣,當需要引用時,就include進來.(以後的程序,功能更爲強大,搜索功能更爲完備,不用include語句,彙編器會自動尋找)3. 程序員本身將用到的幾個詞彙的關係事先聲明一下. 方案2將這些詞彙的關係聲明在一個公共的庫中,方案3則自己準備.個人覺得方案2和方案3要結合起來.因爲庫不可能在建立之初就很完備. 那詞彙之間到底有什麼樣的關係?相近,相反,這個我暫時不是很清楚,最起碼沒語言學的專業人士清楚.解決方案:1.結識一些語言學方面的朋友;2.閱讀語言學方面的論文. 人工智能和自然語言理解走的很近,自己若是不掌握,就進不了智能的大門.朋友也很重要. 中文語法分析關於主謂賓模式:這裏只涉及到陳述語句,關於語氣的方面,難,暫且不提. 一句人類的自然語言,怎樣才能提取出程序能夠理解的語言呢?第一步,語法分析,就是找出主謂賓,以及時空因素.最難的就是動詞.倘若在庫中搜索不到動詞怎麼辦?只能靠程序員自行指定,且彙編器能夠記錄這項指定,自動入庫,下次無需指定.對於語法分析,不能完全按照中文語法進行分析.如"我拿刀殺了我的情敵".主語爲我,謂語爲殺,賓語爲情敵,拿刀只是條件."了"表時間,"我要拿刀殺了我的情敵",中的要體現意志. 還未完成,待續 2008/05/10-06:46
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章