歡迎大家來到第四章,富集數(shù)據(jù)資源。
我會(huì)為大家介紹什么叫做富集資源以及富集哪些資源。
- 概述
首先,富集詞典詞槽。這是指需要收集到任務(wù)完成的關(guān)鍵詞和關(guān)鍵要素。類似電影院、所有的App名稱、航班信息,都叫詞典詞槽。這些需要我們盡可能多的收集到。
其次,富集對(duì)話樣本,對(duì)話樣本是真實(shí)的業(yè)務(wù)場景中的對(duì)話集合。
最后,富集問答對(duì),問答對(duì)是真實(shí)業(yè)務(wù)場景中的問答集合。
如上是需要要富集的資源。
接下來為大家簡單介紹富集的三種方法:
第一,從指定業(yè)務(wù)場景中提取數(shù)據(jù);
第二,從對(duì)話的日志中抽取相關(guān)數(shù)據(jù);
第三,去網(wǎng)上收集。如電影名稱、電影院名稱等,這些有官方的數(shù)據(jù)庫,可以直接下載,其他沒有數(shù)據(jù)庫的,可以去垂直的社區(qū)論壇上爬取。
- 富集詞典詞槽
什么叫做富集詞槽詞典?簡單來說,就是獲取更多實(shí)體編輯數(shù)據(jù)。例如,當(dāng)你要做一個(gè)打開手機(jī)App功能的機(jī)器人,如果你收集了所有常用的App名稱,識(shí)別的準(zhǔn)確率會(huì)更高。富集詞槽詞典有一個(gè)通用的標(biāo)準(zhǔn),每一個(gè)詞槽關(guān)鍵詞,至少要標(biāo)出3到5個(gè)相關(guān)的關(guān)鍵詞。
換句話解釋:
詞典+規(guī)則+預(yù)置詞槽=你的詞槽
UNIT里已經(jīng)預(yù)置了很多的詞槽,幫助各位省去了官方數(shù)據(jù)庫下載和垂直網(wǎng)站爬取的工作量。
富集詞槽詞典的原則是:
1. 盡量復(fù)用系統(tǒng)的預(yù)置詞槽
2. 使用自定義詞典,規(guī)則主要是補(bǔ)充用的,因?yàn)槲覀冏远x的詞槽可能未必有百度預(yù)置的詞槽更全。
有以下3個(gè)技巧:
- 自定義詞典、規(guī)則的優(yōu)先級(jí)高于系統(tǒng)內(nèi)置。
2. 自定義詞槽之間的優(yōu)先級(jí)相等。如果一個(gè)詞屬于多個(gè)詞槽,相應(yīng)的,需要識(shí)別出多個(gè)詞槽候選。
3. 規(guī)則的形式是正則表達(dá)式,注意控制通配符的范圍,善用捕捉功能加以限制。
考慮到很多讀者并不是程序員,也不知道什么叫做正則表達(dá)式。所以在這一章,簡單介紹下正則表達(dá)式。
- 正則表達(dá)式介紹
正則表達(dá)式描述了一種字符串匹配的模式,用來檢查一個(gè)串是否含有某種子串,將匹配的子串替換,或從某個(gè)串中抽取符合某個(gè)條件的字串等。
上述描述是一個(gè)很官方的定義。
簡單的來說,正則表達(dá)式用一種模版去匹配一句話里邊是否有符合這個(gè)模版的東西,并把它抽取出來。正則表達(dá)式非常復(fù)雜,有非常多的通配符,這里只介紹了兩個(gè):
1. 問號(hào): 問號(hào)匹配字符串中的零或一個(gè)字符
2. 星號(hào):星號(hào)匹配零個(gè)或多個(gè)字符。
如圖所示,一個(gè)正則表達(dá)式將要匹配圖中所示的文件。\w代表任意一個(gè)字母或數(shù)字或下劃線,問號(hào)匹配零或一個(gè)字符,所以可以看到它都可以匹配。*匹配零個(gè)或多個(gè)字符,所以我們看到這些也都是可以匹配的。
更多的正則表達(dá)式信息,各位可以到官網(wǎng)了解更多。
如上,讀者可以知道富集詞槽詞典涉及到正則表達(dá)式的時(shí)候,該如何去使用。
- 富集對(duì)話樣本 & 問答對(duì)
富集對(duì)話樣本和問答對(duì)是為了獲取更多的可標(biāo)注數(shù)據(jù)的條目。比如聊天數(shù)據(jù)或問答數(shù)據(jù)。在社交媒體、論壇、問答社區(qū)等都可能包含這類數(shù)據(jù)。
富集的標(biāo)準(zhǔn):通常情況下,標(biāo)注100個(gè)對(duì)話樣本,就可以進(jìn)行基本訓(xùn)練。當(dāng)數(shù)據(jù)達(dá)到1000個(gè)的時(shí)候,基本上整個(gè)系統(tǒng)就已經(jīng)達(dá)到了可用的標(biāo)準(zhǔn)。UNIT提供了一個(gè)很好的功能——對(duì)話樣本集,有學(xué)習(xí)模式和訓(xùn)練模式,輸入對(duì)話樣本,UNIT可以自行錄入,并且可以在這里進(jìn)行簡單的標(biāo)注。后面會(huì)在實(shí)操的時(shí)候給讀者做詳細(xì)講解。
- 標(biāo)注對(duì)話模版
當(dāng)開始搭建聊天機(jī)器人的時(shí)候,通常情況是沒有真實(shí)的樣本和問答對(duì)的。因?yàn)闄C(jī)器人還沒有上線,開發(fā)者一定不知道用戶如何去和Bot進(jìn)行交互。這個(gè)時(shí)候是很難找100個(gè)對(duì)話對(duì)的。
要解決上述問題,標(biāo)注對(duì)話模版是一個(gè)很實(shí)用的功能。先搭建一個(gè)對(duì)話模版并上線,上線后再進(jìn)一步積累真實(shí)的對(duì)話樣本數(shù)據(jù),再進(jìn)行數(shù)據(jù)富集,是一個(gè)很好的冷啟動(dòng)方法。
對(duì)話模版是一種快速生效的工具,開發(fā)者可以根據(jù)訓(xùn)練集抽象高質(zhì)量的模版提升效果。如果模版標(biāo)準(zhǔn)比較高,有的時(shí)候也可以直接拿來做訓(xùn)練。上圖是UNIT上對(duì)話模版列表的一個(gè)配置界面,之后在實(shí)操課程里會(huì)進(jìn)一步給大家解釋。
- 數(shù)據(jù)后續(xù)處理
富集數(shù)據(jù)資源還有一個(gè)很重要的步驟是數(shù)據(jù)的后續(xù)處理,這個(gè)分為三塊:
第一塊是數(shù)據(jù)清洗,使用正則表達(dá)式等工具,將沒有用的數(shù)據(jù)區(qū)去掉,比如語氣詞”啊“,”哎“等,或者人名,電話號(hào)等敏感信息。
第二步是數(shù)據(jù)標(biāo)注,部分?jǐn)?shù)據(jù)需要后續(xù)的人工標(biāo)注才能使用。包括意圖分類、領(lǐng)域分類,槽值與實(shí)體的標(biāo)注等。
第三塊是數(shù)據(jù)變形,通過對(duì)特定數(shù)據(jù)的變形處理,可以兼容更多場景。比如常見的文本資料里經(jīng)常會(huì)出現(xiàn)中文標(biāo)點(diǎn)和英文標(biāo)點(diǎn)混合使用的情況。可能出現(xiàn)“地、的、得”被混用的情況,應(yīng)該盡可能的做一些合理的數(shù)據(jù)變形,使得機(jī)器能夠識(shí)別更多的內(nèi)容。
如上,給大家介紹了一下富集數(shù)據(jù)資源,這節(jié)課就到這里,謝謝大家!