影片教學 > OSL經典案例

【OSL經典案例】EP11:不要碰我肩膀

olami     2017-09-13 12:00

成果篇:


教學篇:


實作篇:



大家好,歡迎觀看OLAMI人工智慧開放平台教學影片。

大家還記得台鐵上那位被碰肩膀就歇斯底里的「肩膀姐」嗎?

這集的OSL經典案例,我們也要來KUSO一下,把「不要碰我肩膀」,加進OLAMI人工智慧開放平台裡!

我們大致上可以分為五個部分來寫

  1. 預設語料
  2. 「就是」、「不要」、「碰」在OSL語法的編寫
  3. 用Slot代入語料中的變數
  4. 建立Grammar
  5. 在答案中引用Slot


一、我們的預設語料為:不要碰我肩膀

我們來看「不要碰我肩膀」還可以有哪些不同的表達方法:

請你能不能不要碰我肩膀
能不能請你不要碰我肩膀
就是不要碰我肩膀
不要碰到我的肩膀
不要碰我肩膀可不可以啦
...


我們可以看到,「不要碰我肩膀」前面可以加上「請你能不能」或「能不能請你」、「就」或「就是」;後面則可以加上「好、好不好」等相似詞。

「碰」的後面可以有一個可選的「到」;「我」後面則可加上可選的「的」;最後可以有可選的語末助詞。

因此,我們的語料可整理成:請你能不能、就是、不要、碰、到、我、的、肩膀、好不好、啦,這幾個部分,來分別用OSL語法編寫。

其中「請你能不能、能不能請你」、「我」、「好不好」,以及語末助詞「啦」的部分,可直接引用之前建立過的Rule:

<canyou>: [<please>]<you>[<canornot>]|<canornot>[<please><you>]|<please>
<me>:我|俺|人家
<canornot> :可[不可]以|能[不能]|行[不行]|好[不好]|(能|可)否
<endyuqi>:啊|吧|呢|嗎|啦|阿|呀|喔|噢|哇|唷|呦|咧|哩|嚕|嘍|囉|了


接著就來依序用OSL語法編寫其他部分。


二、「就是」、「不要」、「碰」分別以OSL語法編寫

「你『就是』不要碰我肩膀」,也可以說成「你『就』不要碰我肩膀」;所以「就是、就」用OSL語法會寫成:

就[是]


「不要、不准、不能、不可以、…」

「不」+「動詞」是一個常被使用到的否定語態,我們可以把它編成一個Template,往後如果我們在其他語法中要使用否定的語態時,只要將動詞代入到這個Template的參數中就可以了。

關於Template的撰寫,我們可以點選這裡來複習一下。

首先建立一個Template<donot>,再把「要、准、能、可以、…」編寫成一個Rule<yao>:

Template<donot>:[=動詞=]不$(動詞)

Rule<yao>:要|行|准|可[以]|能[夠]


最後Template<donot>的參數代入Rule<yao>,就會寫成:

<donot(<yao>)>


「碰」的部份則把相似的動詞,集合寫成一個Rule<touch>:

<touch>:[觸]碰|碰觸|[撫|觸]摸|拍[打]|打


三、運用Slot代入語料中的變數

例句:不要碰我肩膀

其中「肩膀」我們可以替換成其他身體部位,並且能回饋到答案當中,由於身體部位是可以被列舉的,所以我們使用的是Internal類型的Slot。

Internal Slot使用方式,必須分別建立同名的Slot和Rule:

<body>,internal類型,min:1,max:3
<body>:肩[膀]|手[臂|指|掌|心|肘]|屁股|臀[部]|臉[頰|蛋]|頭[頂|部]|頭髮|胸[部|膛|口]|脖子|頸部|背[脊]|耳[朵]|下巴|[大|小]腿|腳|眼[睛]|嘴[巴]|鼻[子]|額頭|肚[子]|腹部


建立完成後,我們只要在答案中直接引用這個Slot就可以了,例如:

Ans: 誰要碰你<body>,碰你一下還會底累我的行程,我明天還要上班咧!


那麼當我們輸入的語料為「不要碰我肩膀」,<body>的Slot值就會是「肩膀」,進而回答:誰要碰你肩膀,碰你一下還會底累我的行程,我明天還要上班!


四、建立Grammar。

最後我們的Grammar會寫成這樣:

<donottouchmybody>:
[<canyou>][就[是]](<donot(<yao>)>|別)<touch>[到]<me>[的]<body>[<canornot>][<endyuqi>]


五、將Slot寫入答案中。

Ans1: 你是不是搞錯了什麼?我又沒有手,要怎麼碰你<body>啦!
Ans2: 誰要碰你<body>,碰你一下還會底累我的行程,我明天還要上班咧!
Ans3: 我又不是迪哥。迪哥你聽得懂嗎?


答案中嵌入Slot<body>,我們的答案就會依使用者輸入的內容來提取Slot值,並替換到答案中。

注意這邊我們的Internal Slot <body>是必須符合Rule <body>的內容才會被匹配成功的,和External

slot有很大的不同。


那這個Grammar到這邊就建立完畢,別忘了在OLAMI開放平台發布後,使用OLAMI語音智慧喇叭DIY開發套件驗收成果喔!


感謝您的觀看,我們下次再見。



Copyright © 2017 威盛电子股份有限公司. All rights reserved   |   意见反馈