神秘的文字(2008)
出自KMU Wiki
2008 年 5 月 1 日「閱讀心理學」分組討論摘要。
目錄 |
第一組
成員列表
kmu web2.0 id : zzadjin, stramonium, norlan
討論摘要
1.我們嘗試使用的各種演算法:最短單詞辨識法、最短單詞辨識法〈改良法〉
2.各種演算法的正確性:最高 30%、最低 50%
3.各種演算法如何解決同一段字母有兩種或以上分法的情況:無法解決
4.各種演算法可能會判斷錯誤的情況:見下面敘述
5.我們最後所發現最好的解法:最短單詞辨識法〈改良法〉
6.其他你們在模擬過程中發現的、認為應該記錄下來的訊息:見下面敘述
最短單詞辨識法
我們已經擁有阿發文的辭典可以辨認阿發文的詞,但卻無法了解阿發文的意義。為了辨認出一篇阿發文的文章,我們必須要從找出詞開始。比如說 soshewasconsideringinherownmind 這樣的一連串字母所呈現出來的長句。
人腦認知歷程:
1. 首先我們會從第一個字母開始算二十個字母來找尋裡頭最短有意義的單詞,一旦找不出有意義的詞則從第二個字母開始一樣是二十個字母,以此類推直到找到有意義的單詞為止。如此例子是從字母s開始,我們可以從字典裡 s 開頭在此長句中最短有意義的詞為 so。一但辨認出 so 之後便結束第一次的搜尋。下次的開始為 s,這次開始便是 s→sh→she,因為 she 為詞典中為最短有意義的詞。
2. 因為我們是考慮最短有意義的詞,當辨認出 consider之後,下次開始的單字為i,因為從 i 開始往後推算在詞典中並沒有找到有意義的詞彙,以此推算會發現 ing 此三個字母並無法找到有意義的詞,直到在 ing 之後的 i 開始會出現 in 此有意義的短詞,因此 ing 便會被我們給省略。而上面那長句則會被我們辨識成為如下的樣子:so/she/was/consider(ing)/in/her/own/mind 運用最短字詞辨識的方法會遺漏掉許多的字母,針對了解通盤文章的意義解釋會有極大的誤差,估計正確率大約不會超過百分之三十。
最短單詞辨識法〈改良法〉
因為使用最短單詞辨識會有大量的遺漏字母,對於文章的了解幫助並不大,為了改善遺漏的字母我們針對一開始的辨識法有些許的改善法。再以butyoumightcatchabat當作例子。
人腦認知歷程:
同樣的我們使用上面提過的方式來辨認,會變成以下的情形:but/you/might/cat(ch)/a/bat。改良方式:我們把遺漏的字母先往前與前面的詞結合,看能不能成為一個新詞,如果不行再向後尋找。如果真的都沒辦法與前後的詞相結合,則只能當作是獨立出來的無意義的字母群。所
以我們再回來看butyoumightcatchabat這個長句,我們可以看到cat之後的ch在最短單詞辨識法裡ch會被遺漏,如果使用改善的方式我們則可發現ch往前可以與cat合併成為有意義的詞,會變成catch此有意義的詞。
則新的長句會變成如下:but/you/might/catch/a/bat。
再來看一個句子 andfortunatelywasjustintimetoseeitpopdownalargerabbitholeunderhthedge
改良前:and/for(tunately)/was/just/in/time/to/see/it/pop/down/a/large/rabbit/hole/under/the/edge
改良後:and/fortunate(ly)/was/just/in/time/to/see/it/pop/down/a/large/rabbit/hole/under/the/edge
從這裡我們可以看到即使運用了改良法還是會有遺漏的情形出現,因為我們是以最短有意義的詞為基準,所以事實上應該是fortunately 才是符合原意的詞我們並無法辨認出來。而另一個更重要的問題是我們無法解決一個詞是由兩個詞所組成的情況。比如說 together 這個詞如果出現在文章中,依我們的方法我們會辨認為 to/get/her,而不是 together 這整個詞的意義。
電腦程式程序:
(1) 先設定最短字串長度為 20 個字元,先將第一個暫存的 20 個字母當作第一階段的處理內容。
例如:以附件中第五大段中,therabbitholewentstr 會成為第一階段的處理內容。
(2) 第一階段中從第一個字元由左至右逐一增加與資料庫(詞典)比對,比對出最短(最簡單)單詞即停止此階段作業。
例如:在 therabbitholewentstr 中,從 t 由左至右逐一增加比對可先找到最短單詞為 the,至此即停止第二階段作業。
(3) 當第二階段處理完畢後,將扣除以比對出的最短單詞字元,並從其後重新搜尋 20 個字元作為第三階段的處理內容。
例如:在 therabbitholewentstr 中,the 已經在第二階段被成功處理過即扣除這三個字元,從 r 往後暫存尚未處理的 20 個字元作為新的處理內容,即 rabbitholewentstraig。
(4) 重複 (1) 至 (3) 的處理程序直到所有同一段落中字元均處理完畢。
(5) 在新的段落中重複 (1) 至 (4) 的處理程序直到文章所有段落中字元均處理完畢。
特殊的處理設定:
1. 不區分大小寫。
2. 段落處理的部分將段落中所有文字視為一個最大長度字串,不以紙本上所呈現的行列方式作為一個段落處理。
例如:以附件中第七段而言,將 wellthought .... boutit 視為一完整的段落,從中進行上述 (1) 至 (3) 的處理。
3.處理過程中遭遇特殊標點符號例如引號或者括號第一個符號時,將其所包含字元獨立進行 (1) 至 (3) 處理直到所包含的字元均處理完畢。
例一:以附件中第六段而言,段落後段會遇到 'ORANGEMARMALADE',則將引號中所包含的字元獨立處理。
例二:以附件中第七段而言,一開始就有一個引號開頭,則自動往後搜尋引號的結尾,將其中包含的 well 四個字元另外暫存並獨立處理。
4.在 (1) 的處理中遭遇字句段落符號如逗號、頓號、句號、分號等,即使搜尋未滿足最短字串長度,停止向後繼續搜尋增加至 20 個字元。
5. 如果遇到在字串中逐字無法辨識出任一單詞的狀況,則自動將該字串中第一字元移除,並補進新的一個字元補足 20 個字元,以此類推。
例如:在最短單詞辨識法〈改良法〉中遇到的狀況。
問題討論:
1. 在特殊處理的第二部分中,會遇到英文中出現 you are 縮寫成 you're 的狀況,以此法處理會出現 error 或者無法繼續判斷的情況,目前想到的一個解法是忽略引號的處理。
第二組
成員列表
鄭立順、劉純瑜、陳維倫、廖奕翔 、何恭年
討論摘要
我們有三種分詞的方法,分別為「找最短詞法」、「找最長詞法」、「類字典法」,以下分述之。
(一)找最短詞法
我們先假設「阿發文」字典本身是一本記錄了所有阿發文的字詞,也依照阿發文字母的順序先後排好,就像是英文字典一樣,A後面排列的是B,接著是C,直到Z。以presentlyshebeganagain.”Iwonderifishallfallrightthroughtheearth!為例說明:
1. 以每一段第一句的第一個字母開始查詢「阿發文」字典,以上面的文字為例,首先先查第一個字母”p”,在字典中p並不是一個字詞,因此加上第二個字母r,查詢”pr”, 而”pr”也不是一個字詞,所以再加上第三個字母”e” 查詢”pre”。依照這樣的規則,直到可以在字典找到相同的字詞,當查詢”present”時,可以在字典中找到這個字詞,因此字串就在這裡分開,下一個字詞以"l"為字首。
2. 以"l"為字首,重覆基本的查詢方式,當我們增加字母到"lys"時,我們會發現"lys"後面可以加上其他字母,成為一個字詞。但是以"lysh"去查詢時便找不到這個字詞,此外字典裡的字詞是依照字母順序排列,因此不論"lysh"後面加上任何一個字詞,我們都無法在字典找到。所以我們便不再依照字串的順序找下去。我們改以回到在”present”後面加上"l"來查詢字典。查詢”presentl”時,可以知道它也不是一個字詞,因此再加上”y”來查詢,在字典裡可以找到”presently”,因此就在這裡將字串分開。下一個字詞以”s”開始。
3. 依照同樣的方式可以找到接下來的字詞是”she/be/gan/a/gain”。
4. 所以這一句就是presently she be gan a gain.
5. 但這裡會遇到問題,遇到的問題是如果我們以最短的詞下去做分詞的動作會有一些詞、字被我們拆開成短字詞連接再一起這會與原本詞所代表的意思 不同,例如上一句,我們就會把Began看成be / gan 就失去原來的意義。
6. 因此,我們使用的這個方法分詞,之後要了解詞義或是整段句子正確率可能不會太高。預估大約只會有三成左右
(二)找最長詞法
以presentlyshebeganagain. iwonderifishallrightthroughtheearth! 為例說明:
1. 以第一個字母開始查詢,當查到present會成詞,但我們仍繼續查詢,然後會發現presently也成詞。這時候依然繼續查,因為字典是按照順序排列,因此找不到presentlys這個詞,所以我們找到的最長的詞就是presently。
2. 接下來從s開始查,最長的詞是she,因為sheb不成詞,再往下查也查不到更長的詞了(假設字典有按照字母順序排列),所以我們可以說she是最長的詞。依照此規則,此句會變成:presently ahe began again.
(三)類字典法
第三組
成員列表
Yansyun, Meiermei, Hsin, Iching
討論摘要
eitherthewellwasverydeep, orshefellveryslowly, forshehadplentyoftimesasshewentdowntolookabouttherandtowonderwhatwasgoingtohappennext.
我們的演算方式是從每一段字首開始查詞典,尋找文中以該字首所有的字裡面,符合詞典裡最多字母的,即為一個單字。如上段我們隨意找出來,打上去的一句句子,字首是e,我們就會翻完所有e開頭的單字,然後發現在文中,either是e為字首的字裡面,符合字典裡單字最長的詞。
這樣的演算方式在解決同一段字母有兩種或以上分法的情況的方法是,採取最大字串策略,也就是說,我們會選擇較多字母所構成的為單字。可能會判斷錯誤的情況就像是一段字母如:together,我們會解讀為together,而不是to get her;上段文字的第三行,依照我們的策略會翻成for she had plenty of times ass he went down to look about the rand to wonder what was going to happen next.
這種演算法的正確性我們認為有相當高的程度,因為錯誤的發生機會在於前後單字可以完全或部分合併為一個單字。若是單字因文法關係而變形,則不在考慮範圍內,因為詞典所提供的單字為原形,因此我們認為正確性相當高。
第四組
成員列表
陳慶民、陳怡柔、李奇勳、莊佩伊
討論摘要
在查詢一個字之前,我們先要求使用者輸入整個單字的字母數,將整個單字分為短詞(1~3個字母)、中詞(4~9個字母)和長詞(10個字母以上),再使用類似電子辭典的方式,依照字母排列順序逐步查出單字。
例如 therewasnothingsoveryremarkableinthat,先用長詞判斷,則超過10字母以上沒有單字。故可判斷需用短詞或中詞。在用短詞的狀況下,則會區分出the這個詞,但後面的rewasnothingsoveryremarkableinthat則不論用短詞、中詞或長詞都無法判斷出新的單字,故應採用中詞來判斷,則可區分出there這個詞。再來句子變成wasnothingsoveryremarkableinthat,再一次判斷是短詞、中詞或長詞,則可辨識出was這個詞,依此方法逐步辨識整個句子。估計此可辨識出約80%~90%的詞。