本發(fā)明涉及自然語(yǔ)言處理領(lǐng)域,具體涉及一種包含公式的文本語(yǔ)義解析方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)的不斷普及和互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,傳統(tǒng)的教育模式也在逐漸發(fā)生改變,信息、在線化、智能化等輔助教學(xué)手段正在向傳統(tǒng)教育領(lǐng)域滲透,并逐步獲得廣大老師、家長(zhǎng)和學(xué)生的認(rèn)可。對(duì)海量題庫(kù)中試題的深度理解是將在線教育系統(tǒng)推向智能化和個(gè)性化所必需的底層核心技術(shù);所述智能化主要指在線教育系統(tǒng)能夠?qū)崿F(xiàn)自動(dòng)學(xué)情診斷,智能組卷等操作;所述個(gè)性化主要指在線教育系統(tǒng)能夠根據(jù)用戶的學(xué)習(xí)情況有針對(duì)性的推薦能夠提升用戶學(xué)習(xí)水平的學(xué)習(xí)資源,如試題。因此,對(duì)包含公式的文本進(jìn)行準(zhǔn)確的語(yǔ)義解析顯得尤為重要,尤其是對(duì)試題的語(yǔ)義解析。
現(xiàn)有的試題解析方法一般是直接利用試題的分詞結(jié)果做簡(jiǎn)單的變換后,來表達(dá)試題的語(yǔ)義,如通過word2vec技術(shù)將試題分詞的結(jié)果向量化,使用試題中每個(gè)詞的詞向量表達(dá)試題的語(yǔ)義信息。
由于詞向量中每一維僅能夠描述詞、詞共現(xiàn)等淺層相關(guān)性,而不能充分表達(dá)深層的詞義,公式中字符被分詞處理后,詞向量中的各維僅能表達(dá)詞的共現(xiàn)關(guān)系,無法描述公式內(nèi)部的邏輯結(jié)構(gòu),從而導(dǎo)致現(xiàn)有基于詞向量的表達(dá)方法無法準(zhǔn)確描述試題所蘊(yùn)含的語(yǔ)義信息,同時(shí)也無法描述出試題中詞與詞之間的語(yǔ)義關(guān)系。
比如,如下為試題(1)和試題(2)使用詞向量表達(dá)語(yǔ)義的實(shí)例:
(1)已知f(x)=ax2+x+1是定義在(1,+∞)上的增函數(shù),則a的取值范圍是?
tokens:已知/wfun/tqua/tvara/tvarx/tnum/t是/w定義/w在 /winteval/t上/w的/w增函數(shù)/w則/wvara/t的取值/w范圍/w是/w
(2)若f(x)=bx2+x+1,x∈(1,+∞),且f(x)單調(diào)增,試求b的取值范圍?
tokens:若/wfun/tqua/tvara/tvarx/tnum/tvarx/tinteval且/wfun/t單調(diào)/w增/w,試/w求/wvarb/t的/w取值/w范圍/w
其中,tokens表示每個(gè)試題的詞向量,可以看出不同部分較多,而由試題(1)與試題(2)的題干可以看出,兩個(gè)試題僅參數(shù)不同,語(yǔ)義完全相同,如果使用詞向量表達(dá)試題的語(yǔ)義信息,則會(huì)認(rèn)為這是兩個(gè)不同的試題,語(yǔ)義差別較大,這顯然不合理。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種包含公式的文本語(yǔ)義解析方法及裝置,以便對(duì)包含公式的文本進(jìn)行語(yǔ)義解析,能夠得到準(zhǔn)確的語(yǔ)義解析結(jié)果。
為此,本發(fā)明提供如下技術(shù)方案:
一種包含公式的文本語(yǔ)義解析方法,包括:
預(yù)先構(gòu)建用于描述數(shù)學(xué)實(shí)體之間關(guān)系的語(yǔ)義解析模型;
接收包含數(shù)學(xué)公式的待解析文本數(shù)據(jù);
構(gòu)建待解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì);
提取各數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征;
利用所述語(yǔ)義解析特征及所述語(yǔ)義解析模型對(duì)待解析文本數(shù)據(jù)進(jìn)行語(yǔ)義解析,得到解析結(jié)果。
優(yōu)選地,所述預(yù)先構(gòu)建用于描述數(shù)學(xué)實(shí)體之間關(guān)系的語(yǔ)義解析模型包括:
收集設(shè)定數(shù)量的包含公式的文本數(shù)據(jù);
根據(jù)收集的文本數(shù)據(jù)構(gòu)建公式實(shí)體集合和概念實(shí)體集合;
構(gòu)建數(shù)學(xué)實(shí)體對(duì)并標(biāo)注每個(gè)數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系;
基于所述數(shù)學(xué)實(shí)體對(duì)的上下文信息提取所述數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征;
根據(jù)所述數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征構(gòu)建所述語(yǔ)義解析模型。
優(yōu)選地,所述數(shù)學(xué)實(shí)體對(duì)包括:公式實(shí)體與公式實(shí)體之間的實(shí)體對(duì)、公式實(shí)體與概念實(shí)體之間的實(shí)體對(duì);所述公式實(shí)體是指對(duì)包含公式的文本進(jìn)行識(shí)別時(shí)得到的公式和/或公式字符;所述概念實(shí)體是指文本數(shù)據(jù)中出現(xiàn)的與數(shù)學(xué)概念相關(guān)的描述;所述數(shù)學(xué)實(shí)體之間的關(guān)系是指文本數(shù)據(jù)中數(shù)學(xué)實(shí)體之間的關(guān)系。
優(yōu)選地,所述根據(jù)收集的文本數(shù)據(jù)構(gòu)建公式實(shí)體集合包括:
對(duì)收集的文本數(shù)據(jù)進(jìn)行公式識(shí)別,得到公式和/或公式字符;
將得到的公式和/或公式字符作為公式實(shí)體,得到公式實(shí)體集合。
優(yōu)選地,所述根據(jù)收集的文本數(shù)據(jù)構(gòu)建概念實(shí)體集合包括:
對(duì)收集的文本數(shù)據(jù)進(jìn)行分詞,得到各詞;
計(jì)算各詞在所述文本數(shù)據(jù)中出現(xiàn)的頻率;
如果所述頻率大于設(shè)定的頻率閾值,則將對(duì)應(yīng)的詞作為概念實(shí)體,得到概念實(shí)體集合。
優(yōu)選地,所述數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征包括以下任意一種或多種:
所述數(shù)學(xué)實(shí)體對(duì)中兩個(gè)數(shù)學(xué)實(shí)體的語(yǔ)法樹的包含關(guān)系、兩個(gè)數(shù)學(xué)實(shí)體的編輯距離、兩個(gè)數(shù)學(xué)實(shí)體在文本數(shù)據(jù)中的位置關(guān)系、各數(shù)學(xué)實(shí)體的類型、各數(shù)學(xué)實(shí)體前后一個(gè)或多個(gè)詞的詞面信息。
優(yōu)選地,所述構(gòu)建待解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì)包括:
對(duì)待解析文本數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果確定所述待解析文本數(shù)據(jù)中的概念實(shí)體;
識(shí)別所述待解析文本數(shù)據(jù)中包含的公式和/或公式字符,得到待解析文本數(shù)據(jù)中的公式實(shí)體;
將所述待解析文本數(shù)據(jù)中的概念實(shí)體和公式實(shí)體組成數(shù)學(xué)實(shí)體對(duì)。
一種包含公式的文本語(yǔ)義解析裝置,包括:
模型構(gòu)建模塊,用于預(yù)先構(gòu)建用于描述數(shù)學(xué)實(shí)體之間關(guān)系的語(yǔ)義解析模型;
接收模塊,用于接收包含數(shù)學(xué)公式的待解析文本數(shù)據(jù);
數(shù)學(xué)實(shí)體對(duì)構(gòu)建模塊,用于構(gòu)建待解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì);
特征提取模塊,用于提取各數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征;
解析模塊,用于利用所述語(yǔ)義解析特征及所述語(yǔ)義解析模型對(duì)待解析文本數(shù)據(jù)進(jìn)行語(yǔ)義解析,得到解析結(jié)果。
優(yōu)選地,所述模型構(gòu)建模塊包括:
數(shù)據(jù)收集單元,用于收集設(shè)定數(shù)量的包含公式的文本數(shù)據(jù);
公式實(shí)體集合構(gòu)建單元,用于根據(jù)收集的文本數(shù)據(jù)構(gòu)建公式實(shí)體集合;
概念實(shí)體集合構(gòu)建單元,用于根據(jù)收集的文本數(shù)據(jù)構(gòu)建概念實(shí)體集合;
數(shù)學(xué)實(shí)體對(duì)構(gòu)建單元,用于構(gòu)建數(shù)學(xué)實(shí)體對(duì)并標(biāo)注每個(gè)數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系;
特征提取單元,用于基于所述數(shù)學(xué)實(shí)體對(duì)的上下文信息提取所述數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征;
模型構(gòu)建單元,用于根據(jù)所述數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征構(gòu)建所述語(yǔ)義解析模型。
優(yōu)選地,所述公式實(shí)體集合構(gòu)建單元包括:
公式識(shí)別子單元,用于對(duì)所述數(shù)據(jù)收集單元收集的文本數(shù)據(jù)進(jìn)行公式識(shí)別,得到公式和/或公式字符;
公式實(shí)體集合生成子單元,用于將所述公式識(shí)別子單元得到的公式和/或公式字符作為公式實(shí)體,得到公式實(shí)體集合。
優(yōu)選地,所述概念實(shí)體集合構(gòu)建單元包括:
分詞子單元,用于對(duì)所述數(shù)據(jù)收集單元收集的文本數(shù)據(jù)進(jìn)行分詞,得到各詞;
頻率計(jì)算子單元,用于計(jì)算各詞在所述文本數(shù)據(jù)中出現(xiàn)的頻率;
概念實(shí)體集合生成子單元,用于在所述頻率大于設(shè)定的頻率閾值時(shí),將對(duì)應(yīng)的詞作為概念實(shí)體,得到概念實(shí)體集合。
優(yōu)選地,所述數(shù)學(xué)實(shí)體對(duì)構(gòu)建模塊包括:
概念實(shí)體確定單元,用于對(duì)待解析文本數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果確定所述待解析文本數(shù)據(jù)中的概念實(shí)體;
公式實(shí)體確定單元,用于識(shí)別所述待解析文本數(shù)據(jù)中包含的公式和/或公式字符,得到待解析文本數(shù)據(jù)中的公式實(shí)體;
組合單元,用于將所述待解析文本數(shù)據(jù)中的概念實(shí)體和公式實(shí)體組成數(shù)學(xué)實(shí)體對(duì)。
本發(fā)明實(shí)施例提供的包含公式的文本語(yǔ)義解析方法及裝置,通過構(gòu)建待解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì),利用數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系描述待解析文本數(shù)據(jù)的語(yǔ)義信息,所述數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系根據(jù)數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征及語(yǔ)義解析模型確定,從而可以準(zhǔn)確的對(duì)包含公式的文本數(shù)據(jù)進(jìn)行語(yǔ)義解析,得到準(zhǔn)確的語(yǔ)義解析結(jié)果。
附圖說明
為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例中數(shù)學(xué)實(shí)體之間的關(guān)系示意圖;
圖2是本發(fā)明實(shí)施例中構(gòu)建語(yǔ)義解析模型的流程圖;
圖3是本發(fā)明實(shí)施例中構(gòu)建的數(shù)學(xué)公式的語(yǔ)法樹的示意圖;
圖4是本發(fā)明實(shí)施例包含公式的文本語(yǔ)義解析方法的流程圖;
圖5是本發(fā)明實(shí)施例包含公式的文本語(yǔ)義解析裝置的一種結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例中模型構(gòu)建模塊的一種結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例的方案,下面結(jié)合附圖和實(shí)施方式對(duì)本發(fā)明實(shí)施例作進(jìn)一步的詳細(xì)說明。
本發(fā)明實(shí)施例提供一種包含公式的文本語(yǔ)義解析方法及裝置,預(yù)先構(gòu)建用于描述數(shù)學(xué)實(shí)體之間關(guān)系的語(yǔ)義解析模型,利用該模型對(duì)包含數(shù)學(xué)公式的待解析文本數(shù)據(jù)進(jìn)行解析,得到解析結(jié)果。具體解析時(shí),首先構(gòu)建待 解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì),并提取各數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征;然后利用所述語(yǔ)義解析特征及所述語(yǔ)義解析模型對(duì)待解析文本數(shù)據(jù)進(jìn)行語(yǔ)義解析,得到解析結(jié)果。
所述語(yǔ)義解析模型用來描述數(shù)學(xué)實(shí)體之間的關(guān)系,所述數(shù)學(xué)實(shí)體包含兩種實(shí)體,即公式實(shí)體與概念實(shí)體;所述公式實(shí)體主要指對(duì)包含公式的文本(比如試題)進(jìn)行識(shí)別時(shí)得到的公式和公式字符,如f(x);所述概念實(shí)體主要指文本數(shù)據(jù)中出現(xiàn)的與數(shù)學(xué)概念相關(guān)的描述,如概念實(shí)體為“增函數(shù)”,相同數(shù)學(xué)概念的不同描述構(gòu)成該概念實(shí)體的同義描述列表,如單調(diào)增函數(shù)、單調(diào)遞增函數(shù)都是增函數(shù)的同義描述,從而可以組成同義描述列表。
所述數(shù)學(xué)實(shí)體之間的關(guān)系指文本數(shù)據(jù)中數(shù)學(xué)實(shí)體之間的關(guān)系,所述關(guān)系可以分為兩種:公式實(shí)體與公式實(shí)體之間的關(guān)系,如“定義域”,公式實(shí)體與概念實(shí)體之間的關(guān)系,如“單調(diào)性”。數(shù)學(xué)實(shí)體之間的關(guān)系使用三元組表示為<公式實(shí)體,實(shí)體關(guān)系,公式實(shí)體>或<公式實(shí)體,實(shí)體關(guān)系,概念實(shí)體>,如圖1為數(shù)學(xué)實(shí)體之間的關(guān)系示意圖。
為了進(jìn)一步對(duì)數(shù)學(xué)實(shí)體進(jìn)行清楚說明,舉例如下:
例如文本數(shù)據(jù)中的試題為:“已知f(x)=ax^{2}+x+1是定義在(1,+∞)的增函數(shù),則a的取值范圍是_____”,則其中的“f(x)=ax^{2}+x+1”、“(1,+∞)”以及“a”為公式實(shí)體;“增函數(shù)”、“target”兩個(gè)數(shù)學(xué)概念詞匯作為概念實(shí)體,target表示求解目標(biāo),即題干中的“_____”。
公式實(shí)體“f(x)=ax^{2}+x+1”與公式實(shí)體“(1,+∞)”之間的關(guān)系為“定義域”,可以表示為<f(x)=ax^{2}+x+1,function:xdomain,(1,+∞)>;
公式實(shí)體“f(x)=ax^{2}+x+1”與概念實(shí)體“增函數(shù)”之間的關(guān)系為“單調(diào)性”,可以表示為<f(x)=ax^{2}+x+1,function:mono,增函數(shù)>
在本發(fā)明實(shí)施例中,預(yù)先構(gòu)建用于描述上述數(shù)學(xué)實(shí)體之間關(guān)系的語(yǔ)義解析模型,利用該模型對(duì)包含數(shù)學(xué)公式的待解析文本數(shù)據(jù)進(jìn)行解析,得到解析結(jié)果。
所述語(yǔ)義解析模型的具體構(gòu)建流程如圖2所示,包括以下步驟:
步驟201,收集包含公式的文本數(shù)據(jù)。
步驟202,根據(jù)收集的文本數(shù)據(jù)構(gòu)建公式實(shí)體集合和概念實(shí)體集合。
在構(gòu)建公式實(shí)體集合時(shí),需要首先識(shí)別出文本數(shù)據(jù)中的公式和/或公式字符,將識(shí)別出的公式和/或公式字符作為公式實(shí)體,從而得到公式實(shí)體集合。比如,可以先建立一個(gè)空的公式實(shí)體集合,在每得到一個(gè)公式或公式字符后,即檢查該公式實(shí)體集合中是否已有該公式或公式字符,如果沒有,則將其作為公式實(shí)體放入該公式實(shí)體集合中;或者先識(shí)別出所有文本數(shù)據(jù)中的公式和公式字符,然后去除其中重復(fù)的公式和公式字符,將剩余的公式和公式字符作為公式實(shí)體,得到公式實(shí)體集合。需要說明的是,公式和公式字符的識(shí)別可以采用現(xiàn)有技術(shù),對(duì)此本發(fā)明實(shí)施例不做限定。
在構(gòu)建概念實(shí)體集合時(shí),需要首先對(duì)收集的文本數(shù)據(jù)進(jìn)行分詞,計(jì)算每個(gè)詞在這些文本數(shù)據(jù)中出現(xiàn)的頻率,如果該詞出現(xiàn)的頻率大于設(shè)定的頻率閾值,則將該詞作為概念實(shí)體,得到概念實(shí)體集合。
進(jìn)一步地,還可以將概念實(shí)體集合中同義的概念實(shí)體加入同一個(gè)同義描述列表中,得到不同概念實(shí)體的同義描述列表。對(duì)于每一個(gè)同義描述列表,可以根據(jù)該同義描述列表中各概念實(shí)體的描述確定該同義描述列表對(duì)應(yīng)的概念實(shí)體,從而得到概念實(shí)體集合及概念實(shí)體集合中每個(gè)概念實(shí)體對(duì)應(yīng)的同義描述列表。
具體可以通過計(jì)算不同概念實(shí)體之間的相似度確定兩個(gè)概念實(shí)體是否為同義描述,當(dāng)所述相似度大于預(yù)先設(shè)定的相似度閾值時(shí),可以認(rèn)為兩個(gè)概念實(shí)體為同義描述,則將這兩個(gè)概念實(shí)體加入同一個(gè)同義描述列表中,如“最大值”與“極大值”可以加入同一同義描述列表中。
需要說明的是,為了進(jìn)一步減少一些在包含公式的文本中出現(xiàn)頻率較高的停止詞(即無意義的詞,如“的”)對(duì)后續(xù)模型訓(xùn)練過程的干擾,在進(jìn)行分詞后,計(jì)算每個(gè)詞在這些文本數(shù)據(jù)中出現(xiàn)的頻率之前,可以先去除這些干擾詞,再進(jìn)行頻率的計(jì)算。
另外,需要說明的是,在實(shí)際應(yīng)用中,可能會(huì)出現(xiàn)以下情況:加入到同一個(gè)同義描述列表中的一個(gè)或多個(gè)概念實(shí)體與該列表中的其它概念實(shí)體實(shí)際上不具有同義描述,因此,為了進(jìn)一步保證后續(xù)語(yǔ)義解析的準(zhǔn)確性, 可以由人工或自動(dòng)從同義描述列表中去除這部分概念實(shí)體,比如通過計(jì)算同一個(gè)同義描述列表中的一個(gè)概念實(shí)體與該列表中的其它概念實(shí)體的相似度來確定其是否為真正的同義描述。
如下為概念實(shí)體與同義描述列表的實(shí)例:
概念實(shí)體:增函數(shù);
同義描述列表:遞增函數(shù)、單調(diào)增函數(shù)、單調(diào)遞增函數(shù)。
步驟203,構(gòu)建數(shù)學(xué)實(shí)體對(duì)并標(biāo)注每個(gè)數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系。
具體地,將所述公式實(shí)體集合與所述概念實(shí)體集合組合成數(shù)學(xué)實(shí)體對(duì),并標(biāo)注每個(gè)數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系,比如,可以由領(lǐng)域?qū)<腋鶕?jù)文本數(shù)據(jù)的內(nèi)容來標(biāo)注。所述數(shù)學(xué)實(shí)體對(duì)包含公式實(shí)體與公式實(shí)體之間的實(shí)體對(duì)、公式實(shí)體與概念實(shí)體之間的實(shí)體對(duì)。
每個(gè)數(shù)學(xué)實(shí)體對(duì)及其關(guān)系具體可以使用三元組表示,即<公式實(shí)體,實(shí)體關(guān)系,公式實(shí)體>、<公式實(shí)體,實(shí)體關(guān)系,概念實(shí)體>。
例如:文本數(shù)據(jù)(題干):“已知f(x)=ax^{2}+x+1是定義在(1,+∞)的增函數(shù),則a的取值范圍是_____”,則構(gòu)建的數(shù)學(xué)實(shí)體對(duì)及關(guān)系三元組如表1所示,其中“null”表示無,即數(shù)學(xué)實(shí)體之間沒有關(guān)系。
表1
步驟204,基于所述數(shù)學(xué)實(shí)體對(duì)的上下文信息提取所述數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征。
由于數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系由每個(gè)數(shù)學(xué)實(shí)體周圍的上下文及數(shù)學(xué)實(shí)體所在公式的內(nèi)容決定,并且在文本數(shù)據(jù)中,離數(shù)學(xué)實(shí)體越遠(yuǎn)的詞,對(duì)數(shù)學(xué)實(shí)體之間的關(guān)系影響越小,因此,在本發(fā)明實(shí)施例中,對(duì)每個(gè)數(shù)學(xué)實(shí)體對(duì)提取的語(yǔ)義解析特征如下:
每個(gè)數(shù)學(xué)實(shí)體對(duì)使用<e,f>表示,其中e和f表示數(shù)學(xué)實(shí)體,其中,e表示公式實(shí)體,f表示公式實(shí)體或概念實(shí)體,具體語(yǔ)義解析特征可以包括以下任意一種或多種組合:
1)兩個(gè)數(shù)學(xué)實(shí)體的語(yǔ)法樹的包含關(guān)系
每個(gè)公式實(shí)體對(duì)應(yīng)一個(gè)語(yǔ)法樹,每個(gè)語(yǔ)法樹對(duì)應(yīng)一個(gè)或多個(gè)公式實(shí)體。在實(shí)際應(yīng)用中,每個(gè)公式和公式字符的語(yǔ)法樹可以根據(jù)預(yù)先定義的方法集合構(gòu)建得到。
所述文法集合可以通過對(duì)各種不同類型的數(shù)學(xué)公式的表達(dá)形式進(jìn)行抽象得到。比如,所述文法由“->”左右兩部分組成,“->”左邊為數(shù)學(xué)公式的類型,“->”右邊為滿足該公式類型的數(shù)學(xué)表達(dá)式的具體形式。
在構(gòu)建語(yǔ)法樹時(shí),收集大量包含數(shù)學(xué)公式的文本數(shù)據(jù),作為語(yǔ)料庫(kù),然后根據(jù)所述語(yǔ)料庫(kù)中各數(shù)學(xué)公式所在的上下文以及所述文法集合,構(gòu)建各公式的語(yǔ)法樹。
所述語(yǔ)法樹中的節(jié)點(diǎn)由相應(yīng)文法中的終結(jié)符和非終結(jié)符表示。所述終結(jié)符一般為根據(jù)詞法分析器直接得到的公式字符,如所有英文字符、公式固定字符串等,所述公式固定字符串如cos,sqrt等,終結(jié)符作為語(yǔ)法樹的葉子節(jié)點(diǎn)。所述非終結(jié)符一般為根據(jù)終結(jié)符組合后形成的公式類型,如function,add等,非終結(jié)符作為語(yǔ)法樹的非葉子節(jié)點(diǎn),所述終結(jié)符與非終結(jié)符與每條文法的公式類型或子類型相對(duì)應(yīng)。所述語(yǔ)法樹的邊表示父節(jié)點(diǎn)和子節(jié)點(diǎn)之間的邏輯關(guān)系。
數(shù)學(xué)實(shí)體e的語(yǔ)法樹是否是數(shù)學(xué)實(shí)體f的語(yǔ)法樹的子樹,使用subtree(e,f)表示,如果是,subtree(e,f)=1;否則,subtree(e,f)=0;如果f為概念實(shí)體,該特征取值直接為0,即subtree(e,f)=0。
數(shù)學(xué)實(shí)體f的語(yǔ)法樹是否是數(shù)學(xué)實(shí)體e的語(yǔ)法樹的子樹,使用subtree(f,e)表示,如果是,subtree(f,e)=1;否則,subtree(f,e)=0;如果f為概念實(shí)體,該特征取值直接為0,即subtree(f,e)=0。
2)兩個(gè)數(shù)學(xué)實(shí)體的編輯距離
即數(shù)學(xué)實(shí)體e和數(shù)學(xué)實(shí)體f的編輯距離是多少,使用edit(e,f)表示;
所述編輯距離指由數(shù)學(xué)實(shí)體e轉(zhuǎn)換為數(shù)學(xué)實(shí)體f需要的最少編輯操作次數(shù),所述編輯操作為插入、刪除、替換,具體計(jì)算方法與現(xiàn)有技術(shù)相同,在此不再詳述。
3)兩個(gè)數(shù)學(xué)實(shí)體在文本數(shù)據(jù)中的位置關(guān)系
即數(shù)學(xué)實(shí)體e和數(shù)學(xué)實(shí)體f在文本數(shù)據(jù)中的位置關(guān)系,使用order(e,f)表示;如果數(shù)學(xué)實(shí)體e在數(shù)學(xué)實(shí)體f的前面,order(e,f)=1;否則,order(e,f)=0。
4)數(shù)學(xué)實(shí)體的類型
所述類型指數(shù)學(xué)實(shí)體的語(yǔ)法樹根節(jié)點(diǎn)的類型,所述根節(jié)點(diǎn)的類型可以在根據(jù)文法規(guī)則構(gòu)建語(yǔ)法樹時(shí),根據(jù)文法的類型得到。
數(shù)學(xué)實(shí)體e的類型和數(shù)學(xué)實(shí)體f的類型分別使用subtype(e)、subtype(f)表示;如數(shù)學(xué)實(shí)體e的語(yǔ)法樹根節(jié)點(diǎn)為函數(shù)類型,則subtype(e)=“fun”,“fun”表示函數(shù)類型;如數(shù)學(xué)實(shí)體f的語(yǔ)法樹根節(jié)點(diǎn)為區(qū)間類型,則subtype(f)=“inteval”,“inteval”表示區(qū)間類型。如果數(shù)學(xué)實(shí)體f為概念實(shí)體, 則e的類型使用統(tǒng)一符號(hào)表示,如“concept”。
5)數(shù)學(xué)實(shí)體前后一個(gè)或多個(gè)詞的詞面信息
數(shù)學(xué)實(shí)體e的前后n個(gè)詞的詞面信息,使用t(e,n)表示;數(shù)學(xué)實(shí)體f的前后n個(gè)詞的詞面信息,使用t(f,n)表示。
例如:對(duì)上例中公式實(shí)體“f(x)=ax^{2}+x+1”與公式實(shí)體“(1,+∞)”之間數(shù)學(xué)實(shí)體對(duì)提取的語(yǔ)義解析特征如下所示:
a)subtree(e,f)=0,e的公式語(yǔ)法樹不是f的公式語(yǔ)法樹的子樹;
b)subtree(f,e)=0,f的公式語(yǔ)法樹不是e的公式語(yǔ)法樹的子樹;
c)edit(e,f)=12,e和f之間的文本編輯距離是12;
d)order(e,f)=1,e在文本數(shù)據(jù)中的位置位于f之前;
e)subtype(e)=“fun”,e的公式類型是函數(shù);
f)subtype(f)=“inteval”,f的公式類型是集合;
g)t(e,3)=“nullnull已知是定義在”,“null”表示無,即沒有詞面信息;
h)t(f,3)=“已知是定義上增函數(shù)”。
步驟205,根據(jù)所述數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征構(gòu)建所述語(yǔ)義解析模型。
所述語(yǔ)義解析模型可以采用模式識(shí)別中的常用分類模型,如支持向量機(jī)模型、神經(jīng)網(wǎng)絡(luò)模型等,將數(shù)學(xué)實(shí)體之間的關(guān)系作為分類標(biāo)簽,利用提取的每個(gè)數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征來構(gòu)建語(yǔ)義解析模型。具體模型訓(xùn)練時(shí),將數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征作為模型的輸入,將該數(shù)學(xué)實(shí)體對(duì)的關(guān)系作為分類結(jié)果訓(xùn)練模型參數(shù),具體訓(xùn)練方法可以采用現(xiàn)有技術(shù),在此不再詳述。
如圖4所示,是本發(fā)明實(shí)施例包含公式的文本語(yǔ)義解析方法的流程圖,包括以下步驟:
步驟401,預(yù)先構(gòu)建用于描述數(shù)學(xué)實(shí)體之間關(guān)系的語(yǔ)義解析模型。
所述語(yǔ)義解析模型用來描述數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系,根據(jù)數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系可以抽取出文本數(shù)據(jù)的語(yǔ)義。
步驟402,接收包含數(shù)學(xué)公式的待解析文本數(shù)據(jù)。
所述文本數(shù)據(jù)包含數(shù)學(xué)公式,如數(shù)學(xué)試題、數(shù)學(xué)資料相關(guān)文本數(shù)據(jù)等。
步驟403,構(gòu)建待解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì)。
具體構(gòu)建時(shí),首先對(duì)待解析文本數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果確定待解析文本數(shù)據(jù)中的概念實(shí)體(比如通過查找前面所述的概念實(shí)體集合、或者查找概念實(shí)體集合及相應(yīng)同義描述列表來確定);隨后識(shí)別當(dāng)前待解析文本數(shù)據(jù)中包含的公式和/或公式字符,得到待解析文本數(shù)據(jù)中的公式實(shí)體;最后將所述概念實(shí)體和公式實(shí)體組成數(shù)學(xué)實(shí)體對(duì),所述數(shù)學(xué)實(shí)體對(duì)包括兩種類型,即<公式實(shí)體,實(shí)體關(guān)系,公式實(shí)體>和<公式實(shí)體,實(shí)體關(guān)系,概念實(shí)體>。
步驟404,提取各數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征。
提取每個(gè)數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征,所述語(yǔ)義解析特征主要描述數(shù)學(xué)實(shí)體對(duì)中數(shù)學(xué)實(shí)體在文本數(shù)據(jù)中的相關(guān)信息,所述語(yǔ)義解析特征可以包括以下任意一種或多種:所述數(shù)學(xué)實(shí)體對(duì)中兩個(gè)數(shù)學(xué)實(shí)體的語(yǔ)法樹的包含關(guān)系、兩個(gè)數(shù)學(xué)實(shí)體的編輯距離、兩個(gè)數(shù)學(xué)實(shí)體在文本數(shù)據(jù)中的位置關(guān)系、各數(shù)學(xué)實(shí)體的類型、各數(shù)學(xué)實(shí)體前后一個(gè)或多個(gè)詞的詞面信息。
需要說明的是,在實(shí)際應(yīng)用中,提取待解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì)中兩個(gè)數(shù)學(xué)實(shí)體的語(yǔ)法樹的包含關(guān)系時(shí),其中的數(shù)學(xué)實(shí)體的語(yǔ)法樹可以通過人工(如前面在步驟204中介紹的語(yǔ)法樹的構(gòu)建方式)或自動(dòng)方式得到。
比如,通過預(yù)先構(gòu)建概率上下文無法文本模型對(duì)識(shí)別得到的公式字符進(jìn)行解析,得到相應(yīng)的語(yǔ)法樹。進(jìn)行公式解析時(shí),自左向右掃描每個(gè)公式字符,采用動(dòng)態(tài)規(guī)劃方法尋找公式字符之間對(duì)應(yīng)的所有文法,并且對(duì)所述文法進(jìn)行規(guī)約,根據(jù)規(guī)約后的文法及規(guī)約路徑得到相應(yīng)的語(yǔ)法樹。
需要說明的是,在文法規(guī)約時(shí),如果存在多條規(guī)約路徑,掃描文法的規(guī)約路徑可以得到多個(gè)候選語(yǔ)法樹,則可以選擇概率最大的語(yǔ)法樹作為相應(yīng)公式或公式字符的語(yǔ)法樹,所述語(yǔ)法樹的概率為樹中所有文法出現(xiàn)概率之積。當(dāng)然,如果只有一條規(guī)約路徑,則將根據(jù)該規(guī)約路徑得到的語(yǔ)法樹作為相應(yīng)公式或公式字符的語(yǔ)法樹。
步驟405,利用所述語(yǔ)義解析特征及所述語(yǔ)義解析模型對(duì)待解析文本 數(shù)據(jù)進(jìn)行語(yǔ)義解析,得到解析結(jié)果。
將待解析文本數(shù)據(jù)中每個(gè)數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征作為語(yǔ)義解析模型的輸入,對(duì)待解析文本數(shù)據(jù)中數(shù)學(xué)實(shí)體對(duì)的關(guān)系進(jìn)行預(yù)測(cè),具體預(yù)測(cè)結(jié)果使用概率的形式表示,將概率最大時(shí)對(duì)應(yīng)的關(guān)系作為當(dāng)前數(shù)學(xué)實(shí)體對(duì)中數(shù)學(xué)實(shí)體之間的關(guān)系,將所述待解析文本數(shù)據(jù)中數(shù)學(xué)實(shí)體對(duì)及預(yù)測(cè)得到的數(shù)學(xué)實(shí)體之間的關(guān)系作為當(dāng)前待解析文本解析得到的語(yǔ)義信息,具體可以使用關(guān)系三元組的形式表示,即<公式實(shí)體,實(shí)體關(guān)系,公式實(shí)體>或<公式實(shí)體,實(shí)體關(guān)系,概念實(shí)體>。
如下為待解析文本語(yǔ)義解析的實(shí)例:
待解析文本數(shù)據(jù)(題干):已知f(x)是定義在實(shí)數(shù)集r上的不恒為零的偶函數(shù),且對(duì)任意實(shí)數(shù)x都有xf(x+1)=(x+1)f(x),則
構(gòu)建的數(shù)學(xué)實(shí)體對(duì)如下:
1)<f(x),偶函數(shù)>
2)<f(x),r>
3)<f(x),xf(x+1)=(x+1)f(x)>
4)<f(x),不恒為零>
5)<f(x),
6)<x(f(x+1)=(x+1)f(x),r>
7)<xf(x+1)=(x+1)f(x),偶函數(shù)>
8)<xf(x+1)=(x+1)f(x),不恒為零>
9)<
10)<
以<f(x),r>為例,抽取的語(yǔ)義解析特征具體如下:
令e=f(x),f=r,語(yǔ)義解析特征如下:
1)subtree(e,f)=0,e的公式語(yǔ)法樹不是f的公式語(yǔ)法樹的子樹;
2)subtree(f,e)=0,f的公式語(yǔ)法樹不是e的公式語(yǔ)法樹的子樹;
3)edit(e,f)=4,e和f之間的文本編輯距離是4;
4)order(e,f)=1,e在題干中的位置位于f之前;
5)subtype(e)=“fun”,e的公式類型是函數(shù);
6)subtype(f)=“set”,f的公式類型是集合;
7)t(e,3)=“null已知函數(shù)是定義在”,e的上下文詞面信息,null表示空;
8)t(f,3)=“定義在實(shí)數(shù)集上不恒為零偶函數(shù)”,f的上下文詞面信息。
根據(jù)所述語(yǔ)義解析特征及語(yǔ)義解析模型對(duì)待解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系進(jìn)行預(yù)測(cè),得到待解析文本數(shù)據(jù)的語(yǔ)義解析結(jié)果,使用關(guān)系三元組表示如下:
1)<f(x),function:parity,偶函數(shù)>;
2)<f(x),function:xdomain,r>;
3)<f(x),function:constraint,xf(x+1)=(x+1)f(x)>;
4)<f(x),function:constraint,不恒為零>;
5)<
其余數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系為null,未列出,null表示空,即沒有關(guān)系。
從上述語(yǔ)義解析結(jié)果中可以得到的信息如下:
f(x)的奇偶性(function:parity)是偶函數(shù);
f(x)的定義域(function:xdomain)是實(shí)數(shù)集r;
f(x)(x)滿足約束條件(function:constraint)是xf(x+1)=(x+1)f(x);
f(x)滿足約束條件(function:constraint)不恒為零;
本發(fā)明實(shí)施例提供的包含公式的文本語(yǔ)義解析方法,通過構(gòu)建待解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì),利用數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系描述待解析文本數(shù)據(jù)的語(yǔ)義信息,所述數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系根據(jù)數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征及語(yǔ)義解析模型確定,從而可以準(zhǔn)確的對(duì)包含公式的文本數(shù)據(jù)進(jìn)行語(yǔ)義解析, 得到準(zhǔn)確的語(yǔ)義解析結(jié)果。
相應(yīng)地,本發(fā)明實(shí)施例還提供一種包含公式的文本語(yǔ)義解析裝置,如圖5所示,是該裝置的一種結(jié)構(gòu)示意圖,包括以下各模塊:
模型構(gòu)建模塊501,用于預(yù)先構(gòu)建用于描述數(shù)學(xué)實(shí)體之間關(guān)系的語(yǔ)義解析模型;
接收模塊502,用于接收包含數(shù)學(xué)公式的待解析文本數(shù)據(jù);
數(shù)學(xué)實(shí)體對(duì)構(gòu)建模塊503,用于構(gòu)建待解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì);
特征提取模塊504,用于提取各數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征;
解析模塊505,用于利用所述語(yǔ)義解析特征及所述語(yǔ)義解析模型對(duì)待解析文本數(shù)據(jù)進(jìn)行語(yǔ)義解析,得到解析結(jié)果。具體地,將待解析文本數(shù)據(jù)中每個(gè)數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征作為語(yǔ)義解析模型的輸入,對(duì)待解析文本數(shù)據(jù)中數(shù)學(xué)實(shí)體對(duì)的關(guān)系進(jìn)行預(yù)測(cè),具體預(yù)測(cè)結(jié)果使用概率的形式表示,將概率最大時(shí)對(duì)應(yīng)的關(guān)系作為當(dāng)前數(shù)學(xué)實(shí)體對(duì)中數(shù)學(xué)實(shí)體之間的關(guān)系,將所述待解析文本數(shù)據(jù)中數(shù)學(xué)實(shí)體對(duì)及預(yù)測(cè)得到的數(shù)學(xué)實(shí)體之間的關(guān)系作為當(dāng)前待解析文本解析得到的語(yǔ)義信息,具體可以使用關(guān)系三元組的形式表示,即<公式實(shí)體,實(shí)體關(guān)系,公式實(shí)體>或<公式實(shí)體,實(shí)體關(guān)系,概念實(shí)體>。
上述數(shù)學(xué)實(shí)體對(duì)構(gòu)建模塊503包括:
概念實(shí)體確定單元,用于對(duì)待解析文本數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果確定所述待解析文本數(shù)據(jù)中的概念實(shí)體;
公式實(shí)體確定單元,用于識(shí)別所述待解析文本數(shù)據(jù)中包含的公式和/或公式字符,得到待解析文本數(shù)據(jù)中的公式實(shí)體;
組合單元,用于將所述待解析文本數(shù)據(jù)中的概念實(shí)體和公式實(shí)體組成數(shù)學(xué)實(shí)體對(duì)。
如圖6所示,是本發(fā)明實(shí)施例中模型構(gòu)建模塊的一種結(jié)構(gòu)示意圖。
在該實(shí)施例中,所述模型構(gòu)建模塊包括:
數(shù)據(jù)收集單元601,用于收集設(shè)定數(shù)量的包含公式的文本數(shù)據(jù);
公式實(shí)體集合構(gòu)建單元602,用于根據(jù)收集的文本數(shù)據(jù)構(gòu)建公式實(shí)體集合;
概念實(shí)體集合構(gòu)建單元603,用于根據(jù)收集的文本數(shù)據(jù)構(gòu)建概念實(shí)體集合;
數(shù)學(xué)實(shí)體對(duì)構(gòu)建單元604,用于構(gòu)建數(shù)學(xué)實(shí)體對(duì)并標(biāo)注每個(gè)數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系;
特征提取單元605,用于基于所述數(shù)學(xué)實(shí)體對(duì)的上下文信息提取所述數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征;
模型構(gòu)建單元606,用于根據(jù)所述數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征構(gòu)建所述語(yǔ)義解析模型。
上述公式實(shí)體集合構(gòu)建單元602可以對(duì)包含公式的文本數(shù)據(jù)進(jìn)行公式識(shí)別,得到其中的公式和/或公式字符,進(jìn)而得到公式實(shí)體集合,具體可以包括以下各子單元:
公式識(shí)別子單元,用于對(duì)所述數(shù)據(jù)收集單元收集的文本數(shù)據(jù)進(jìn)行公式識(shí)別,得到公式和/或公式字符;
公式實(shí)體集合生成子單元,用于將所述公式識(shí)別子單元得到的公式和/或公式字符作為公式實(shí)體,得到公式實(shí)體集合。
上述概念實(shí)體集合構(gòu)建單元603可以對(duì)包含公式的文本數(shù)據(jù)進(jìn)行分詞,根據(jù)各詞在這些文本數(shù)據(jù)中出現(xiàn)的頻率確定其是否為概念實(shí)體,進(jìn)而得到概念實(shí)體集合,具體可以包括以下各子單元:
分詞子單元,用于對(duì)所述數(shù)據(jù)收集單元收集的文本數(shù)據(jù)進(jìn)行分詞,得到各詞;
頻率計(jì)算子單元,用于計(jì)算各詞在所述文本數(shù)據(jù)中出現(xiàn)的頻率;
概念實(shí)體集合生成子單元,用于在所述頻率大于設(shè)定的頻率閾值時(shí),將對(duì)應(yīng)的詞作為概念實(shí)體,得到概念實(shí)體集合。
本發(fā)明實(shí)施例提供的包含公式的文本語(yǔ)義解析裝置,通過構(gòu)建待解析文本數(shù)據(jù)的數(shù)學(xué)實(shí)體對(duì),利用數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系描述待解析文本數(shù)據(jù)的語(yǔ)義信息,所述數(shù)學(xué)實(shí)體對(duì)之間的關(guān)系根據(jù)數(shù)學(xué)實(shí)體對(duì)的語(yǔ)義解析特征及語(yǔ)義解析模型確定,從而可以準(zhǔn)確的對(duì)包含公式的文本數(shù)據(jù)進(jìn)行語(yǔ)義解析,得到準(zhǔn)確的語(yǔ)義解析結(jié)果。
本發(fā)明實(shí)施例提供的包含公式的文本語(yǔ)義解析方法及裝置,主要應(yīng)用于教育領(lǐng)域的個(gè)性化學(xué)習(xí)、學(xué)情診斷或自動(dòng)答題等方向,如個(gè)性化學(xué)習(xí)中,進(jìn)行個(gè)性化試題的推薦時(shí),需要通過分析試題的語(yǔ)義,判斷試題考查了哪些知識(shí)點(diǎn),結(jié)合用戶的學(xué)習(xí)情況進(jìn)行試題推薦。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
以上對(duì)本發(fā)明實(shí)施例進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體實(shí)施方式對(duì)本發(fā)明進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及裝置;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。