亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人技術(shù)實(shí)現(xiàn)

        2021-04-06 04:04:19來(lái)關(guān)軍于丹閆曉宇肖鵬
        軟件工程 2021年2期

        來(lái)關(guān)軍 于丹 閆曉宇 肖鵬

        摘? 要:世界上很多高價(jià)值的數(shù)據(jù)信息儲(chǔ)存在關(guān)系數(shù)據(jù)庫(kù)中,訪問(wèn)這些數(shù)據(jù)需要掌握專(zhuān)門(mén)的結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL),普通人很難直接使用?;趯?duì)現(xiàn)有對(duì)話(huà)機(jī)器人存在的問(wèn)題和相關(guān)關(guān)鍵技術(shù)的梳理,本文融合了數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)同步、數(shù)據(jù)庫(kù)查詢(xún)、消息推送、自然語(yǔ)言理解及語(yǔ)音識(shí)別等相關(guān)技術(shù)及產(chǎn)品,設(shè)計(jì)了數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人。方案可以實(shí)現(xiàn)用戶(hù)理解、消息推送、事實(shí)數(shù)據(jù)查詢(xún)和分析數(shù)據(jù)查詢(xún)四個(gè)功能,使得用戶(hù)能夠快速地獲取信息。本文提出的數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人具有較強(qiáng)的泛化性和可擴(kuò)展性。

        關(guān)鍵詞:關(guān)系型數(shù)據(jù)庫(kù);對(duì)話(huà)機(jī)器人;SQL;消息推送

        Abstract: Many high-value data in the world are stored in relational databases. Access to these data requires a special Structured Query Language (SQL), which is difficult for ordinary people to use directly. Aiming at problems of the existing chatbot, this paper proposes to design database-driven chatbots by integrating related technologies and products, such as data warehouse, data synchronization, database query, message push, natural language understanding and speech recognition. The solution realizes four functions: user understanding, message push, fact-data query and analysis-data query, so that users can quickly obtain information. Database-driven chatbots proposed in this paper has a capability of strong generalization and scalability that enable chatbots to work with data-driven conversations.

        Keywords: relational database; chatbot; SQL; message push

        1? ?引言(Introduction)

        數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人是指人們可以通過(guò)自然語(yǔ)言完成信息查詢(xún)或者得到關(guān)注信息推送的對(duì)話(huà)系統(tǒng)。數(shù)據(jù)庫(kù)是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的、可共享的數(shù)據(jù)集合,它的概念比較寬泛,在本文中數(shù)據(jù)庫(kù)特指關(guān)系型數(shù)據(jù)庫(kù)。對(duì)話(huà)機(jī)器人是一種以自然語(yǔ)言在計(jì)算機(jī)與人之間進(jìn)行交互的軟件[1]。近年來(lái),它開(kāi)始應(yīng)用于日常生活的方方面面,例如服務(wù)臺(tái)工具、自動(dòng)電話(huà)應(yīng)答系統(tǒng)等,以促進(jìn)教育、醫(yī)療、電子商務(wù)等領(lǐng)域服務(wù)質(zhì)量的提升。

        研究數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人具有深遠(yuǎn)的應(yīng)用價(jià)值。對(duì)于企業(yè)的各種應(yīng)用系統(tǒng),其信息更多地存儲(chǔ)在業(yè)務(wù)數(shù)據(jù)庫(kù)中,包括Oracle、SQL Server、MySQL等關(guān)系型數(shù)據(jù)庫(kù)。而關(guān)系型數(shù)據(jù)庫(kù)的查詢(xún)還是一個(gè)比較專(zhuān)業(yè)的領(lǐng)域,對(duì)大眾并不友好。采用人機(jī)對(duì)話(huà)的方式,通過(guò)對(duì)話(huà)機(jī)器人來(lái)查詢(xún)數(shù)據(jù)是一個(gè)很好的方向,它使用戶(hù)直接以自然語(yǔ)言的方式,向數(shù)據(jù)庫(kù)系統(tǒng)發(fā)問(wèn)并獲得所需信息,從而大大提升人機(jī)交互的容易程度;另一方面,當(dāng)人們關(guān)注的主要信息在數(shù)據(jù)庫(kù)中有所更新時(shí),也能第一時(shí)間主動(dòng)地通知用戶(hù)。這樣的對(duì)話(huà)機(jī)器人能夠提高用戶(hù)獲取信息的友好性和便捷性,具有更廣泛的實(shí)用價(jià)值和社會(huì)意義。

        關(guān)于數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人的研究和技術(shù)實(shí)現(xiàn),遇到的主要問(wèn)題包括以下三個(gè)方面:

        (1)對(duì)話(huà)機(jī)器人理解用戶(hù)的需求和自然語(yǔ)言非常困難。由于自然語(yǔ)言的創(chuàng)造性、遞歸性、多義性、主觀性和社會(huì)性等特點(diǎn)[2],既讓人類(lèi)的自然語(yǔ)言具備強(qiáng)大的表達(dá)力和生命力,同時(shí)呈現(xiàn)出非常復(fù)雜且難以捉摸的情景,因此讓計(jì)算機(jī)去準(zhǔn)確理解人類(lèi)語(yǔ)言是首要的問(wèn)題。

        (2)現(xiàn)在對(duì)話(huà)機(jī)器人對(duì)于數(shù)據(jù)庫(kù)的查詢(xún)通常是被動(dòng)的,缺少主動(dòng)推送信息。即針對(duì)用戶(hù)的提問(wèn)和聊天,對(duì)話(huà)機(jī)器人或者被動(dòng)應(yīng)答,或者被動(dòng)查詢(xún)數(shù)據(jù)庫(kù),總之,被動(dòng)地提供反饋,主動(dòng)性不足。

        (3)現(xiàn)在對(duì)話(huà)機(jī)器人對(duì)業(yè)務(wù)數(shù)據(jù)庫(kù)進(jìn)行直接查詢(xún)通常會(huì)對(duì)現(xiàn)有業(yè)務(wù)系統(tǒng)造成性能和安全影響,特別是對(duì)統(tǒng)計(jì)性結(jié)果的查詢(xún)影響更大。

        針對(duì)以上問(wèn)題,本文基于現(xiàn)有開(kāi)放的軟件產(chǎn)品和服務(wù),提出了數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人的一種技術(shù)實(shí)現(xiàn)方案。該方案可以方便快捷地構(gòu)建對(duì)話(huà)機(jī)器人,使用戶(hù)通過(guò)語(yǔ)音或者文本查詢(xún)數(shù)據(jù)庫(kù)內(nèi)容,并在數(shù)據(jù)庫(kù)相關(guān)內(nèi)容更新時(shí)主動(dòng)地向用戶(hù)發(fā)送推送信息,使用戶(hù)能夠更便捷地獲得數(shù)據(jù)庫(kù)中的內(nèi)容,簡(jiǎn)化了用戶(hù)的信息獲取方式。

        2? ?相關(guān)研究和技術(shù)(Literature review)

        數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人技術(shù)實(shí)現(xiàn)所面臨的主要技術(shù)挑戰(zhàn)分別是自然語(yǔ)言理解、消息推送以及數(shù)據(jù)庫(kù)設(shè)計(jì)和優(yōu)化。

        在自然語(yǔ)言理解和實(shí)現(xiàn)方面,隨著1995年以來(lái)信息檢索技術(shù)的發(fā)展,Baidu、Google等搜索引擎公司計(jì)算能力的飛速提升,以及2005年后互聯(lián)網(wǎng)業(yè)的蓬勃發(fā)展和移動(dòng)終端的迅速普及,自然語(yǔ)言理解的研究進(jìn)展迅猛,也產(chǎn)生了一系列比較成熟的聊天系統(tǒng),比如蘋(píng)果的Siri、微軟的Cortana、Facebook的Messenger、Google的Assistant等[3]。這些跨平臺(tái)型人工智能機(jī)器人借助本公司在大數(shù)據(jù)、自然語(yǔ)義分析、機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)方面的技術(shù)積累,精煉形成自己的真實(shí)語(yǔ)料庫(kù),在不斷訓(xùn)練的過(guò)程中通過(guò)理解對(duì)話(huà)數(shù)據(jù)中的語(yǔ)義和語(yǔ)境信息,實(shí)現(xiàn)超越一般簡(jiǎn)單人機(jī)問(wèn)答的自然交互。相比國(guó)外,我國(guó)在智能聊天領(lǐng)域的投入規(guī)模和研究水平上都有著不小的差距,研究成果并不顯著。但是有多所高校在此領(lǐng)域成績(jī)顯著,主要集中在自然語(yǔ)言處理工具的開(kāi)發(fā)上,比如哈爾濱工業(yè)大學(xué)的HIT工具(中文詞法分析、句法分析和語(yǔ)法分析)以及臺(tái)灣“國(guó)防大學(xué)”的CQAS中文問(wèn)答系統(tǒng)(側(cè)重于命名實(shí)體及其關(guān)系的處理)等[4]。因此,借助現(xiàn)有成熟的自然語(yǔ)言理解平臺(tái)和工具,開(kāi)發(fā)對(duì)話(huà)機(jī)器人可以起到事半功倍的效果。

        在消息推送的研究和實(shí)現(xiàn)方面,目前服務(wù)端給客戶(hù)端推送消息,普遍做法是客戶(hù)端與服務(wù)端維持一個(gè)長(zhǎng)連接,客戶(hù)端定時(shí)向服務(wù)端發(fā)送心跳以維持這個(gè)長(zhǎng)連接。當(dāng)有新消息過(guò)來(lái)的時(shí)候,服務(wù)端查出該消息對(duì)應(yīng)的TCP Channel的ID,并找到對(duì)應(yīng)的通道進(jìn)行消息發(fā)放[5]。在此之上,又衍生出針對(duì)消息的發(fā)布/訂閱模型,客戶(hù)端可以訂閱某一個(gè)Topic,服務(wù)端根據(jù)Topic找到對(duì)應(yīng)的Channel進(jìn)行批量的消息發(fā)放。在此基礎(chǔ)上又衍生出了如MQTT等開(kāi)源協(xié)議用于定義以上過(guò)程[6]。在如今動(dòng)輒成千上萬(wàn)用戶(hù)量的情況下,如何應(yīng)對(duì)大規(guī)模的消息下發(fā)以及如何保證消息推送的及時(shí)性、高可靠性和高可用性是消息推送的技術(shù)難點(diǎn)。目前,國(guó)內(nèi)較為常用的第三方推送服務(wù)工具有極光推送、騰訊信鴿、百度云推送、華為推送、小米推送等。通過(guò)基于第三方的消息推送云服務(wù),來(lái)保障消息推送的及時(shí)性、高可靠性和高可用性。

        在數(shù)據(jù)庫(kù)設(shè)計(jì)和優(yōu)化方面,近年來(lái)各種數(shù)據(jù)庫(kù)層出不窮,解決各領(lǐng)域內(nèi)具體的業(yè)務(wù)問(wèn)題。經(jīng)過(guò)了60多年發(fā)展的關(guān)系型數(shù)據(jù)庫(kù)主要存儲(chǔ)和管理結(jié)構(gòu)化的數(shù)據(jù),應(yīng)用于聯(lián)機(jī)事務(wù)處理系統(tǒng)(On-line Transaction Processing, OLTP),但對(duì)超大規(guī)模的數(shù)據(jù)管理,特別是橫向擴(kuò)展方面支持不足[7]。NoSQL數(shù)據(jù)庫(kù)是關(guān)系型數(shù)據(jù)庫(kù)的一種補(bǔ)充,不使用模式(Schemaless)或使用靈活的模式追求高性能和高吞吐量,可以支撐超大規(guī)模數(shù)據(jù)的橫向擴(kuò)展,主要管理非關(guān)系型數(shù)據(jù),但它不支持ACID和事務(wù),不支持關(guān)聯(lián),缺少標(biāo)準(zhǔn)接口[8]。隨著數(shù)據(jù)量的增加以及數(shù)據(jù)統(tǒng)計(jì)、分析和挖掘的需求,各種數(shù)據(jù)倉(cāng)庫(kù)和大數(shù)據(jù)處理平臺(tái)也同步快速發(fā)展,包括MPP平臺(tái)和Hadoop生態(tài)平臺(tái),可以廣泛應(yīng)用于聯(lián)機(jī)分析處理系統(tǒng)(On-line Analytical Processing, OLAP)。針對(duì)不同的業(yè)務(wù)需求以及數(shù)據(jù)規(guī)模,采用不同的適合的數(shù)據(jù)庫(kù)并進(jìn)行優(yōu)化,是實(shí)現(xiàn)技術(shù)方案適用性的首要準(zhǔn)則。

        3? ?技術(shù)方案(Solution)

        一個(gè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人應(yīng)該包括四個(gè)功能。首先,該對(duì)話(huà)機(jī)器人能夠通過(guò)文字或語(yǔ)音理解用戶(hù)的意圖;其次,該對(duì)話(huà)機(jī)器人在用戶(hù)關(guān)心的信息發(fā)生變化后能夠主動(dòng)通知用戶(hù);第三,該對(duì)話(huà)機(jī)器人能夠幫助客戶(hù)在不知道數(shù)據(jù)庫(kù)表結(jié)構(gòu)的情況下,從數(shù)據(jù)庫(kù)中查詢(xún)到特定的事實(shí)數(shù)據(jù);最后,該對(duì)話(huà)機(jī)器人能夠從數(shù)據(jù)庫(kù)中查詢(xún)到分析型的數(shù)據(jù)。

        基于以上四種功能,本文提出的總體框架包括用戶(hù)理解、消息推送、事實(shí)數(shù)據(jù)查詢(xún)、分析數(shù)據(jù)查詢(xún)四個(gè)服務(wù),具體如圖1所示。

        首先,用戶(hù)理解服務(wù)實(shí)現(xiàn)對(duì)話(huà)機(jī)器人能夠通過(guò)文字或語(yǔ)音理解用戶(hù)意圖的功能,包括文本處理模塊、語(yǔ)音識(shí)別模塊和自然語(yǔ)言理解模塊三個(gè)部分。

        其次,消息推送服務(wù)實(shí)現(xiàn)對(duì)話(huà)機(jī)器人在用戶(hù)關(guān)心的信息發(fā)生變化后主動(dòng)通知用戶(hù)的功能,包括文本處理模塊、數(shù)據(jù)庫(kù)監(jiān)聽(tīng)模塊和業(yè)務(wù)數(shù)據(jù)庫(kù)三個(gè)部分。

        第三,事實(shí)數(shù)據(jù)查詢(xún)服務(wù)實(shí)現(xiàn)對(duì)話(huà)機(jī)器人幫助用戶(hù)在不知道數(shù)據(jù)庫(kù)表結(jié)構(gòu)的情況下從數(shù)據(jù)庫(kù)中查詢(xún)到特定事實(shí)數(shù)據(jù)的功能,包括SQL解析器、以個(gè)體為中心的數(shù)據(jù)集市、業(yè)務(wù)數(shù)據(jù)庫(kù)及ETL四個(gè)部分。

        最后,分析數(shù)據(jù)查詢(xún)服務(wù)實(shí)現(xiàn)對(duì)話(huà)機(jī)器人從數(shù)據(jù)庫(kù)中查詢(xún)分析型數(shù)據(jù)的功能,包括SQL解析器、分析型多維數(shù)據(jù)倉(cāng)庫(kù)、業(yè)務(wù)數(shù)據(jù)庫(kù)及ETL四個(gè)部分。

        3.1? ?用戶(hù)理解服務(wù)

        用戶(hù)理解服務(wù)是與用戶(hù)溝通的接口,主要功能是理解用戶(hù)的語(yǔ)音和文本,并將結(jié)果或者消息告知用戶(hù)。其結(jié)構(gòu)如圖2所示。

        其中,文本處理模塊把用戶(hù)的文本輸入直接傳遞給自然語(yǔ)言理解模塊;語(yǔ)音識(shí)別模塊把用戶(hù)的語(yǔ)音輸入轉(zhuǎn)換成文本傳遞給文本處理模塊,并最終傳遞給自然語(yǔ)言理解模塊。另外,文本處理模塊接收來(lái)自自然語(yǔ)言理解模塊的文本,并將文本展示給用戶(hù)查看。語(yǔ)音識(shí)別模塊主要是接收語(yǔ)音,并把語(yǔ)音轉(zhuǎn)化為文本,在本技術(shù)實(shí)現(xiàn)中采用百度的語(yǔ)音識(shí)別服務(wù)。自然語(yǔ)言理解模塊則接收文本,理解文本,并進(jìn)行語(yǔ)義表示,生成意圖和實(shí)體,在本技術(shù)實(shí)現(xiàn)中采用Google的API.AI服務(wù)。

        在語(yǔ)音識(shí)別模塊中,當(dāng)用戶(hù)輸入為語(yǔ)音時(shí),需要將語(yǔ)音轉(zhuǎn)換為文本,采用的技術(shù)為語(yǔ)音識(shí)別技術(shù)(Automatic Speech Recognition, ASR)。ASR是以語(yǔ)音為研究對(duì)象,通過(guò)語(yǔ)音信號(hào)處理和模式識(shí)別讓機(jī)器自動(dòng)識(shí)別和理解人類(lèi)口述的語(yǔ)言,本質(zhì)上是一種模式識(shí)別系統(tǒng),包括特征提取、模式匹配、參考模式庫(kù)等三個(gè)基本單元[9]。目前市場(chǎng)上有很多家的語(yǔ)音識(shí)別接口可用,國(guó)內(nèi)的百度、阿里巴巴、騰訊、華為和科大訊飛,國(guó)外的微軟和谷歌都提供了中文的語(yǔ)音識(shí)別接口,包括SDK和Web API。百度語(yǔ)音識(shí)別技術(shù)領(lǐng)先,近場(chǎng)中文普通話(huà)識(shí)別準(zhǔn)確率達(dá)98%,簡(jiǎn)單快速且支持API及多種SDK接入。本文采用百度語(yǔ)音識(shí)別接口,完成語(yǔ)音向文本的轉(zhuǎn)換。

        在自然語(yǔ)言理解模塊中,根據(jù)用戶(hù)的自然語(yǔ)言輸入來(lái)理解用戶(hù)的意圖,其目標(biāo)是將自然語(yǔ)言文本信息轉(zhuǎn)換為可被機(jī)器處理的語(yǔ)義表示。語(yǔ)義表示可以用“意圖+槽位”的方式來(lái)描述。意圖即這句話(huà)所表達(dá)的含義,槽位即表達(dá)這個(gè)意圖所需要的具體參數(shù)。自然語(yǔ)言理解(Natural Language Understanding, NLU)的挑戰(zhàn)主要包括三個(gè):首先,語(yǔ)音識(shí)別錯(cuò)誤率通常在10%—20%,這會(huì)影響語(yǔ)義理解的準(zhǔn)確性;其次,通過(guò)自然語(yǔ)言表達(dá)的語(yǔ)義存在不確定性,同一句話(huà)在不同語(yǔ)境下的語(yǔ)義可能完全不同;最后,在自然語(yǔ)言中往往存在不流暢性、錯(cuò)誤及重復(fù)等情況[10]。針對(duì)這些挑戰(zhàn),目前有一些公司將NLU作為一種云服務(wù)提供,方便其他產(chǎn)品快速地具備語(yǔ)義理解能力,比如Facebook的WIT.AI、Google的API.AI

        和微軟的LUIS。使用者上傳數(shù)據(jù),平臺(tái)根據(jù)數(shù)據(jù)訓(xùn)練出模型并提供接口供使用者調(diào)用。

        API.AI是一個(gè)為開(kāi)發(fā)者提供服務(wù)的機(jī)器人搭建平臺(tái),幫助開(kāi)發(fā)者迅速開(kāi)發(fā)一款bot并發(fā)布到各種message平臺(tái)上。使用API.AI可以將用戶(hù)輸入的自然語(yǔ)言翻譯成一種“程序能讀懂”的語(yǔ)言,并以JSON的格式返回結(jié)果。使用API.AI包括五個(gè)步驟:首先是自定義Entity,然后是自定義Intents和Action,接著上傳數(shù)據(jù),再使用API.AI的訓(xùn)練器進(jìn)行模型的訓(xùn)練并得到分類(lèi)器,最后是整合和發(fā)布,可以用Web Service的方式提供服務(wù)。使用API.AI的好處是能夠快速地搭建出數(shù)據(jù)驅(qū)動(dòng)的NLU模塊,本文采用API.AI提供的云服務(wù)完成自然語(yǔ)言理解的功能。

        3.2? ?消息推送服務(wù)

        消息推送服務(wù)的主要功能是監(jiān)控?cái)?shù)據(jù)庫(kù)中用戶(hù)特別關(guān)注的信息的變化,當(dāng)相應(yīng)的信息發(fā)生變化后,準(zhǔn)實(shí)時(shí)且主動(dòng)地通知用戶(hù)。其結(jié)構(gòu)如圖3所示。

        其中,業(yè)務(wù)數(shù)據(jù)庫(kù)為關(guān)系型數(shù)據(jù)庫(kù),具體選擇為MySQL數(shù)據(jù)庫(kù),用于存儲(chǔ)數(shù)據(jù)和信息;數(shù)據(jù)庫(kù)監(jiān)聽(tīng)模塊監(jiān)控MySQL的Binlog日志,準(zhǔn)實(shí)時(shí)增量更新用戶(hù)關(guān)注的信息,并將更新的信息以消息的形式發(fā)送至消息推送模塊;當(dāng)消息推送模塊接收到要推送的消息任務(wù)后,將消息推送給相關(guān)用戶(hù)的文本處理模塊;文本處理模塊則將消息以文本的方式展示給用戶(hù)。其中,數(shù)據(jù)庫(kù)監(jiān)聽(tīng)模塊采用阿里巴巴的Canal工具,消息推送模塊采用百度云推送。

        在消息推送模塊中,消息推送是指通過(guò)后臺(tái)將用戶(hù)強(qiáng)烈關(guān)心的信息主動(dòng)地發(fā)送給用戶(hù),可通過(guò)短信、即時(shí)信息(Instant Message, 如微信、釘釘?shù)龋⒎羌磿r(shí)消息(比如手機(jī)App中新聞資訊類(lèi)、活動(dòng)推送類(lèi)、產(chǎn)品推薦類(lèi)、系統(tǒng)功能類(lèi)的通知)等方式發(fā)送,其中短信的用戶(hù)查看率高,但價(jià)格昂貴,非即時(shí)消息成本次之,即時(shí)信息免費(fèi)。消息推送的實(shí)現(xiàn)有兩種主要方式,第一種方式是自己研發(fā),但由于研發(fā)成本較高,難度非常大,大多數(shù)App都會(huì)選擇使用第二種方式,即使用第三方工具進(jìn)行推送。本文采用百度云推送。百度云推送(Push)是百度云平臺(tái)向開(kāi)發(fā)者提供的消息推送服務(wù),通過(guò)云端與客戶(hù)端之間建立穩(wěn)定、可靠的長(zhǎng)連接來(lái)為開(kāi)發(fā)者提供向用戶(hù)端實(shí)時(shí)推送消息的服務(wù)。

        在數(shù)據(jù)庫(kù)監(jiān)聽(tīng)模塊中,需要實(shí)時(shí)監(jiān)控業(yè)務(wù)數(shù)據(jù)庫(kù)的變化,當(dāng)數(shù)據(jù)庫(kù)中用戶(hù)最關(guān)心的數(shù)據(jù)發(fā)生變化時(shí),要將相應(yīng)的變化發(fā)送給特定的人。監(jiān)控業(yè)務(wù)數(shù)據(jù)庫(kù)變化的方法有多種,一種方法是在數(shù)據(jù)庫(kù)增加觸發(fā)器(Trigger)。觸發(fā)器是由事件來(lái)觸發(fā)某個(gè)操作,這些事件包括INSERT語(yǔ)句、UPDATE語(yǔ)句和DELETE語(yǔ)句,當(dāng)數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行這些事件時(shí),會(huì)激活觸發(fā)其執(zhí)行相應(yīng)的操作。這種方法操作簡(jiǎn)單,但是會(huì)對(duì)原業(yè)務(wù)系統(tǒng)造成很大的影響,特別是性能壓力方面。第二種方法是通過(guò)第三方軟件平臺(tái),比如阿里巴巴的開(kāi)源框架Canal,監(jiān)控?cái)?shù)據(jù)庫(kù)的Binlog,進(jìn)而同步增量數(shù)據(jù)。這種方法對(duì)原業(yè)務(wù)系統(tǒng)的影響更小。Canal的工作原理是模擬MySQL Slave的交互協(xié)議向MySQL Mater發(fā)送Dump請(qǐng)求,MySQL Mater收到請(qǐng)求后,向Canal推送Binlog,然后Canal解析Binlog,再發(fā)送數(shù)據(jù)到存儲(chǔ)目的地,實(shí)現(xiàn)數(shù)據(jù)庫(kù)鏡像、數(shù)據(jù)庫(kù)實(shí)時(shí)備份、增量數(shù)據(jù)處理等。Canal的好處在于對(duì)業(yè)務(wù)代碼和數(shù)據(jù)庫(kù)沒(méi)有侵入,實(shí)時(shí)性也能做到準(zhǔn)實(shí)時(shí),因此是在很多企業(yè)中廣泛應(yīng)用的一種比較常見(jiàn)的數(shù)據(jù)同步方案。

        本文采用Canal監(jiān)控用戶(hù)關(guān)心的增量數(shù)據(jù),并將數(shù)據(jù)發(fā)送到消息隊(duì)列,然后通過(guò)百度云推送,發(fā)送給用戶(hù)。

        3.3? ?事實(shí)數(shù)據(jù)查詢(xún)服務(wù)

        事實(shí)數(shù)據(jù)查詢(xún)服務(wù)的主要功能是根據(jù)意圖和實(shí)體,查詢(xún)數(shù)據(jù)庫(kù)中用戶(hù)關(guān)心的實(shí)際數(shù)據(jù)(業(yè)務(wù)數(shù)據(jù)、存儲(chǔ)的數(shù)據(jù)),并將查詢(xún)結(jié)果反饋出去,其結(jié)構(gòu)如圖4所示。

        其中,SQL解析器根據(jù)意圖和實(shí)體,生成相應(yīng)的數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)句(SQL):意圖是指要查詢(xún)的表;實(shí)體(槽)是參數(shù),包括主鍵和需查詢(xún)的列名。以個(gè)體為中心的數(shù)據(jù)集市是一種數(shù)據(jù)倉(cāng)庫(kù),內(nèi)容是根據(jù)用戶(hù)的所有業(yè)務(wù)活動(dòng),使用ETL(Extract-Transform-Load)工具重新組織的業(yè)務(wù)數(shù)據(jù)。業(yè)務(wù)數(shù)據(jù)庫(kù)為關(guān)系型數(shù)據(jù)庫(kù),具體選擇為MySQL數(shù)據(jù)庫(kù)。

        在構(gòu)建以個(gè)體為中心的數(shù)據(jù)集市方面,由于業(yè)務(wù)數(shù)據(jù)庫(kù)邏輯復(fù)雜,且運(yùn)行穩(wěn)定,通過(guò)SQL解析器生成的SQL直接訪問(wèn)業(yè)務(wù)數(shù)據(jù)庫(kù),一方面會(huì)對(duì)原始業(yè)務(wù)造成很大的影響,另外一方面也會(huì)增加上游自然語(yǔ)言理解模塊的訓(xùn)練復(fù)雜度,因此需要將原始的業(yè)務(wù)數(shù)據(jù)庫(kù)通過(guò)ETL轉(zhuǎn)化為以主數(shù)據(jù)為中心的新型數(shù)據(jù)倉(cāng)庫(kù)。ETL將數(shù)據(jù)從來(lái)源端經(jīng)過(guò)抽?。‥xtract)、轉(zhuǎn)換(Transform)、加載(Load)到目的端。其中,Extract即數(shù)據(jù)抽取,就是把數(shù)據(jù)從數(shù)據(jù)源讀出來(lái);Transform即數(shù)據(jù)轉(zhuǎn)換,就是把數(shù)據(jù)轉(zhuǎn)換為特定的格式;Load即數(shù)據(jù)加載,把處理后的數(shù)據(jù)加載到目標(biāo)處。

        在構(gòu)建以個(gè)體為中心的數(shù)據(jù)集市中,主數(shù)據(jù)(Master Data)是指具有高業(yè)務(wù)價(jià)值的、可以在企業(yè)內(nèi)跨越各個(gè)業(yè)務(wù)部門(mén)被重復(fù)使用的數(shù)據(jù),是單一、準(zhǔn)確、權(quán)威的數(shù)據(jù)來(lái)源,比如教學(xué)系統(tǒng)中的學(xué)生、老師等。建立以主數(shù)據(jù)為中心的數(shù)據(jù)庫(kù)是指首先識(shí)別出主數(shù)據(jù),然后將所有的業(yè)務(wù)數(shù)據(jù)同主數(shù)據(jù)直接關(guān)聯(lián)。以學(xué)校管理系統(tǒng)中的學(xué)生為例,其數(shù)據(jù)庫(kù)ER圖如圖5所示。

        學(xué)生是學(xué)校中各個(gè)部門(mén)都要使用的基礎(chǔ)數(shù)據(jù),必須要保證準(zhǔn)確唯一,通過(guò)學(xué)號(hào)可以確定唯一的學(xué)生。學(xué)生會(huì)涉及選課、住宿、考試、食堂消費(fèi)等活動(dòng),這些活動(dòng)的數(shù)據(jù)即是業(yè)務(wù)數(shù)據(jù),所有這些業(yè)務(wù)數(shù)據(jù)都可以通過(guò)學(xué)號(hào)與學(xué)生關(guān)聯(lián)起來(lái)。這樣在對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)時(shí),只需要知道學(xué)號(hào)以及要查詢(xún)的具體內(nèi)容(選課、考試、住宿、食堂),即可由SQL解析器生成相應(yīng)的SQL,查詢(xún)得到相應(yīng)的結(jié)果。這樣的好處是可以將原始的業(yè)務(wù)數(shù)據(jù)同對(duì)話(huà)機(jī)器人的數(shù)據(jù)庫(kù)進(jìn)行隔離,提高了系統(tǒng)的穩(wěn)定性和安全性;另一方面,在自然語(yǔ)言理解方面,可以更明確地定義意圖和相關(guān)的語(yǔ)義,在不需要了解底層數(shù)據(jù)庫(kù)結(jié)構(gòu)的情況下得到相應(yīng)信息。

        3.4? ?分析數(shù)據(jù)查詢(xún)服務(wù)

        分析數(shù)據(jù)查詢(xún)服務(wù)的主要功能是根據(jù)意圖和實(shí)體,查詢(xún)數(shù)據(jù)庫(kù)中用戶(hù)關(guān)心的分析型結(jié)果,并將查詢(xún)結(jié)果反饋出去。其結(jié)構(gòu)如圖6所示。

        其中,SQL解析器和業(yè)務(wù)數(shù)據(jù)庫(kù)內(nèi)容與事實(shí)數(shù)據(jù)查詢(xún)服務(wù)中的內(nèi)容相同;分析型多維數(shù)據(jù)倉(cāng)庫(kù)是將業(yè)務(wù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)經(jīng)過(guò)ETL過(guò)程整理得到的多維數(shù)據(jù)倉(cāng)庫(kù)模型。本文選用Apache Kylin對(duì)多維數(shù)據(jù)倉(cāng)庫(kù)中的統(tǒng)計(jì)結(jié)果進(jìn)行提前計(jì)算,以備查詢(xún)需要。

        在構(gòu)建分析型多維數(shù)據(jù)倉(cāng)庫(kù)方面,用戶(hù)對(duì)數(shù)據(jù)庫(kù)的查詢(xún)并不都是對(duì)某一條記錄的查詢(xún),有時(shí)查詢(xún)的內(nèi)容是統(tǒng)計(jì)結(jié)果,比如某門(mén)課的學(xué)生人數(shù)是多少,食堂里每人的平均消費(fèi)是多少等,本文稱(chēng)這類(lèi)查詢(xún)?yōu)榉治鲂筒樵?xún)。同理,基于數(shù)據(jù)安全性、業(yè)務(wù)數(shù)據(jù)庫(kù)的壓力以及查詢(xún)的效率考慮,需要通過(guò)ETL將業(yè)務(wù)數(shù)據(jù)庫(kù)中相對(duì)分散和孤立的數(shù)據(jù)轉(zhuǎn)換到分析型多維數(shù)據(jù)倉(cāng)庫(kù)中。

        本文的多維數(shù)據(jù)倉(cāng)庫(kù)具體采用星型模式。星型模式的核心是一個(gè)大的中心表(事實(shí)表)和一組小的附屬表(維表)。其中,事實(shí)表用來(lái)記錄具體事件,包含每個(gè)事件的具體要素和具體發(fā)生的事情,主要包含維和度量?jī)煞矫娴男畔ⅰ>S的具體描述信息記錄在維表,事實(shí)表中的維屬性只是一個(gè)關(guān)聯(lián)到維表的鍵,并不記錄具體信息。度量記錄事件的相應(yīng)數(shù)值,比如商品銷(xiāo)售中產(chǎn)品的銷(xiāo)售數(shù)量、銷(xiāo)售金額等。某零售行業(yè)的數(shù)據(jù)倉(cāng)庫(kù)星型模式示例如圖7所示。

        其中銷(xiāo)售為事實(shí)表,時(shí)間、物品、品牌和商店為維度表,這樣對(duì)于銷(xiāo)售事實(shí)表來(lái)說(shuō),時(shí)間、物品、品牌和商店是維,銷(xiāo)售金額和銷(xiāo)售個(gè)數(shù)是度量值。

        采用星型模式這種多維數(shù)據(jù)倉(cāng)庫(kù)模型的優(yōu)點(diǎn)是其面向分析優(yōu)化的數(shù)據(jù)組織和存儲(chǔ)模式。由于在實(shí)時(shí)查詢(xún)統(tǒng)計(jì)信息時(shí),直接計(jì)算速度比較慢,本文選擇Apache Kylin對(duì)多維數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行管理和計(jì)算。Apache Kylin是一個(gè)開(kāi)源的、分布式的分析型數(shù)據(jù)倉(cāng)庫(kù),提供Hadoop/Spark之上的SQL查詢(xún)接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù),它能在亞秒內(nèi)查詢(xún)巨大的表。

        4? ?結(jié)論(Conclusion)

        本文提出了一種數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人的技術(shù)實(shí)現(xiàn)方案,可以實(shí)現(xiàn)用戶(hù)通過(guò)語(yǔ)音或自然語(yǔ)言文本同對(duì)話(huà)機(jī)器人溝通,查詢(xún)數(shù)據(jù)庫(kù)中的事實(shí)記錄和統(tǒng)計(jì)結(jié)果,并在用戶(hù)關(guān)注的信息發(fā)生改變時(shí)主動(dòng)通知用戶(hù)的功能。該技術(shù)方案的主要思想是立足于“以用戶(hù)為中心”的服務(wù)理念,借鑒語(yǔ)音識(shí)別、自然語(yǔ)言處理、消息推送、數(shù)據(jù)庫(kù)設(shè)計(jì)和優(yōu)化方面的先進(jìn)技術(shù)和方案,整合成一個(gè)對(duì)用戶(hù)更友好的平臺(tái),幫助用戶(hù)便捷地獲得高價(jià)值的信息。針對(duì)語(yǔ)音識(shí)別、自然語(yǔ)言理解、消息推送和數(shù)據(jù)庫(kù)優(yōu)化方面的技術(shù)難點(diǎn),本技術(shù)方案分別采用了百度語(yǔ)音識(shí)別、Google API.AI、百度云推送、阿里巴巴Canal、Apache Kylin等成熟的云服務(wù)、技術(shù)和平臺(tái),在滿(mǎn)足功能的同時(shí),也能夠?qū)崿F(xiàn)可靠性、可用性、魯棒性以及擴(kuò)展性方面的需求。

        不過(guò),現(xiàn)有的技術(shù)方案還只是把查詢(xún)結(jié)果或者推送的消息直接反饋給用戶(hù),沒(méi)能實(shí)現(xiàn)以更自然的語(yǔ)音或者自然語(yǔ)言文本的方式告知用戶(hù),這涉及自然語(yǔ)言生成相關(guān)的技術(shù)。另一方面,本文提出的是一種技術(shù)實(shí)現(xiàn)方案,還沒(méi)有針對(duì)一個(gè)行業(yè)具體落地。因此,下一步我們計(jì)劃針對(duì)高校的學(xué)生,實(shí)現(xiàn)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的對(duì)話(huà)機(jī)器人,以滿(mǎn)足其對(duì)學(xué)習(xí)、考試方面信息的查詢(xún)需求。

        參考文獻(xiàn)(References)

        [1] 侯佳騰,常薇,林冠峰.基于自然語(yǔ)言理解技術(shù)的智能客服機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2019(23): 238-240.

        [2] Hafezi Manshadi, Mohammad. Dealing with quantifier scope ambiguity in natural language understanding[D]. Rochester: University of Rochester, 2014.

        [3] 王浩暢,李斌.聊天機(jī)器人系統(tǒng)研究進(jìn)展[J].計(jì)算機(jī)應(yīng)用與軟件,2018,35(12):1-6;89.

        [4] 夏艷輝,聶百勝,胡金鳳.中文開(kāi)放域問(wèn)答系統(tǒng)的問(wèn)題分類(lèi)研究[J].價(jià)值工程,2019,38(016):147-149.

        [5] 曹鵬飛,李杰,楊君.云環(huán)境下實(shí)時(shí)消息推送服務(wù)構(gòu)建研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2020,30(03):204-208.

        [6] 關(guān)慶余,李鴻彬,于波.MQTT協(xié)議在Android平臺(tái)上的研究與應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(04):197-200;196.

        [7] 連樂(lè),付杰.無(wú)線(xiàn)監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)處理方法研究[J].計(jì)算機(jī)科學(xué),2018,45(0z1):580-582.

        [8] 申德榮,于戈,王習(xí)特,等.支持大數(shù)據(jù)管理的NoSQL系統(tǒng)研究綜述[J].軟件學(xué)報(bào),2013(08):96-113.

        [9] 程建軍,胡立志.關(guān)于深度學(xué)習(xí)的語(yǔ)音識(shí)別應(yīng)用研究[J].科技經(jīng)濟(jì)導(dǎo)刊,2019,27(12):195.

        [10] 侯沐瀾.面向自然語(yǔ)言理解的新槽值問(wèn)題研究與應(yīng)用[D].北京:北京郵電大學(xué),2019.

        作者簡(jiǎn)介:

        來(lái)關(guān)軍(1984-),男,碩士,中級(jí)研究員.研究領(lǐng)域:大數(shù)據(jù)分析,人工智能.

        于? ?丹(1976-),女,博士,研究員.研究領(lǐng)域:數(shù)據(jù)分析與挖掘,人工智能.

        閆曉宇(1995-),女,碩士,初級(jí)研究員.研究領(lǐng)域:自然語(yǔ)言處理,對(duì)話(huà)系統(tǒng).

        肖? ?鵬(1993-),男,碩士,初級(jí)研究員.研究領(lǐng)域:計(jì)算機(jī)視覺(jué),自然語(yǔ)言處理.

        草逼视频污的网站免费| 免费一区啪啪视频| 女人被躁到高潮嗷嗷叫免费软| 丝袜美腿在线观看视频| 美女网站免费观看视频| 国产亚洲人成a在线v网站| 亚洲国产精品一区二区第四页 | 国产精品亚洲欧美大片在线看 | 麻豆免费观看高清完整视频 | 欧美人妻精品一区二区三区 | 久久精品中文少妇内射| 亚洲毛片αv无线播放一区| 国产成人AV无码精品无毒| 日韩国产自拍成人在线| 婷婷色婷婷开心五月四| 99久久精品午夜一区二区| 看曰本女人大战黑人视频| 91精品国产91久久久无码95| 色婷婷久久99综合精品jk白丝| 免费看黄视频亚洲网站| 国产爆乳无码一区二区麻豆| 鲁鲁鲁爽爽爽在线视频观看| 欧美午夜a级精美理论片| 国产一极毛片| 国产麻豆放荡av激情演绎| 蜜桃网站免费在线观看视频 | aaa级久久久精品无码片| 精品人伦一区二区三区蜜桃麻豆 | 国产成人精品三级在线影院| 日韩精品一区二区三区四区五区六| 国产一品二品精品在线| 国产亚洲欧美精品久久久| 国产免费一级高清淫日本片| 亚洲av高清资源在线观看三区| 美女主播网红视频福利一区二区| 西西大胆午夜人体视频| 欧美三级一区| 国产精品麻豆A在线播放| 国产精品熟女一区二区三区| 国产午夜福利片| 亚洲综合中文字幕乱码在线|