
NLP技術(shù)落地最普遍的場景就是智能客服,如阿里的”小蜜“,京東的“JIMI”等等。NLP 技術(shù)也廣泛應(yīng)用于搜索系統(tǒng)。無論是“智能客服”,還是“搜索系統(tǒng)”,構(gòu)建的前提是擁有“高質(zhì)量的QA知識庫”。今天聊聊“如何構(gòu)建高質(zhì)量QA知識庫。
歷史對話數(shù)據(jù)分布分析。
基于公司現(xiàn)有系統(tǒng)積累的大規(guī)模對話文本數(shù)據(jù),需要對文本數(shù)據(jù)進行歸類處理,分析每個部分數(shù)據(jù)的占比,挖掘出有價值的文本通過 NLP 相關(guān)技術(shù)進行商業(yè)價值轉(zhuǎn)化。下文以醫(yī)療領(lǐng)域來舉例說明,通過輸入對象,可以將文本分為客服輸入和用戶輸入兩部分。挖掘相關(guān)問題,主要從用戶輸入文本出發(fā),用戶輸入文本根據(jù)問題的類型大致可以分為以下幾種):
- 基本常識相關(guān)問題。比如:孕婦飲食需要注意什么?如何進行體檢預(yù)約?
- 業(yè)務(wù)相關(guān)問題。比如:(婦科問診)肚子疼怎么辦?針對該問題,醫(yī)生不能盲目下結(jié)論,需要詢問用戶的一些信息(是否孕期,具體哪里痛等等)。
- 閑聊問題。閑聊文本占比蠻多,不在分析范圍內(nèi)。
通過文本歸納以及數(shù)據(jù)分析,在用戶輸入文本中,基本問題占比34%,業(yè)務(wù)問題占比28%,閑聊問題占比48%?;締栴}和業(yè)務(wù)問題是具有價值的部分,通過挖掘基本問題,我們可以構(gòu)建知識庫,提供知識問答檢索系統(tǒng);通過挖掘業(yè)務(wù)問題,可以設(shè)計業(yè)務(wù)相關(guān)的多輪對話模板,完成多輪對話問答系統(tǒng)。
基本問答對挖掘。
基本問答對挖掘分為兩個步驟第一步:挖掘出高質(zhì)量的疑問句,第二步:挖掘出高質(zhì)量疑問句對應(yīng)的答案。
如何挖掘出高質(zhì)量疑問句。
1、問題的初步篩選:需要將用戶文本中疑問句挖掘出來,方法包括規(guī)則表達式和疑問句判別分類模型。
- 規(guī)則表達式:發(fā)現(xiàn)中文問句的表達規(guī)律,建立規(guī)則表達式庫,通過規(guī)則引擎進行匹配。比如以“嗎、?什么”等結(jié)尾的句子。
- 疑問句判別分類模型:將疑問句挖掘轉(zhuǎn)換為分類模型:即疑問句和非疑問句,通過人工標注數(shù)據(jù),訓(xùn)練模型,完成疑問句判別任務(wù)。常用的分類模型如TextCNN等。
2、領(lǐng)域詞——問題過濾:通過問句是否含有領(lǐng)域詞完成第 1 步知識庫的過濾。領(lǐng)域詞庫的建立可以使用如下方法:
- 卡方特征選擇提取領(lǐng)域詞。
- 命名實體識別模型完成領(lǐng)域詞的抽取。常用方法:BILSTM+CRF等。
3、相似疑問句的挖掘。
- 聚類分析,挖掘相似的疑問句。
- 句子向量相似度分析
- 答案相似,也可以認為問題是相似問題。
接下來我們舉個例子來說明上述挖掘高質(zhì)量疑問句的方法,假設(shè)領(lǐng)域詞集合:{腹痛},用戶輸入的文本集合如下:
- 1、腹痛如何治療?
- 2、我能不能退貨?
- 3、肚子疼怎么辦呀
- 4、我已經(jīng)完成了訂單支付。
通過第 1 步,獲取的問句如下(第 4 句不是疑問句):
- 1、腹痛如何治療?
- 2、我能不能退貨?
- 3、肚子疼怎么辦呀?
通過第 2 步,獲取的問句如下(第 2、3 句不含有領(lǐng)域詞)
- 1、腹痛如何治療?
通過第 3 步,聚類分析,可以發(fā)現(xiàn)第 1 句 和第 3 句是相似的。
- 1、腹痛如何治療?
- 3、肚子疼怎么辦呀?
- 最終完成問句庫的建立即“腹痛如何治療?”對應(yīng)的疑問句“肚子疼怎么辦呀”。
高質(zhì)量疑問答案選擇。
1、問答拼接。將疑問句對應(yīng)客服的陳述句作為答案。如果答案長度較短,則按照“就近”原則拼接2-3個陳述句作為答案??头卮饐栴},可能針對一個問題通過多個字句進行回答,所以按照“就近”原則將陳述句進行拼接。 2、問答對篩選。針對第 1 步挖掘出來的QA對,通過判斷Q和A中是否包含相同的領(lǐng)域詞或者是否擁有相同的子串等策略,完成問答對的篩選。 3、同類問題如果擁有多種不同的答案,則保留高頻答案。4、運營人員協(xié)助,完成 QA 知識庫的質(zhì)檢。
熱門跟貼