国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于依存關(guān)系的自然語言可視化仿真系統(tǒng)

2021-09-28 10:17:02袁雨軒陳科淇
計算機技術(shù)與發(fā)展 2021年9期
關(guān)鍵詞:復(fù)句例句實體

袁雨軒,李 放,陳科淇,韓 正

(1.大連東軟信息學院 數(shù)字藝術(shù)與設(shè)計學院,遼寧 大連 116023;2.華威大學 華威商學院,考文垂 CV4 7AL)

0 引 言

自然語言處理技術(shù)是在程序設(shè)計中常用的人工智能算法,也是人工智能的熱點研究方向。主要應(yīng)用場景包括個性化推薦、搜索糾錯等。神經(jīng)網(wǎng)絡(luò)是自然語言處理以及人工智能領(lǐng)域最重要的方法之一。為了讓計算機理解自然世界的知識,可以根據(jù)具體研究對象的特征構(gòu)建不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),如適用于圖像處理的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)、適用于文本和序列數(shù)據(jù)的遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)和長短期記憶網(wǎng)絡(luò)(long short-term memory neural networks,LSTM)等[1-2]。盡管這些網(wǎng)絡(luò)結(jié)構(gòu)在處理不同的任務(wù)時表現(xiàn)出不同的性能,對于具體任務(wù)仍很難確定使用哪種網(wǎng)絡(luò)結(jié)構(gòu)[3],所使用模型的訓(xùn)練過程同樣需要耗費大量時間。為了覆蓋更多的語言場景,本系統(tǒng)依賴百度AI開放平臺的自然語言處理技術(shù)接口。百度AI開放平臺提供了全面的語言處理基礎(chǔ)能力和語言處理應(yīng)用技術(shù),并以標準化的接口封裝。且該平臺的訓(xùn)練語料以中文為主,對中文輸入的接受能力較強。

對自然語言處理技術(shù)來說,其最細的劃分粒度是詞語。而在計算機仿真領(lǐng)域中可以使用三維模型、圖片等來模擬名詞,使用動畫、聲音等交互系統(tǒng)模擬動詞。由于中文的能指極其復(fù)雜,在自然語言處理技術(shù)難以解決的詞語多義性問題上更是雪上加霜。文獻[4]提出了中文句式的三個層級:(1)表層:形式結(jié)構(gòu),語言中語法項的線性配列式。如主語+謂語構(gòu)成SV句式等。(2)中介層:表現(xiàn)法,語言中線性配列的特定樣式。如抒情、描寫手法等。(3)深層思維方式:反映說話者心理的主體意識。并提出深層思維方式的表達注重于主觀感受的抒發(fā),即為了滿足句子表層結(jié)構(gòu)的語法在表達中的正確性,其深層思維方式可以不嚴格滿足語法規(guī)則。由于深層思維方式不執(zhí)著于邏輯和形式結(jié)構(gòu)規(guī)范,其表達與所指的聯(lián)系也更緊密。

基于以上分析,文中將深入討論句子中不同實體之間的依存關(guān)系,排除中介層和表層結(jié)構(gòu)中的修飾成分,從而得到易于計算機理解句子深層邏輯的輸入。并提出了一種可視化的虛擬仿真解決方案,用實體所指代的對象代替中文復(fù)雜的能指,并以視頻的形式可視化呈現(xiàn)。

1 系統(tǒng)開發(fā)中的關(guān)鍵技術(shù)

1.1 中文依存關(guān)系的研究

聚類(cluster)是一組數(shù)據(jù)對象的集合,在文中對應(yīng)著人們使用自然語言輸入、不利于計算機理解的句子。文獻[5]在引用中總結(jié)到,聚類的基本劃分方法存在需要事先給出樣例的缺陷。而人工定義的語法規(guī)則也是難以窮舉、無法事先給出的。同時,中文的依存句法分析區(qū)別于英文,需要對句子進行分詞[6]。對過于復(fù)雜而無法進行預(yù)處理的數(shù)據(jù)可以考慮使用基于深度學習算法的模型。百度AI依存句法分析接口提供了使用百度日常搜索內(nèi)容做訓(xùn)練數(shù)據(jù)的Query模型,該模型擅長對口語Query句式的處理。以及來源于全網(wǎng)網(wǎng)頁數(shù)據(jù)的Web模型,該模型偏向表達規(guī)整的書面語法。以上模型可以解析出共34種依存關(guān)系。對此可以根據(jù)集合學習的思想,構(gòu)建多個對不同數(shù)據(jù)的處理效果有明顯偏好的模型,整合出一個更強大的模型做最后決策。

為了研究解析出的不同依存關(guān)系對句子深層邏輯的影響程度,實驗1.2將使用百度AI的短文本相似度接口,采用CNN模型驗證去除不同依存關(guān)系后對句子結(jié)構(gòu)的影響,相比于該接口提供的詞袋模型(bag-of-words model,BOW)和RNN模型,CNN模型的顯著特點是對序列輸入敏感,但是語義泛化能力較弱。本實驗更關(guān)注實體之間的邏輯,在對比實驗的過程中僅去掉某一個依存關(guān)系對應(yīng)的實體,因此對詞語泛化能力的要求較低,且CNN模型對句子保留的局部特征更敏感,因此選擇CNN模型可以在實驗中獲得更理想的結(jié)果。

1.2 實 驗

中文的語言特點決定了多數(shù)的語言場景需要以復(fù)句的形式完成。處理復(fù)句的難點在于各個分句間語義關(guān)系的準確識別。文獻[7]提出了一種基于句內(nèi)注意力機制的多路CNN網(wǎng)絡(luò)結(jié)構(gòu),可以識別分句間的關(guān)聯(lián)特征,以及正確識別復(fù)句的邏輯關(guān)系。文中虛擬仿真工作產(chǎn)生的效果主要來自各分句中的名詞模型,其中的邏輯關(guān)系由該分句中的謂語提供,并且中文的表達習慣可以保證句子輸入的語序與視頻播放的時順相對應(yīng),因此各分句之間可獨立看待。為了研究使用自然語言輸入的單個句子中詞語之間的依存關(guān)系,以“袁明吃蛋撻”為例,表1將展示該例句在去掉不同依存關(guān)系所對應(yīng)的詞語后與原句子的短文本相似度,該數(shù)值介于[0,1]之間,反映了被去掉的依存關(guān)系對句子邏輯的影響程度。首先排除由復(fù)句產(chǎn)生,或無實際意義的虛詞產(chǎn)生的依存關(guān)系,如標點符號、關(guān)聯(lián)詞等共計17種。

表1 語義相似度對比實驗

1.2.1 討 論

相似度是一個十分復(fù)雜的概念[8]。根據(jù)實驗序號2可知,兩個完全相同的句子相似度為1,序號20和21是兩個與原文無關(guān)的句子,其相似度在本實驗中的樣例均小于0.3。序號19介賓關(guān)系是另一個相似度接近0.3的樣本,原因是丟失掉賓語后與原句本身差異過大。對以上結(jié)果可暫時作如下假設(shè):短文本相似度接近0.3甚至更小的句子與原文的出入較大,故應(yīng)取大于相似度0.3的結(jié)果做討論。

文獻[9]在文本相似度計算中提到了句子的關(guān)鍵成分與修飾成分的概念,而人們往往從關(guān)鍵成分就可以了解一個句子的大概意思。在介于(0.9,1)區(qū)間內(nèi)存在十種依存關(guān)系,除核心關(guān)系外,其他的依存關(guān)系均是對句子邏輯影響較小的結(jié)構(gòu)成分或修飾成分。以上兩種成分的存在保證了句子表層語法規(guī)則的正確。以“地”字結(jié)構(gòu)為例,其語法解析樹如圖1所示。該依存關(guān)系僅修飾動詞“吃”。去掉修飾成分對句子要表達的深層邏輯影響很小,此句子的動畫依然可以由“袁明吃蛋撻”來表示。對此結(jié)果不妨假設(shè)在(0.9,1)區(qū)間內(nèi)的修飾成分在生成動畫時可以忽略。

圖1 例句“袁明瘋狂地吃蛋撻”

文獻[10]中的例句驗證了,在以中文復(fù)句輸入所返回的語法生成樹中,關(guān)系詞都是動詞。關(guān)系詞在復(fù)句中常作為分句的核心節(jié)點出現(xiàn),因此本實驗的單句中核心節(jié)點的作用類同于復(fù)句中的關(guān)系詞。

對于圖2所示的核心關(guān)系需要特別討論,因為動詞“吃”是SVO句式的關(guān)鍵成分而不是修飾成分,顯然與上文的假設(shè)相矛盾。這是因為本實驗使用的CNN模型雖然對局部特征敏感,但是“袁明”和“蛋撻”之間沒有任何成分解釋兩個詞之間的邏輯關(guān)系,于是該模型默認把“袁明”作為修飾成分,原句的意思被泛化成圖3描述的“袁明牌蛋撻”了。CNN模型在卷積層內(nèi)部狀況為詞向量的拼接。詞向量是計算機理解詞匯的媒介,這種表示方式是將詞語映射到一個高維且稠密的向量空間中,用空間距離的形式反映兩個詞之間的系。文獻[11]提到,將詞語在計算機中向量化表示的常用方法有one-hot、詞向量和Word2vec模型等。雖然百度AI平臺沒有描述短文本相似度接口使用的CNN模型中的詞向量在卷積層內(nèi)部的具體情況,但該平臺語言處理基礎(chǔ)能力的SDK中也提供了詞向量表示接口。詞向量模型訓(xùn)練過程的初始狀態(tài)下,對語料庫內(nèi)包含的所有詞向量隨機賦初值,按照詞語在樣本句子中的位置相應(yīng)地調(diào)整詞向量在空間中的位置,以“袁明吃蛋撻”為例句訓(xùn)練詞向量,該句子由人名+動作+賓語組成。如圖4所示,當再次輸入“韓明”和“蛋撻”時,“吃”字在空間中的優(yōu)先級會小于其他的動詞如“買”。輸入“李明”和“吃”之后“蛋撻”的優(yōu)先級同樣會高于其他名詞。類似的,使用訓(xùn)練集中的句子不斷調(diào)整詞向量的位置,多次訓(xùn)練后的詞向量可以作為特征值用于在計算機中表示該詞語。

圖2 例句“袁明吃蛋撻”

圖3 例句“袁明蛋撻”

圖4 例句“袁明吃蛋撻”的詞向量訓(xùn)練

基于以上結(jié)論,對例句詞語分別調(diào)用百度AI的詞向量表示接口,返回類型為1024維空間大小的詞向量,其中對“袁明”的返回值為[-0.074 207 4,-0.458 546,-0.010 252 2,0.010 083 9,…],對“吃”的返回值為[0.015 029 4,1.488 3,-0.482 325,-0.740 492,…],對“蛋撻”的返回值為[0.015 029 4,1.488 3,-0.482 325,-0.740 492,…]。CNN模型檢測文本相似度方法的內(nèi)部情況是將以上三個詞向量拼接成矩陣表示,在池化層完成對數(shù)據(jù)降維的工作[12]。文獻[13]詳細描述了目前主流的池化方法:

(1)平均池,選擇池窗口中的平均值表示池區(qū)信息。

(2)最大池,選擇池窗口中的最大值,該方法可以獲得池區(qū)的最優(yōu)值,也是最常用的方法。

(3)K-max池,選擇池窗口中的最大K值,該方法是最大池方法的擴展,可以更好地保持文本特征。

(4)多池,該方法是針對文本任務(wù)的特點,獲得文本的一維向量表示,并在一維向量上使用其他池化方法分段。

該方法的優(yōu)點是能保留一些詞序信息,可以視為最大池的一種變體。本項目對于文本相似度接口返回的數(shù)值為離散數(shù)據(jù),且難以描述實際意義,可以考慮使用聚類方法處理。參考多池的分段方法,研究返回的三個詞向量之間的關(guān)系可以通過計算歐氏距離表示詞向量在二維空間下的位置關(guān)系,其中D為絕對距離,X,Y為實體,x,y為特征值,計算方法如下:

最終計算“袁明”到“蛋撻”的距離為17.433 217 41,句子“袁明吃蛋撻”的距離之和為39.262 644 02。另一個例子,“袁明跳蛋撻”是一句顯然不符合表達習慣的句子,此句子與“袁明蛋撻”的相似度為0.767 38,且符合上一節(jié)中介值于(0.3,0.9)之間的假設(shè),這個句子的距離之和為46.659 304 67。將以上距離關(guān)系映射到二維空間下的表示如圖5所示,由于詞向量的特征值僅代表在向量空間下的絕對位置,因此該坐標系下的單位僅作運算,無實際意義。

圖5 詞向量在二維空間下的映射

由數(shù)據(jù)降維后的結(jié)果可見,“吃”字對卷積運算的結(jié)果影響較小,以上結(jié)果是因為CNN模型運算詞向量時對特征敏感而本例句過于簡單所導(dǎo)致,所以為了保持句子的完整結(jié)構(gòu),核心關(guān)系應(yīng)作為特例保留。

1.2.2 結(jié) 論

基于上文的實驗,文本相似度處于(0.3,0.9)區(qū)間的依存關(guān)系有主謂關(guān)系、介賓關(guān)系和動賓關(guān)系以及做特例的核心四種依存關(guān)系作為句子的關(guān)鍵成分,相似度同樣處于(0.3,0.9)區(qū)間的處所關(guān)系、并列關(guān)系、數(shù)量關(guān)系和“被”字結(jié)構(gòu)是對句子邏輯影響比較大的修飾成分或結(jié)構(gòu)成分。利用已經(jīng)確定好的八種重要的依存關(guān)系,可以重新組合出更接近句子深層含義的SVO句式。在不改變句子本身邏輯的前提下,去掉盡可能多無需以動畫展示的修飾成分,對第二節(jié)中生成動畫的工作顯然是更友好的。

2 系統(tǒng)的設(shè)計與實現(xiàn)

2.1 系統(tǒng)架構(gòu)設(shè)計

基于依存關(guān)系的自然語言可視化仿真系統(tǒng)使用C/S分離式架構(gòu)設(shè)計,其時序圖如圖6所示。使用.net框架中的TCP協(xié)議通信,分離式架構(gòu)的優(yōu)點是可以方便本系統(tǒng)在應(yīng)用層面開發(fā)時的擴展[14],例如將模型資源保存在服務(wù)器上的數(shù)據(jù)庫中以減少客戶端資源的使用,以及在不修改客戶端的條件下更新數(shù)據(jù)。本系統(tǒng)的核心問題是對以上依存關(guān)系合理性的驗證,故暫時不考慮在架構(gòu)上做性能優(yōu)化。

圖6 UML序列圖

2.2 服務(wù)器的系統(tǒng)開發(fā)

服務(wù)器的開發(fā)需要調(diào)用百度AI開放平臺的自然語言處理接口。使用前需要在官方網(wǎng)站申請API_KEY、SECRET_KEY和APPID并下載C#平臺的SDK,在Visual Studio中新建項目,添加對SDK中類庫的引用,并創(chuàng)建InputHandle類和NetWork類。調(diào)用接口時的請求文本應(yīng)采用GBK編碼,而此編碼在.NET Core平臺上不可使用。在程序啟動時注冊RegisterProvider能提供平臺不可使用的編碼格式,具體代碼如下:

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

System.Text.Encoding.GetEncoding("GB2312");

2.2.1 InputHandle類

InputHandle類包含了調(diào)用自然語言處理接口和聲明Json解析的方法。首先,將輸入的句子傳入到依存句法分析方法中,使用正則表達式解析返回的Json結(jié)果,并放入到如下格式的結(jié)構(gòu)體數(shù)組中。

public struct Word{

public int head;//頭節(jié)點

public string word;//詞

public int id;//節(jié)點編號

public string deprel;//關(guān)系

};

根據(jù)此結(jié)構(gòu)體數(shù)組,可以獲得一棵有序的語法解析樹,使用Equals()方法判斷結(jié)構(gòu)體中deprel的取值。關(guān)鍵代碼如下:

string Subject,Verb,Object;

foreach(Word w in Words) {

if (Equals(w.deprel,"SBV") Subject =w .word;

if (Equals(w.deprel,"HED") Verb = w.word;

if (Equals(w.deprel,"QUN") Verb = w.word;

if (Equals(w.deprel,"BEI") Verb = w.word;

if (Equals(w.deprel,"COO") Object = w.word;

if (Equals(w.deprel,"VOB") Object = w.word;

if (Equals(w.deprel,"POB") Object = w.word;

if (Equals(w.deprel,"LOC") Object = w.word;

}

將以上代碼賦值后的Subject、Verb、Object變量有序地存入字符串數(shù)組,此方法封裝到DepPraseHandle類中,并將字符串數(shù)組作為參數(shù)傳遞給NetWork類。

2.2.2 NetWork類

對于服務(wù)器和客戶端之間的通信問題,本系統(tǒng)采用.net基于套接字為TCP協(xié)議擴展的TcpClient類和TcpListener類共同實現(xiàn)。TcpListener類可以偵聽來自TCP網(wǎng)絡(luò)客戶端的連接。由于TCP協(xié)議是以穩(wěn)定字節(jié)流的形式將數(shù)據(jù)在網(wǎng)絡(luò)間傳輸[15],TcpClient類中的GetStream()方法可以返回用于發(fā)送和接收的網(wǎng)絡(luò)流。對于字節(jié)類型可以使用BinaryWriter類和BinaryReader類共同實現(xiàn)將基元類型讀取和寫入的二進制值的操作,以上提及的兩個類位于命名空間System.IO下。創(chuàng)建ReceiveMessage()方法,包含使用BinaryReader讀取到網(wǎng)絡(luò)流中客戶端發(fā)送的句子,并作為參數(shù)按上文所述的順序調(diào)用InputHandle類中的方法,最終根據(jù)返回的消息找到模型在服務(wù)器上保存的位置,并使用FileStream類的方法寫入流數(shù)據(jù),關(guān)鍵代碼如下:

public byte[] FileReader(string path)

{

FileStream fileStream = File.Open(path, FileMode.Open);

Console.WriteLine(path);

byte[] array = new byte[fileStream.Length];

fileStream.Read(array, 0, array.Length);

fileStream.Close();

return array;

}

創(chuàng)建SendMessage()方法,包含將返回的字節(jié)數(shù)組使用BinaryWriter.Write()方法寫入到網(wǎng)絡(luò)流NetWorkStream中。其中NetWorkStream位于命名空間System.Net.Sockets下。將上述方法封裝于NetWork類,最終的服務(wù)器UML類圖如圖7所示。

圖7 服務(wù)器UML類圖

2.3 客戶端的系統(tǒng)開發(fā)

2.3.1 命名實體處理

在Unity3D中將每個實體模型制作為GameObject類型的預(yù)制體,并以實體的含義命名后保存在數(shù)據(jù)庫中。

(1)名詞類。

由于需要表示的動畫不僅是由模型組成,在Unity3D中實現(xiàn)名詞還可以意味著動畫、天空盒子、粒子系統(tǒng)、聲音、視頻等功能,故需要根據(jù)詞語創(chuàng)建模型,并對非模型類的命名實體掛載一個繼承自MonoBehaviour類的腳本,并在Start()方法中調(diào)用不同組件的Play()方法,以便在生命周期開始時執(zhí)行。

(2)動詞類。

動詞類在中文的單句中作為語法樹的根節(jié)點或度大于一的節(jié)點控制前后名詞類的邏輯,不僅需要訪問名詞類,還要根據(jù)動詞本身的意思讓名詞類執(zhí)行不同的操作如的開始、結(jié)束、改變位置、復(fù)制多個等,在動詞類中創(chuàng)建FunSubject()、FunVerb()、FunObject()三個方法,分別對應(yīng)著與名詞的主動關(guān)系、動作和被動關(guān)系。通常情況下,數(shù)量關(guān)系、處所關(guān)系等修飾成分充當謂語成分時對應(yīng)著FunObject()方法的實體,表示賓語被動產(chǎn)生的動作。而核心HED往往由動詞產(chǎn)生,對應(yīng)著FunSubject()方法,表示主動發(fā)起的動作。以FunSubject()方法為例,獲取名詞所對應(yīng)命名實體的代碼如下:

public Inventory Bag;

public GameObject Mod;

public string Subject;

foreach (GameObject b in Bag. itemList){

if (Equals(b.name,Subject) == true)Mod = b;

}

獲取到模型后,首先要分析該動詞的含義,在FunVerb()方法中以低代碼化的方式添加簡單的代碼片段。例如下面的代碼為動詞“害怕”添加了音頻并向后移動了主語模型的位置。

public void FunVerb(){

Instantiate(audioSource);

Mod.transform.position += new Vector3(0, 0, -1);

}

2.3.2 背包系統(tǒng)實現(xiàn)

根據(jù)系統(tǒng)架構(gòu)設(shè)計,客戶端需要接收服務(wù)器發(fā)送的字節(jié)數(shù)組。并按照字節(jié)數(shù)組中的順序在客戶端寫入文件并序列化地生成模型,可以考慮使用GameObject類型的泛型列表保存模型,這種方法的優(yōu)點是易于根據(jù)名稱隨機讀取模型。

創(chuàng)建背包的方法如下:

public class Inventory : ScriptableObject{

ListitemBag = new List();

}

2.3.3 控制器設(shè)計

首先創(chuàng)建Receive()方法接收到服務(wù)器以字節(jié)流格式發(fā)送的命名實體,其關(guān)鍵代碼如下:

publicstring Receive()

{

byte[] recvBuf = new byte[102400];

networkStream.ReadTimeout = 2000;

int bytesRead = networkStream.Read(recvBuf, 0, 102400);

if (bytesRead > 0)

string message = Encoding.UTF8.GetString(recvBuf);

return message;

}

創(chuàng)建FileWrite()方法,用于將字節(jié)數(shù)組寫入文件。在寫入時需要注意判斷服務(wù)器寫入文件的順序,可以使用標簽或分批發(fā)送的方式區(qū)分好不同實體,下面以動詞為例,寫入方法如下:

public void FileWrite(string message)

{

int a = message.IndexOf("%YAML 1.1");

//在a下標的100位之后繼續(xù)尋找下一個文件的報頭

int b = message.IndexOf("%YAML 1.1", a + 100);

string verb = message.Substring(a, b - a);

FileStream vFile = new FileStream(@"AssetsResourcesVerb.prefab", FileMode.Create ,FileAccess.ReadWrite);

StreamWriter Vwriter = new StreamWriter(vFile);

Vwriter.WriteLine(verb);

Vwriter.Close();

}

若制作的實體僅由Unity3D自帶的模型組成,可以直接使用UTF-8格式編碼后使用StreamWriter以字符串的形式寫入文件,這種方法相比直接操作字節(jié)而言更易于計算。否則需要把制作的命名實體及相關(guān)資源以unitypackage包的形式導(dǎo)出,使用BinaryWriter將二進制值寫入文件后導(dǎo)入項目。最終將生成的實體放入背包中,方法如下:

Bag.itemList.Add(Resources.Load("Verb") as GameObject);

在執(zhí)行了以上部分的代碼后,此時已獲取到句子中涉及到的所有模型和對應(yīng)關(guān)系,名詞類模型包含了具體的屬性,動詞類模型可以獲取到名詞的屬性并執(zhí)行相應(yīng)的事件。要實現(xiàn)動畫的播放,則只需要依次從背包中取出對應(yīng)的實體并實例化在場景中即可,關(guān)鍵代碼如下:

public Inventory Bag;

void FindVerbsInBag () {

foreach(GameObject go in verbBag.itemList){

if (go.name == Subject)Instantiate(go);

if (go.name == Verb)Instantiate(go);

if (go.name ==Object)Instantiate(go);

}}

在控制器腳本的生命周期結(jié)束時,還應(yīng)添加資源銷毀機制并清空背包,避免該場景在下一次激活時執(zhí)行寫入或查找操作出現(xiàn)異常,可以參考如下代碼:

private void OnDestroy(){

File.Delete("Assets/Resources/Verb.prefab");

File.Delete("Assets/Resources/Subject.prefab");

File.Delete("Assets/Resources/Object.prefab");

bag.itemList.Clear();

}

該方法在添加時需要慎重考慮,因為在復(fù)句或較復(fù)雜句式的處理中,該模型與下一個句子可能仍然存有聯(lián)系。應(yīng)考慮具體需求靈活變動,例如在銷毀前增加條件判斷或創(chuàng)建緩存機制等。

3 系統(tǒng)測試

以“袁明害怕小狗”,“袁明坐飛機去上?!睘槔?,為這句話中出現(xiàn)的命名實體制作相應(yīng)的模型,這兩句話在本系統(tǒng)中的運行效果如下:圖8(a)按順序出現(xiàn)了模型,并播放了聲音表示害怕,同時人物的模型向后移動了一段距離。圖8(b)按順序出現(xiàn)了模型,并在視頻播放完成后更換了天空。

(a)例句“袁明害怕小狗”

(b)例句“袁明坐飛機去上?!?/p>

在不銷毀以上模型的條件下,輸入一個重新組合的句子“袁明到上海,小狗挨著香蕉”,再次制作命名實體“香蕉”對應(yīng)的模型,添加動詞“到”和“挨著”,并識別逗號用做分隔符以兩個分句的形式連續(xù)調(diào)用上述方法。本系統(tǒng)將以兩個單句的效果播放動畫,最終效果如圖9所示。

4 結(jié)束語

在現(xiàn)實生活中,人們通常更加熟悉該詞語本身所指代的對象,只是不熟悉這一對象在某種語言下的表示中所使用的語言符號。文中為能指與所指之間提供了一種可視化的解決方案,在處理SVO結(jié)構(gòu)單句時可以表現(xiàn)出理想的效果,適合應(yīng)用于漢英字典例句的可視化翻譯、同一語料庫內(nèi)的內(nèi)容的可視化。對于復(fù)句或結(jié)構(gòu)更復(fù)雜的句式可以在輸入時根據(jù)需求切分并逐條處理,以滿足大多數(shù)應(yīng)用場景。但是對于不符合語法規(guī)則的口語句式或輸入錯誤時表現(xiàn)出的處理結(jié)果并不理想。除此之外,標注大量模型的工作是另一個難題。筆者將在日后繼續(xù)研究此系統(tǒng)的實用性擴展。

猜你喜歡
復(fù)句例句實體
連動結(jié)構(gòu)“VP1來VP2”的復(fù)句化及新興小句連接詞“來”的形成
漢語復(fù)句學說的源流
韓國語復(fù)句結(jié)構(gòu)的二分說
東疆學刊(2021年4期)2021-02-12 01:51:18
前海自貿(mào)區(qū):金融服務(wù)實體
中國外匯(2019年18期)2019-11-25 01:41:54
英聲細語
實體的可感部分與實體——兼論亞里士多德分析實體的兩種模式
哲學評論(2017年1期)2017-07-31 18:04:00
兩會進行時:緊扣實體經(jīng)濟“釘釘子”
振興實體經(jīng)濟地方如何“釘釘子”
好詞好句
好詞好句
益阳市| 买车| 和田市| 达日县| 晋城| 台中市| 宾阳县| 赤城县| 萍乡市| 义乌市| 海盐县| 眉山市| 永定县| 金山区| 驻马店市| 北辰区| 金华市| 营口市| 连州市| 金堂县| 拉孜县| 丰原市| 卢龙县| 斗六市| 南部县| 盘山县| 山丹县| 灵川县| 青阳县| 于田县| 平和县| 精河县| 建宁县| 平山县| 庆安县| 乐业县| 故城县| 来安县| 宝丰县| 随州市| 荆州市|