strong:
.............
我感覺大部分的創新不是刻意去想出來的
而是不經意之間突然冒出來的
stealth:
不對。需求是自然感覺到的,解決方案卻是刻意去推導出來的(我這裡的推導指的是類比和對比)。
需求是自然感覺到的:比如我們總體上感覺到外語寫作是一個目前解決方案還不能很好解決的需要,漢字輸入也是。
我們總是假定一個需求存在一個更好的解決方案(就象我們在 oi 比賽的時候總是先假定這道題我會做),然後我們刻意運用某些策略去類比這道題和我們已經會做的題目模型。
運用類比:編程環境能在我們輸入一個函數名以後立即提示這個函數的參數表,那麼自然語言寫作環境是否也可以?(類比的前提:編程語言和自然語言有共同的一般類:“語言”)
運用對比:已有的外語寫作系統都關注“寫後糾正”,那麼能否研究一下“寫前引導”,防患於未然?Correction 和 Prevention 無論是從司法還是從一般角度都是一對有對比關係的概念(Correction 的一個意思就是監獄之類的改造系統)。再比如,已知用戶當前要寫關於什麼主題,除了提示這個主題內的典型結構元素(對象,如教學活動這個主題里,老師,學生,課本,教具都是典型對象;關係:如教,學,問,答),能否從功用的角度提示些什麼?比如“上課”這個過程的來龍去脈如何描寫?“考試”呢?“作業的布置、完成和批改”這個過程又如何描寫?其中會有什麼變數,比如“抄襲”?結構元素是告訴你一個世界裡有些什麼,而面向任務的提示可以告訴你如果要完成一個特定的寫作任務(比如描寫一次考試)應該怎麼具體寫。事實上,“結構”和“功能”就是認識一個事物或一個世界時有對比關係的兩個概念(有對比關係的概念不一定是兩個,可以是多個,比如“長度,寬度,高度”)。我們看 MSDN 里的 SDK 話題,比如 Win32 and COM Development Graphics and Multimedia GDI Windows GDI Bitmaps,都是從結構(Bitmap Reference)和功能(Using Bitmaps)兩個角度來介紹的(其實還有一個角度,就是背景知識介紹,即 About Bitmaps,這一點在外語寫作工具里可以對應為給定主題的 Wikipedia 鏈接)。能否從一個已知概念得到有對比關係的其他概念,就是找到新思路的關鍵。
關於漢字輸入:其實我一年前就注意到,拼音輸入法的所有候選字存在某些字共享一種聲旁這個現象,但是當時我想的辦法是,還是按普通拼音輸入法的樣子(一條候選字行),如果用戶看到一個候選字跟他想要的字有一半相同(即聲旁相同),他可以按某個特殊的鍵,然後系統就把所有具有這個聲旁的候選字篩選出來讓他選。但是這樣感覺還是不好,因為你在第一遍掃描的時候不僅要注意每個字的整體形象,還要注意它的聲旁。後來我研究外語寫作工具的“用戶手工選擇近義詞”的時候,總結出一個分類思想,比如 luck, risk 的共同點就是它們都是一種“機會” (chance),但是 luck 是“遇到好事的機會”,risk 是“遇到壞事的機會”,也就是我們可以把近義詞分類成一棵樹(chance 是 parent node)。然後我用這個分類思想重新想想拼音輸入選字的問題,我就覺得具有共同聲旁的字就是一類,讓他們一開始就顯示成一組不就行了?於是我就想到一開始就應該把所有候選字分成多行顯示,每行對應一個共同聲旁。
再談談需求的選擇。誠然,證明 P!=NP 也是一個需求,發明一個新的排序二叉樹也是一個需求,但我建議選什麼需求去思考呢?就是牽涉到人的,也就是 software + wetware。比如漢字輸入、外語寫作,人都是其中的一個部分,人的認知習性都要考慮在解決方案的設計里(看看為什麼我的拼音選字點子第一次沒有完全成功?)機械算法被研究了幾十年,有需求的都解決了(新的機械算法需求都在自然科學、工程前沿,不是人民群眾的日常需要),所以我建議,如果要搞個“人民群眾天天親手用到的”,那必然是研究漢字輸入、外語寫作、網絡搜索這類知識活動。我不是說過麼,後工業時代的經濟增長點來自知識工人的知識活動,因此應用數學和計算機科學應該為優化此類生產活動服務。
如果說我們為一個自然科學前沿的計算需要(比如某個計算生物學問題)設計了一個機械算法,促成了一個新的科研設備或產品的誕生,給某些跨國大公司帶來了巨大利潤,那麼誠然是件好事,但是就好像一個班上的老師既要照顧最先進的學生也要照顧大多數普通學生,如果我們想提高人民群眾的經濟水平,我們就要研究外語輔助閱讀、輔助寫作這類的生產活動。人民的經濟生產力問題、政治自由問題,都可以是我們可以常常思考的。。