人造交談語言 (使用有BNF的口語透過機器翻譯和外國人溝通)

99
人造交談語言 ( 使用有 BNF 的口語透過機器翻譯和外國人溝通 ) 陳鍾誠 2017 年 3 月 11 日 程式人《十分鐘小論文》 程式人《十分鐘小論文》 本文衍生自維基百科
  • Upload

    -
  • Category

    Education

  • view

    1.614
  • download

    0

Transcript of 人造交談語言 (使用有BNF的口語透過機器翻譯和外國人溝通)

Page 1: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

人造交談語言

( 使用有 BNF 的口語透過機器翻譯和外國人溝通 )

陳鍾誠

2017 年 3月 11 日

程式人《十分鐘小論文》程式人《十分鐘小論文》

本文衍生自維基百科

Page 2: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

最近

●人工智慧 AI這個研究領域又開始

受到強烈關注!

Page 3: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我記得上次 AI受到強烈關注

●大約是 20年前的事情!

Page 4: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

上上次

●則是 20+20 年前的事情

Page 5: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

人工智慧領域

●似乎每 20年就會走紅一次 …

Page 6: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

而人工智慧領域裏

● 最難攻克的關卡,目前看來很可能是

《自然語言》

● 像是《機器翻譯》之類的問題。

Page 7: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

雖然 Siri 這類的交談程式

●已經可以抓住一些人類語言的意義

Page 8: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

甚至

●IBM 的 Watson 曾經在 Jeopardy 這

個益智節目裏擊敗頂尖的人類對手

IBM's Watson Supercomputer Destroys Humans in Jeopardy | Engadgethttps://www.youtube.com/watch?v=WFR3lOm_xhE

Page 9: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

但是

●我們目前仍然看到《機器翻譯》系

統,在翻譯文章時通常很糟糕!

Page 10: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我們還很難

● 透過機器翻譯和外國人順利的交談。

Page 11: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

特別是

●像中文和英文這樣差異頗大的語言

●目前的機器就是很難翻譯得夠好

Page 12: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

莫非

●這代表了我們非得要學英文

才能和英美人士交談嗎?

Page 13: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

難道我們

●不能透過電腦的輔助,讓自己在不

懂對方語言的情況下,和外國人自

在的聊天嗎?

Page 14: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

雖然

●電腦還無法翻譯得很好

但是人腦可是理解高手啊?

Page 15: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

人類的弱點

●是很難記住大量單字

Page 16: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

所以

●我們從國中小就開始背單字

Page 17: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

連續背了幾十年

●單字量常常還是不超過一萬

Page 18: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

但是背單字對電腦來說

●完全不是問題 ...

Page 19: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

要把一本字典讓電腦記住

●只需要不到一秒

複製進去就行了!

Page 20: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

而且

●只要硬碟沒壞,電腦就不會忘掉!

Page 21: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

透過這樣的想法

●人類應該可以和電腦攜手合作。

Page 22: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

由電腦來背單字

●由人來理解,這樣就行了!

Page 23: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

但是目前機器翻譯的作法

● 通常是全部交給電腦去做

● 希望電腦能夠給出正確翻譯

● 人只要閱讀翻譯結果就好了!

Page 24: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

問題是

●電腦常常無法給出很好的翻譯

●甚至會給出非常誤導的翻譯結果

Page 25: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

讓我們看幾個例子

●就以 Google 翻譯為範本好了!

Page 26: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

第一個例子是小學課本內容

Page 27: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

您可以看到

●Google其實翻得還可以

●但是有些明顯的錯誤!

Page 28: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

錯誤的區域如下

Page 29: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

如果讓 Google 翻譯北風與太陽

Page 30: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

相信您會覺得還是很難懂

Page 31: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

為了解決這個問題

●我做了一些嘗試!

Page 32: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

第一個嘗試是

●只進行逐字翻譯,不改變字詞順

序,而且可以透過網頁的 ruby tag

上下對齊。

Page 33: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

以下是該系統翻譯北風與太陽的結果

https://mdbookspace.com/mt/mt.html

Page 34: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

您會注意到

●我們保留了很

多詞沒翻譯

( 通常是介系詞或

難以翻譯的詞 )

Page 35: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

而且也有很多翻錯的情況

Page 36: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

如果要翻得更好

●應該要有更好的字典

●而且要能從多個候選字中選取最好

的一個!

Page 37: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

不過這種英漢逐字對照的方法

●可以不考慮語句結構調整的問題

因為調整後就無法《逐字對照》了!

Page 38: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

從這種

●不改變詞彙結構的翻譯方式出發

我們還能做些甚麼呢?

Page 39: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我想到

●人類雖然記不住單字

●但是卻可以學會程式語法

程式語言具有明確嚴格的 BNF 語法

Page 40: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

那麼

● 我們能不能設計一種 BNF 語法

● 不是用來描述程式語言

● 而是描述《用來說的口語》呢?

Page 41: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

如果這種口語的 BNF 很簡單

●簡單到我們可以在幾分鐘之內學會

●那麼借助機器的逐字翻譯,我們有可

能在學會語法後和外國人溝通嗎?

Page 42: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

於是

●我開始設計這樣的語法

Page 43: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

並且努力的簡化語法

Page 44: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

最後我發現

●似乎可以用很簡單的規則

●就設計出一套《口語 BNF 》

Page 45: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

規則有多簡單呢?

Page 46: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

出乎意料的

●我發現似乎只需要三條規則

Page 47: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

這三條規則如下

● S = Q? NP* VP* .

● VP = VP (c VP)*

| (v* V+ v*)+ NP*

● NP = NP (c NP)*

| (n* N+)

句子 = 疑問詞 ? 名詞短語 * 動詞短語 * 句尾號

動詞短語 = 動詞短語 ( 連接詞 動詞短語 )*

| ( 動詞修飾 * 動詞 + 動詞修飾 *)+ 名詞短語 *

名詞短語 = 名詞短語 ( 連接詞 名詞短語 )*

| ( 名詞修飾 * 名詞 +)

Page 48: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

如果改成對照寫法或許會更清楚

● S = Q? NP* VP* .

● VP = VP (c VP)* | (v* V+ v*)+ NP*

● NP = NP (c NP)* | (n* N+)

句子 = 疑問詞 ? 名詞短語 * 動詞短語 * 句尾號

動詞短語 = 動詞短語 ( 連接詞 動詞短語 )* | ( 動詞修飾 * 動詞 + 動詞修飾 *)+ 名詞短語 *

名詞短語 = 名詞短語 ( 連接詞 名詞短語 )* | ( 名詞修飾 * 名詞 +)

Page 49: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

然後、我根據這些規則寫了一個有 BNF 的翻譯程式,只有 130 行

程式位於: https://mdbookspace.com/view/ai/mtBnfSpoken.md

Page 50: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

其語法剖析器程式碼如下

Page 51: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

該程式可以進行語法驗證和翻譯動作

Page 52: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

但是

●語句有時必須要調整一下

才能符合那三條 BNF 語法

S = Q? NP* VP* .

VP = VP (c VP)* | (v* V+ v*)+ NP*

NP = NP (c NP)* | (n* N+)

Page 53: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

例如

● 天這麼黑,風這麼大,爸爸捕魚去,為甚麼還不回家?

● 黑黑的天,大大的風,爸爸去捕魚,為甚麼還不回家?

Page 54: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

為甚麼要這樣調整呢?

● 天這麼黑,風這麼大,爸爸捕魚去,為甚麼還不回家?

● 黑黑的天,大大的風,爸爸去捕魚,為甚麼還不回家?

Page 55: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

那是因為要符合 BNF 語法

● 天這麼黑,風這麼大,爸爸捕魚去,為甚麼還不回家?

● 黑黑的天,大大的風,爸爸去捕魚,為甚麼還不回家?

NP NP NP VP VP

S S S S

n n n N n n n N N V V N Q v v V N

Page 56: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

然後我們就可以得到下列的翻譯結果

Page 57: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

當然也可以檢驗翻譯其他語句

Page 58: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

或許也可以試試古文

Page 59: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

這樣

● 我們就發明了一個具有 BNF 的口語

● 而且這種口語應該很容易檢驗與翻譯

Page 60: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

只是我們不知道

● 是否人類想表達的語句

●都可以改寫成符合這三條語法的句子

Page 61: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我們也不知道

● 人們是否會想用這種人造口語和外國人溝通!

Page 62: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

還有外國人

● 是否能在簡易的訓練之後看懂翻譯!

Page 63: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

但是我們知道

●電腦要翻譯這種有 BNF 的口語

●會比翻譯自然語言容易得多

●而且語意也會更精確!

Page 64: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

如果能編一本

●每個英文詞都只對應一個

漢語詞彙的雙語詞典

Page 65: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

那麼

●整個語言就會變得非常精確

●不會再有任何歧義!

Page 66: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

但這會是一個工程

Page 67: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我想把這樣的技術商品化

Page 68: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

並且設計出

●讓人可以不需要背單字,就

可以和外國人溝通的軟體

Page 69: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

如果您有興趣

●把這樣的技術商品化!

Page 70: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

請您跟我聯絡!

Page 71: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我是陳鍾誠

●我在金門大學資訊工程系教書

Page 72: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我的聯絡方式為

● Email: [email protected]

● Facebook: https://www.facebook.com/ccckmit

● 手機號碼: 0988068390

( 國際碼 :886-988068390)

Page 73: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

由於我是大學老師

●我不能開公司,

不能當董監事,

不能做生意!

Page 74: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

但是

●我還是希望能完成這件商品!

Page 75: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

這除了需要程式

●還需要一些人工 (編字典等等 )

●以及有能力進行商品化

的公司參與!

Page 76: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

歡迎您

●和我一起來完成這樣一個翻譯軟體

●並且一起經營讓人們可以不需要學

外語就能相互溝通的社群。

Page 77: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我相信

●科技始終來自於惰性 ...

Page 78: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

有了這樣的工具

Page 79: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

或許

●在未來的某一天

Page 80: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我們就可以

Page 81: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

不需要再學英文

Page 82: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

也能和外國人溝通了

Page 83: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

只要

Page 84: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我們記住

Page 85: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

下列的三條語法

S = Q? NP* VP* .

VP = VP (c VP)* | (v* V+ v*)+ NP*

NP = NP (c NP)* | (n* N+)

Page 86: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

然後

Page 87: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

剩下的

Page 88: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

就交給機器了!

Page 89: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

希望

Page 90: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

那一天

Page 91: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

能趕快到來!

Page 92: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

讓我們一起攜手

Page 93: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

創造一個翻譯工具

Page 94: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

讓那一天早點到來吧!

Page 95: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

這就是我們今天的

Page 96: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

十分鐘小論文

Page 97: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

希望您會喜歡!

Page 98: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

我們下回見!

Page 99: 人造交談語言  (使用有BNF的口語透過機器翻譯和外國人溝通)

Bye Bye!