為什麼 Siri 聽懂了我的話,還是不能做出有效的回答或準確的操作?

按說 Siri 已經開發了這麼多年了呀,怎麼會還是這麼弱……
補充一:很多人說是題主的打開方式/提問方式不對。但是這不正是體現人工智慧的地方嗎?是應該讓用戶理解機器還是應該讓機器理解用戶,應該是不言而喻的吧
補充二:有部分同學說不能怪siri,是因為app沒有開放借口。假使 siri 能告訴我:某軟體沒有打開介面,所以預約不了。題主會認為這個答案也是有效的。然鵝實際情況是 siri 「自以為是」地做出了讓我覺得很滑稽的結果。即低於人工,也不智能


Siri其實說白了是兩個子部分構成,一個就是語音識別,另一個就是識別後的自動問答。而自動問答最主要依賴的技術就是自然語言處理(NLP)。自然語言處理說白了就是讓機器跟人一樣讀懂語言,並且依據此生成必要的輸出。樓主說的兩個問題其實都是機器在自然語言理解上出了問題。(當然,針對題主所遇到的第一個情況,更大的可能還是滴滴沒有提供相應介面導致siri壓根就沒理解滴滴打車是個什麼鬼)


自然語言處理所有的困難,歸根結底就是一個問題:二義性(ambiguity)。

這種二義性,體現在語法、句法、語義的各個方面。


舉個最經典的栗子,也是英文NLP算是最常被引用的一個二義性例子:

I saw her duck with a telescope

請大家先努力的讀三遍這個句子,確保明白了它的含義。

然後我們開始講故事。


按照天朝人民的平均英語能力,大多會自然的理解成:

I saw her duck with a telescope

我用望遠鏡看到了她的鴨子

也就是介個樣子:

英語稍微好一點的童鞋,會知道saw還有「鋸」的意思,於是這個句子就變成了類似這樣的意思:

不過,和這個圖不同的地方在於,鋸鴨子用的不是鋸子,而是一把望遠鏡。

I saw her duck with a telescope

我用望遠鏡鋸她的鴨子。

到這裡內心已經能感受到一絲絲凌亂和猙獰。

想像力再豐富一點的童鞋,可能還會暢想一種偉大的場景同樣也符合這個句子的描述。那就是這個鴨子是個神鴨子,是個會拿望遠鏡的鴨子。於是就衍生出了NLP界最著名的句法二義性問題pp attachment問題,也就是介詞性短語(with a telescope)到底修飾的是謂語saw還是賓語duck。如果修飾的是duck,那麼上述的兩種情形就會變成:

I saw her duck with a telescope

我看到她的鴨子拿著一個望遠鏡。


以及

I saw her duck with a telescope

我鋸了她的一隻拿著望遠鏡的鴨子。

脊背發涼啊我勒個去

不過這還遠遠沒有完。。。

考過GRE的童鞋會跳出來指出,其實就連duck在這裡都可以還有另一個合理的意思,來來來一起查詞典:

也即是「彎腰」的意思。


這下好,上面已經提到的四種意思,一下子又能各自出現一個變種。其中前兩個還算正常:

I saw her duck with a telescope

我用望遠鏡看到她彎下了腰

I saw her duck with a telescope

我看到她拿著一個望遠鏡彎下了腰


然後就越來越喪心病狂:

I saw her duck with a telescope

我用望遠鏡把她鋸得彎下了腰。

I saw her duck with a telescope

我把拿著望遠鏡的她鋸得彎下了腰。

尼瑪,人家姑娘只不過拿了個望遠鏡,招你惹你了。

各位可以發現,每一個二義性,都會使得句子的可能意義的數量指數級上升。雖然其中大多數意義極少被使用,但對於機器來說,是很難做出有效判斷的。就上述例子而言,我用望遠鏡看到她彎下了腰我用望遠鏡看到了她的鴨子,都是英文文本中非常可能出現的意義。而這種二義性只有通過上下文才能夠消解。而人類是因為擁有一些常識(所謂priori或者common sense),所以能排除掉那些明顯不合理的可能。


同理,如果我們搞的再複雜一點:

I saw her duck with a telescope in the garden.

二義性會指數級的爆炸。因為in the garden可能修飾的是I,可能是her,可能是duck,可能是telescope。最荒謬的意義可能就是:我把拿著花園裡的望遠鏡的她鋸得彎下了腰。


到這裡大家應該可以看到,pp attachment問題是英文二義性問題的重要來源。從NLP的角度來說,很多時候就會導致所謂non-projective dependency的場景(請自行參閱相關論文)。在中文中,由於介詞短語通常都會緊緊的attach在被修飾對象之前,因此這個問題可以說幾乎不存在。所以在中文NLP中,更多的還是詞性和詞義本身的二義性造成的。


比如題主所舉的兩個例子,一個是詞性理解差錯(以為回家是名詞;如果不是沒理解什麼是滴滴打車的話),一個是語義理解差錯(以為計程車是一個日程安排)。在缺乏上下文,只有一個單獨的問題,又缺乏相應使用歷史的時候,這種二義性是極其難以被消解的。


所以大家真的不要為難siri了,她是真的不了解你啊。

最後說說我所從事的醫療NLP。我們天天打交道的,就是大家一直覺得跟天書一樣的病歷:

。。。。

其實,手寫病歷的識別是個計算機視覺問題,並不屬於自然語言處理範疇。醫院的電子化,給我們這些NLP狗帶來了重大利好。終於有美麗整齊的文本可以處理啦:

看到這裡,NLP汪們深深的鬆了一口氣。


可惜,想像和現實總是有差距的。醫生不會因為放下筆頭、拿起電腦,就變成聖人。該NLP買單的,還是得買。


唇稍紺」是什麼鬼?

臂叢+腰硬」是什麼黑科技?


還有離譜的

主訴:尿尿尿不出尿來3天

動不動還能搞出這種:

全身淺表淋巴結未觸及腫大,頭顱無,五官端正


頭都沒了你還治個什麼鬼?


一般而言,病歷NLP是不需要做句法分析的,因為醫生的用語往往都簡單異常,掐頭去尾,用大量的並列短語來簡介的概括一段事實。沒有必要識別什麼主謂賓定狀補。


於是NLP汪們興高采烈:不用做parsing啦!


直到有一天遇到這麼個病歷:


主任冒著漫天大雪,一步一步的走入病房,緊緊的握住病人的雙手,親切的問道:好點了沒?


#教你如何用盡量長的句子表達儘可能少的意思#


NLP汪們也經常會說,病歷語義明確,不需要做共指代消歧義!(共指代消歧義就是說在類似「奧巴馬上了車,他頭很痛」這樣的句子中,識別出「他」指代的對象是奧巴馬)

直到有一天遇到這麼個病歷:

今查房,癥狀同前,體查同前,治療同前

好啦,話歸正題,其實醫學NLP和前面說的普通NLP一樣,最主要要解決的就是二義性問題。比如,呼吸音粗和小腿變粗,雖然都是粗,但是臨床意義是完全不同的。


另一種二義性的反向體現,就是一個意義有無數種表達,比如巴賓斯基症這麼一個體征,我們可愛的醫生們就能寫出五百種寫法:

巴林斯基征、巴氏征、巴賓斯基征、巴賓斯基、babinski征、巴彬斯基征、babinskisign…


#我知道你們忙,但你們能不能稍微認真點。。#


事實上,我們醫學NLP汪,就是想幫中國的醫生們,一方面不用再忍受寫病歷的折磨。你們隨心所欲,我們來收拾爛攤!另一方面,你們寫了這麼多病歷,總要產生點價值吧?有了NLP,你們埋藏在病歷中的知識寶藏(希望不是糟粕。。),就都能被挖出來咯!

P.S. 感謝osu的黃亮老師,I saw her duck這個例子最初就是很多年前從黃老師的PPT里看到的。


題主說Siri「聽懂」了你的話,其實它只是聽清楚了,並沒有聽

這就像讓一個小學生去大學裡聽課,教授講的每個詞都能聽清楚,但卻不明白老師在講什麼一樣。


其實可以結合這個新聞來看Google DeepMind AI比人類專業人士更擅長讀唇語,語音識別和唇語識別都可以說是一個空間轉換的過程,或者說從一個符號到另一個符號的映射(一個文字是一個符號,一片段語音是一個符號,一個嘴唇形狀也是一個符號)。而siri和唇語識別正是量了符號與符號鄰近組合到另外一種符號之間的關係。從近幾年深度學習的發展來看可以說所有空間轉換,如果有足夠的訓練數據,都可以嘗試用深度學習擬合,而且效果都還不錯。而從文字到理解文字或者說領會就不是簡單的空間轉換映射關係了,理解需要演繹推理,因為符號之間有大量複雜的聯繫,所以siri只是知道了你這段聲音對應的文字是什麼而並沒有聽懂你的話。但是有時候siri完成了你的指示,只是因為你話裡面的有些詞比如:鬧鐘、預約、九點這些是關鍵詞,他會強行把這些詞和自身的服務和搜索結果匹配起來嘗試解決你的問題。而強行識別關鍵字詞的回答就容易出錯了。


看了你們的答案,都不對,這個並不是Siri出了問題,
是滴滴APP的問題,題主的叫車方式不對,滴滴沒有做智能模塊和蘋果鏈接而已,Siri懂了,但是滴滴不懂你家在哪,怎麼叫計程車。你最多只能命令Siri打開滴滴APP,卻沒法命令滴滴幫你叫計程車。

滴滴不是蘋果公司的產品,滴滴的內部叫車程序設定蘋果沒辦法弄,蘋果自己開發的通訊錄你就可以命令,比如讓Siri給通訊錄里的某某打電話就可以打,同樣的讓Siri給微信里的某某發消息就發不了,因為是微信沒開發到這個程度,得搞清楚邏輯主體。並不是一切都是智能的。相比之下QQ有開發這塊功能,可以試試命令Siri,1. 打開微信給某某發消息,2. 打開QQ給某某發消息,結果是QQ可以發,微信發不了。這是微信的問題,並不是Siri的問題,同樣的題主的問題是滴滴公司的問題。

當然不能否認你們的答案,Siri的智能語音功能還沒有那麼強大,還有很多技術問題需要解決。


這個不是理解的問題,現在的siri、cortana和google now都沒有真正意義的聽懂的概念。

現在的個人助手實現的思路都比較接近。給定用戶問題,首先識別其意圖,例如是提醒,天氣或者出行;下一步就是問題中具體信息的識別,例如時間、地點、人物;最後就是具體的操作並返回給用戶結果。

例如對於「明天北京天氣如何」,系統會識別出意圖是「詢問天氣」,地址是「北京」,時間是「明天」。這樣從搜索引擎中得到天氣信息並返回給用戶。

具體回答siri的兩個問題:
「用滴滴打車回家」,本來以為是siri不支持打車的第三方應用,看了一下似乎不是這個問題。這個問題不是很難,意圖就是"打車",方式是」滴滴「。個人覺得,還是siri的本地化沒做好,中文模型的性能仍然有限。

」明天早上9:00幫我預約計程車去公司「,這個問題有些難,不屬於siri能完成的任務。從實現上來說,這需要第三方APP(如滴滴)的支持。其intent是"預約計程車",時間是」明天早上酒店「,起始地址是」GPS獲取的地址「,目的地是」公司「。


前面那個小學生去上大學的課程例子挺貼切的,就是Siri用語音識別識別出來了你的語音內容,這部分目前準確率很高了,但是組織回答則是對話系統這個模塊發揮作用。而後者很不成熟。

Siri的終極目標,應該是一個能夠完全理解語言中的信息和邏輯,像真人一樣對話。這個技術就叫對話系統。

目前的對話系統(聊天機器人、問答系統等),也被人們認為最接近「AI」的技術,在研究的範圍上,大致分為兩個:

開放域的對話,不限定話題,你可以隨便說什麼話,系統根據你的輸入自動組織句子來回答;Google 新近發布的Google assistant,做了若干年的Siri,最終的目標應該都是這個。
限定域的問答,即限定知識庫、限定場景下的對話問答,IBM的Watson,目前正在集中精力做醫療方面的問答,已經小有成就。

而實現以上目標的技術,目前公認的是比如基於檢索(類似搜索引擎)和基於神經網路的(大家說的深度學習),這是當前NLP領域的一個熱點。為什麼說是研究呢...當然是因為不成熟了,目前自動的問答能夠達到的效果還是很有限的。完全使用檢索式+神經網路訓練出來的對話機器人,簡直就是個弱智,這不是數據足夠多就能夠堆出來的...

那為什麼Siri看起來又稍微有那麼點使用價值呢?

我們現在說的人工智慧,可以簡單的翻譯為「有多少人工,就有多少智能」。
沒錯,Siri這種已經商用的產品雖然可能已經應用了目前對話系統里最前沿的技術,但真正決定使用體驗的,仍然是人工的多少
Siri的研發團隊在Siri的研發中,一定人工制定了大量的規則來保持Siri的可用性,我們說「定個明天3點的鬧鐘」,那麼工程師一定針對這個場景手工編寫了句式規則或者使用機器學習演算法為它訓練了一個分類器。這裡雖然用到了「機器學習演算法」,但並不意味著他就是「智能」,因為這個場景的產生仍然是需要人工來進行干預的,如果產品經理想不到這個場景句式,那麼這個功能就不會存在,所以本質上它依然是「人工」。

所以為什麼Siri不能準確識別「回家」,「預約計程車」。

答案就很簡單了: (蘋果或者滴滴的)產品經理沒做這個的功能。
iOS 10蘋果開放了SiriKit的API,所以這個句式不能識別,即可能是蘋果的鍋,也有可能是滴滴的鍋。

好了,有人用「打車回家」成功了。更正。是姿勢不對,不能怪人家針對這個場景設定規則。


為什麼就是不承認自己說錯了呢?

還有如果我沒記錯的話……OK GOOGLE好像已經可以了
華為那啥破助手也可以了

為什麼就是不承認ios不行呢?

有人說無法證明?那我補多幾張圖


實名打臉以上回答

你只要說用嘀嘀打車去XXX就可以了,簡單易行至於你想讓Siri明白你的家在哪裡,關鍵點似乎並不取決於嘀嘀app里你有沒有設置家庭住址,推測第三方打車app的siri介面中獲取地址這一部分是有系統完成推送給app的,所以你應該在自己的通訊錄名片中設置好家庭住址即可


實名反對以上所有回答
是你問的不對
(逃


我還能說什麼╮(╯▽╰)╭

他怎麼知道我是貓,感覺暴露了。


想起了以前弟弟和siri吵架的時候,也是沒誰了


年輕人去找大師,大師說了一些道理,年輕人沒聽完,急忙說(行行行,道理我都懂,我只想知道怎麼做)。大師說,(你只是知道,你不懂。)
嗯,大概這樣吧,安卓黨路過


只是名字喊錯了


語義理解比語音識別難多了


看到張少典的回答,想起了這個圖

I saw her pussy with a telescope.

你這麼說的時候Siri是不是應該報個警。


別說siri,很多人都不能做出有效的回答或準確的操作。


Siri不弱。
個人看來成功地音頻轉文字後,Siri的任務基本就完成了。識別完畢後,剩下的就是操作層面了。這取決於程序員是否:
1.給它賦予相應功能
2.給它賦予相應許可權
我不是程序員,只敢猜測。個人認為這兩點還是比較容易實現的,只要程序員願意

顯然設計者根本就沒有給它這個功能和許可權。

它只能幫你打開某App,到此為止了(API未開放,就好像以前不能裝第三方輸入法)如果你要讓它打開某app後繼續操作它,這需要擁有佔用後台,觸發器,剪切板等許可權。

對於你的第二個命令,很遺憾它有的許可權只能被喚醒的時候撥出電話,到此為止了。即使是安卓,定時撥打電話這種自動化操作也要藉助第三方軟體,比如IFTTT有可能幫你實現。只是有可能。

這種局限,一定程度上是iOS封閉的系統環境決定的。同時你給的要求看似簡單,但其實背後邏輯複雜


有時候真的不知道Siri到底為什麼這麼蠢……

已經不是語言含糊不清無法理解的問題了

是最基本的理解能力不足了


你的命令有問題,


從界面上看 Siri只是識別出了你所說的內容,不是聽懂了你的話。目前的語音助手只能通過識別出的對話 中提取相關的關鍵字 根據句式做固定項目的解析。比如說你的例子,在句中識別到了關鍵字 「預約」 和 時間,就直接幫你創建日曆項目。


推薦閱讀:

TAG:人工智慧 | 蘋果公司 (Apple Inc.) | 自然語言處理 | Siri |