本發(fā)明涉及推送領(lǐng)域,尤其涉及一種近似題推送方法及系統(tǒng)。
背景技術(shù):
大數(shù)據(jù)時(shí)代,每天所產(chǎn)生的數(shù)據(jù)量爆炸式的增長。K12教育作為中國最重要的教育形式之一,每天產(chǎn)生的數(shù)據(jù)量不可忽視。中國在線教育的規(guī)模正以每年30%以上的速度增長,市場估值將超過1600億元。教育應(yīng)用或網(wǎng)站中,常有當(dāng)學(xué)生遇到難解或薄弱題后,需推送其近似題供其深入練習(xí)的需求。
現(xiàn)有的題目推薦多基于協(xié)方差矩陣的推薦系統(tǒng),引入類似商品推薦的方法,所推送題目對(duì)教學(xué)模式的適應(yīng)性較低。并且題目的特征提取相對(duì)簡單,不適用于含較多公式或復(fù)雜成分的題目。現(xiàn)有的相關(guān)題目相似度計(jì)算方法中,主要有以下三類:
(1)計(jì)算兩個(gè)題目的最長公共字符,再除以兩個(gè)題目中最短題目的字符個(gè)數(shù)則為兩個(gè)題目的相似度。
(2)根據(jù)當(dāng)前題目的知識(shí)點(diǎn)信息,從與其知識(shí)點(diǎn)相同的其他題目中隨機(jī)抽取相關(guān)題目作為相似題。
(3)將一個(gè)題目轉(zhuǎn)換為另一個(gè)題目所需要的最小編輯(增刪改等操作)的次數(shù)。
(4)計(jì)算兩個(gè)題目之間的增刪距離和替換距離,將兩種距離綜合得到兩個(gè)題目的相似度以達(dá)到推送相關(guān)題目的目的。
以上的方法所推送的題目相關(guān)性較差,推薦的效果并不理想。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:提供一種近似題推送方法及系統(tǒng),實(shí)現(xiàn)提高推送題目的相關(guān)性。
為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
本發(fā)明提供一種近似題推送方法,包括:
S1:提取第一題目中的符號(hào);
S2:根據(jù)所述的符號(hào)進(jìn)行歸類,得到與所述第一題目相應(yīng)的分類;
S3:計(jì)算所述第一題目與所述分類中各題目的相似度;
S4:根據(jù)所述相似度形成近似題集合;
S5:推送所述近似題集合。
本發(fā)明還提供一種近似題推送系統(tǒng),包括:
提取模塊,用于提取第一題目中的符號(hào);
歸類模塊,用于根據(jù)所述的符號(hào)進(jìn)行歸類,得到與所述第一題目相應(yīng)的分類;
計(jì)算模塊,用于計(jì)算所述第一題目與所述分類中各題目的相似度;
獲取模塊,用于根據(jù)所述相似度形成近似題集合;
推送模塊,用于推送所述近似題集合。
本發(fā)明的有益效果在于:通過提取第一題目中的符號(hào),根據(jù)所述符號(hào)進(jìn)行歸類并推送與第一題目相似的近似題集合,實(shí)現(xiàn)充分利用題目中的信息,從而提高推薦題目的相關(guān)性。
附圖說明
圖1為本發(fā)明一種近似題推送方法的流程框圖;
圖2為本發(fā)明一種近似題推送系統(tǒng)的結(jié)構(gòu)框圖;
標(biāo)號(hào)說明:
1、提取模塊;2、歸類模塊;3、計(jì)算模塊;4、獲取模塊;5、推送模塊。
具體實(shí)施方式
為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖予以說明。
本發(fā)明最關(guān)鍵的構(gòu)思在于:通過提取第一題目中的符號(hào),根據(jù)所述符號(hào)進(jìn)行歸類并推送與第一題目相似的近似題集合,實(shí)現(xiàn)提高推薦題目的相關(guān)性。
如圖1所示,本發(fā)明提供一種近似題推送方法,包括:
提取第一題目中的符號(hào);
根據(jù)所述的符號(hào)進(jìn)行歸類,得到與所述第一題目相應(yīng)的分類;
計(jì)算所述第一題目與所述分類中各題目的相似度;
根據(jù)所述相似度形成近似題集合;
推送所述近似題集合。
進(jìn)一步地,所述S2具體為:
根據(jù)預(yù)設(shè)的轉(zhuǎn)義字符轉(zhuǎn)換所述符號(hào),得到第二題目;
提取所述第二題目的特征,得到第一向量;
根據(jù)預(yù)設(shè)的知識(shí)點(diǎn)分類模型,得到與所述第一向量相應(yīng)的分類。
由上述描述可知,由于不同來源的題目的描述方式可能不同,尤其是不同的公式編輯器對(duì)公式中的符號(hào)的描述差異較大,因此,通過預(yù)設(shè)的轉(zhuǎn)義字符轉(zhuǎn)換所述公式中的符號(hào),可歸一化不同描述方式但代表相同意思的符號(hào),從而準(zhǔn)確并充分利用題目中的信息,提高推送題目的相關(guān)性及獲取近似題的效率。
例如:待推送近似題的題目1為“使函數(shù)有意義的的正整數(shù)取值范圍組成的集合的元素有?”。待推送近似題的題目2為“使函數(shù)有意義的y=(5-x)1/2的正整數(shù)取值范圍組成的集合的元素有?”。實(shí)際上,題目1和題目2本質(zhì)上是相同的,但是現(xiàn)有的方法無法充分利用題目中公式的信息,只是推送計(jì)算變量的取值范圍從而使函數(shù)有意義的題目,而無法更具有針對(duì)性地推送計(jì)算變量的取值范圍從而使帶有根號(hào)的函數(shù)有意義的題目。且現(xiàn)有的方法無法識(shí)別和判斷相同的題目,造成需重復(fù)解析同一題目從而獲得近似題,效率低。
進(jìn)一步地,提取所述第二題目的特征,得到第一向量,具體為:
解析所述第二題目,得到中文字符棧和非中文字符棧;
使用切詞算法對(duì)所述中文字符棧中的字符進(jìn)行切詞處理,并使用預(yù)設(shè)的正則表達(dá)式匹配所述非中文字符棧中存儲(chǔ)的公式,得到第三題目;
從所述第三題目中刪除停止詞,得到第四題目;
提取所述第四題目的特征,得到第一向量。
由上述描述可知,由于現(xiàn)有的切詞算法會(huì)刪除題目中的非中文字符,只對(duì)中文字符進(jìn)行切詞處理,因此,本發(fā)明先將題目中的中文字符和非中文字符分別放入不同的棧,對(duì)中文字符棧進(jìn)行切詞處理,對(duì)非中文字符棧使用正則表達(dá)式匹配相應(yīng)的公式,盡量將公式中可識(shí)別的部分分開,能夠在保留題目中信息的同時(shí),對(duì)題目進(jìn)行切詞,有利于提取題目中的特征向量。此外,使用棧保存中文字符和非中文字符能夠保證字符順序不變,在切詞處理過程中不改變題目的原意。再者,刪除題目中的停止詞,即無意義的詞,如“的”、“它”、“在”、“為”、“里面”等,能夠更精確地提取題目的特征向量,忽略無關(guān)信息,降低特征向量的冗余度。
進(jìn)一步地,從所述第三題目中刪除停止詞,得到第四題目,具體為:
計(jì)算所述第三題目中各個(gè)詞的權(quán)重;
根據(jù)所述權(quán)重將所述第三題目中的詞排序,形成第一隊(duì)列;
從所述第三題目中刪除與所述第一隊(duì)列前預(yù)設(shè)個(gè)數(shù)元素相應(yīng)的詞,得到第四題目。
由上述描述可知,由于不同學(xué)科和不同學(xué)齡段的停止詞的具體內(nèi)容不同,現(xiàn)有的停止詞獲取方法為通過停止詞表進(jìn)行查閱,靈活性和針對(duì)性較低,本發(fā)明通過停止詞計(jì)算算法,如TF-IDF算法,計(jì)算各個(gè)詞在題目中的權(quán)重,并刪除所述第三題目中權(quán)重較小的詞,能夠針對(duì)不同學(xué)科獲得不同的停止詞,從而提高獲取到的近似題的相關(guān)性。
例如,常見詞匯“加速度”在物理學(xué)科中是經(jīng)常出現(xiàn)的詞匯,而且對(duì)題意的理解也是很重要的,然而在生物學(xué)中,1000道題目都未必能有這種詞匯,因此如果在生物學(xué)科中發(fā)現(xiàn)有“加速度”,就可以認(rèn)定為其是停止詞,并不能作為生物學(xué)科中重要的詞看待,可以將其刪除。
其中,詞頻(term frequency,TF)指的是某一個(gè)給定的詞語在該文件中出現(xiàn)的次數(shù)。這個(gè)數(shù)字通常會(huì)被歸一化(分子一般小于分母區(qū)別于IDF),以防止它偏向長的文件。其計(jì)算公式如下:
上述公式中ni,j是該詞在文件dj中出現(xiàn)的次數(shù),而分母這是在文件dj中所有字詞出現(xiàn)的次數(shù)之和。
逆向文件頻率(inverse document frequency,IDF)是一個(gè)詞語普遍重要性的度量。某一特定詞語的IDF,可以由總文件數(shù)目除以包含該詞語之文件的數(shù)目,再將得到的商取對(duì)數(shù)得到。其公式如下所示:
其中|D|是語料文件的總數(shù),|{j:ti∈dj}|包含詞語ti的文件數(shù)目,如果該詞不在語料庫中,就會(huì)導(dǎo)致被除數(shù)為0,因此一般情況下使用的是1+|{j:ti∈dj}|。最后得到TF-IDF的公式,如下所示:
tf-idfi,j=tfi,j×idfi
某一特定文件內(nèi)的高詞語頻率,以及該詞語在整個(gè)文件集合中的低文件頻率,可以產(chǎn)生出高權(quán)重的TF-IDF。因此,TF-IDF傾向于過濾掉常見的詞語,保留重要的詞語。
進(jìn)一步地,所述S2具體為:
根據(jù)預(yù)設(shè)的轉(zhuǎn)義字符轉(zhuǎn)換所述符號(hào),得到第二題目;
根據(jù)所述第二題目構(gòu)建詞頻向量;所述詞頻向量中元素的個(gè)數(shù)為預(yù)設(shè)訓(xùn)練數(shù)據(jù)集中不同詞的數(shù)量,所述詞頻向量中元素的值為與所述元素相應(yīng)的詞在所述第二題目中出現(xiàn)的次數(shù);
根據(jù)預(yù)設(shè)的維度建立語義特征抽取模型;
根據(jù)所述語義特征抽取模型構(gòu)建與所述第二題目相應(yīng)的語義向量;
根據(jù)預(yù)設(shè)的知識(shí)點(diǎn)分類模型,得到與所述詞頻向量和所述語義向量相應(yīng)的分類。
由上述描述可知,由于傳統(tǒng)的機(jī)器學(xué)習(xí)模型中只使用了詞頻向量或者0-1向量來提取題目的特征,而忽略了題目中上下文之間的關(guān)系,本發(fā)明不僅包含有詞頻向量而特意引入了可以度量上下文之間關(guān)系的語義向量(即word2vec向量或者gloVe向量),將兩種向量結(jié)合可有效提高分類正確率,保證在獲取詞匯對(duì)整個(gè)題庫的重要程度的基礎(chǔ)上,加入詞匯之間的上下文關(guān)系,使得后續(xù)輸入到分類模型中的向量具有更豐富的含義,從而提高獲取近似題的相關(guān)性。此外,在訓(xùn)練語義特征抽取模型時(shí)可以根據(jù)實(shí)際情況確定詞向量的維度,達(dá)到降維的目的,從而降低計(jì)算的復(fù)雜度,降低分類過程所需的內(nèi)存空間,降低特征抽取模型的大小,避免占用過多內(nèi)存。
進(jìn)一步地,根據(jù)預(yù)設(shè)的知識(shí)點(diǎn)分類模型,得到與所述詞頻向量和所述語義向量相應(yīng)的分類,具體為:
根據(jù)基于詞頻的知識(shí)點(diǎn)分類模型,得到與所述詞頻向量相應(yīng)的第一知識(shí)點(diǎn)集合;
根據(jù)基于語義的知識(shí)點(diǎn)分類模型,得到與所述語義向量相應(yīng)的第二知識(shí)點(diǎn)集合;
根據(jù)所述第一知識(shí)點(diǎn)集合和所述第二知識(shí)點(diǎn)集合,得到第三知識(shí)點(diǎn)集合;
根據(jù)所述第三知識(shí)點(diǎn)集合得到與所述詞頻向量和所述語義向量相應(yīng)的分類。
由上述描述可知,通過基于詞頻的知識(shí)點(diǎn)分類模型得到的第一知識(shí)點(diǎn)集合和基于語義的知識(shí)點(diǎn)分類模型得到的第二知識(shí)點(diǎn)集合,能夠得到題目所包含的知識(shí)點(diǎn),從而添加該題目到所述知識(shí)點(diǎn)相應(yīng)的分類中,實(shí)現(xiàn)精確地按知識(shí)點(diǎn)分類,從而提高從所述知識(shí)點(diǎn)分類中獲取的近似題與第一題目的相關(guān)性。
進(jìn)一步地,根據(jù)所述第一知識(shí)點(diǎn)集合和所述第二知識(shí)點(diǎn)集合,得到第三知識(shí)點(diǎn)集合,具體為:
獲取所述第一知識(shí)點(diǎn)集合和所述第二知識(shí)點(diǎn)集合中相同的知識(shí)點(diǎn);
獲取所述相同的知識(shí)點(diǎn)根據(jù)基于詞頻的知識(shí)點(diǎn)分類模型得到的第一權(quán)重值;
獲取所述相同的知識(shí)點(diǎn)根據(jù)基于語義的知識(shí)點(diǎn)分類模型得到的第二權(quán)重值;
根據(jù)所述第一權(quán)重值和所述第二權(quán)重值,形成與所述相同的知識(shí)點(diǎn)相應(yīng)的權(quán)重值集合;
根據(jù)所述權(quán)重值集合排序?qū)⑺鱿嗤闹R(shí)點(diǎn),獲取與預(yù)設(shè)知識(shí)點(diǎn)數(shù)相應(yīng)的知識(shí)點(diǎn),形成第三知識(shí)點(diǎn)集合。
由上述描述可知,通過綜合分析基于詞頻的知識(shí)點(diǎn)分類模型得到的第一知識(shí)點(diǎn)集合和基于語義的知識(shí)點(diǎn)分類模型得到的第二知識(shí)點(diǎn)集合中各知識(shí)點(diǎn)所占的權(quán)重值,可獲知題目與各知識(shí)點(diǎn)的關(guān)聯(lián)程度,從而實(shí)現(xiàn)將題目添加到關(guān)聯(lián)度較高的知識(shí)點(diǎn)分類中,提高獲取第一題目所述知識(shí)點(diǎn)的分類的精確度,從而提高從相關(guān)知識(shí)點(diǎn)分類中獲取的近似題與第一題目的相關(guān)性。
進(jìn)一步地,所述S3具體為:
計(jì)算所述第一題目與所述分類中各題目的余弦距離;
根據(jù)所述余弦距離得到所述第一題目與所述分類中各題目的相似度。
由上述描述可知,通過計(jì)算所述第一題目與所述分類中各題目的余弦距離可有效找到與第一題目相似度高的題目。
進(jìn)一步地,所述S4具體為:
將所述分類中各題目按所述相似度排序,形成第一隊(duì)列;
從所述第一隊(duì)列中獲取與預(yù)設(shè)推薦數(shù)相應(yīng)的題目,形成近似題集合。
由上述描述可知,在不同的場景下,用戶所需的推薦數(shù)可能不同,可根據(jù)預(yù)設(shè)推薦數(shù)推薦最相關(guān)的題目。
如圖2所示,本發(fā)明還提供一種近似題推送系統(tǒng),包括:
提取模塊1,用于提取第一題目中的符號(hào);
歸類模塊2,用于根據(jù)所述的符號(hào)進(jìn)行歸類,得到與所述第一題目相應(yīng)的分類;
計(jì)算模塊3,用于計(jì)算所述第一題目與所述分類中各題目的相似度;
獲取模塊4,用于根據(jù)所述相似度形成近似題集合;
推送模塊5,用于推送所述近似題集合。
由上述描述可知,本發(fā)明提供的近似題推送系統(tǒng)可提高推送題目與所述第一題目的相關(guān)性。
本發(fā)明的實(shí)施例一為:
提取第一題目中的符號(hào);
根據(jù)預(yù)設(shè)的轉(zhuǎn)義字符轉(zhuǎn)換所述符號(hào),得到第二題目;
解析所述第二題目,得到中文字符棧和非中文字符棧;
使用切詞算法對(duì)所述中文字符棧中的字符進(jìn)行切詞處理,并使用預(yù)設(shè)的正則表達(dá)式匹配所述非中文字符棧中存儲(chǔ)的公式,得到第三題目;
計(jì)算所述第三題目中各個(gè)詞的權(quán)重;
根據(jù)所述權(quán)重將所述第三題目中的詞排序,形成第一隊(duì)列;
從所述第三題目中刪除與所述第一隊(duì)列前預(yù)設(shè)個(gè)數(shù)元素相應(yīng)的詞,得到第四題目;
提取所述第四題目的特征,得到第一向量;
根據(jù)預(yù)設(shè)的知識(shí)點(diǎn)分類模型,得到與所述第一向量相應(yīng)的分類;
計(jì)算所述第一題目與所述分類中各題目的余弦距離;
根據(jù)所述余弦距離得到所述第一題目與所述分類中各題目的相似度。
將所述分類中各題目按所述相似度排序,形成第一隊(duì)列;
從所述第一隊(duì)列中獲取與預(yù)設(shè)推薦數(shù)相應(yīng)的題目,形成近似題集合;
推送所述近似題集合。
由上述描述可知,本實(shí)施例通過將題目中的符號(hào)通過預(yù)設(shè)的轉(zhuǎn)義字符進(jìn)行歸一化處理,通過對(duì)題目中的中文字符進(jìn)行切詞處理,通過對(duì)題目中的非中文字符使用正則表達(dá)式匹配,通過刪除題目中的停止詞,提高了題目按知識(shí)點(diǎn)歸類的精確度,實(shí)現(xiàn)有效提高推送的近似題集合中的題目與第一題目的相關(guān)性。
本發(fā)明的實(shí)施例二為:
提取第一題目中的符號(hào);
根據(jù)預(yù)設(shè)的轉(zhuǎn)義字符轉(zhuǎn)換所述符號(hào),得到第二題目;
根據(jù)所述第二題目構(gòu)建詞頻向量;所述詞頻向量中元素的個(gè)數(shù)為預(yù)設(shè)訓(xùn)練數(shù)據(jù)集中不同詞的數(shù)量,所述詞頻向量中元素的值為與所述元素相應(yīng)的詞在所述第二題目中出現(xiàn)的次數(shù);
根據(jù)預(yù)設(shè)的維度建立語義特征抽取模型;
根據(jù)所述語義特征抽取模型構(gòu)建與所述第二題目相應(yīng)的語義向量;
根據(jù)基于詞頻的知識(shí)點(diǎn)分類模型,得到與所述詞頻向量相應(yīng)的第一知識(shí)點(diǎn)集合;
根據(jù)基于語義的知識(shí)點(diǎn)分類模型,得到與所述語義向量相應(yīng)的第二知識(shí)點(diǎn)集合;
獲取所述第一知識(shí)點(diǎn)集合和所述第二知識(shí)點(diǎn)集合中相同的知識(shí)點(diǎn);
獲取所述相同的知識(shí)點(diǎn)根據(jù)基于詞頻的知識(shí)點(diǎn)分類模型得到的第一權(quán)重值;
獲取所述相同的知識(shí)點(diǎn)根據(jù)基于語義的知識(shí)點(diǎn)分類模型得到的第二權(quán)重值;
根據(jù)所述第一權(quán)重值和所述第二權(quán)重值,形成與所述相同的知識(shí)點(diǎn)相應(yīng)的權(quán)重值集合;
根據(jù)所述權(quán)重值集合排序?qū)⑺鱿嗤闹R(shí)點(diǎn),獲取與預(yù)設(shè)知識(shí)點(diǎn)數(shù)相應(yīng)的知識(shí)點(diǎn),形成第三知識(shí)點(diǎn)集合;
根據(jù)所述第三知識(shí)點(diǎn)集合得到與所述詞頻向量和所述語義向量相應(yīng)的分類;
計(jì)算所述第一題目與所述分類中各題目的余弦距離;
根據(jù)所述余弦距離得到所述第一題目與所述分類中各題目的相似度;
將所述分類中各題目按所述相似度排序,形成第一隊(duì)列;
從所述第一隊(duì)列中獲取與預(yù)設(shè)推薦數(shù)相應(yīng)的題目,形成近似題集合;
推送所述近似題集合。
由上述描述可知,本實(shí)施例與本發(fā)明的實(shí)施例一相比,進(jìn)一步結(jié)合詞頻向量和可以度量上下文之間關(guān)系的語義向量,有效提高獲取第一題目相關(guān)知識(shí)點(diǎn)的準(zhǔn)確性,從而提高推送近似題的相關(guān)性。
本發(fā)明的實(shí)施例一提供的方案隨著題目字?jǐn)?shù)的增加,歸類的準(zhǔn)確率降低。本發(fā)明的實(shí)施例二進(jìn)一步結(jié)合詞頻向量和可以度量上下文之間關(guān)系的語義向量,使得歸類的準(zhǔn)確率不受題目字?jǐn)?shù)的影響。但是,對(duì)于字?jǐn)?shù)較短的題目,本發(fā)明的實(shí)施例一可以在保證高歸類準(zhǔn)確率的同時(shí),比本發(fā)明的實(shí)施例二具有更高的效率。
本發(fā)明的實(shí)施例三為:
S1、提取第一題目中的符號(hào);
其中,第一題目為“使函數(shù)有意義的的正整數(shù)取值范圍組成的集合的元素有?”提取第一題目中的符號(hào)“√”、“=”和“-”。
S2、根據(jù)預(yù)設(shè)的轉(zhuǎn)義字符轉(zhuǎn)換所述符號(hào),得到第二題目;
其中,符號(hào)“√”的轉(zhuǎn)義字符為“\sqrt”,符號(hào)“=”的轉(zhuǎn)義字符為英文狀態(tài)下輸入的等于號(hào),符號(hào)“-”的轉(zhuǎn)義字符為英文狀態(tài)下輸入的減號(hào)。經(jīng)轉(zhuǎn)義字符轉(zhuǎn)換后得到的第二題目為“使函數(shù)有意義的y=\sqrt(5-x)正整數(shù)取值范圍組成的集合的元素有?”
S3、解析所述第二題目,得到中文字符棧和非中文字符棧;
使用切詞算法對(duì)所述中文字符棧中的字符進(jìn)行切詞處理,并使用預(yù)設(shè)的正則表達(dá)式匹配所述非中文字符棧中存儲(chǔ)的公式,得到第三題目;
其中,使用jieba切詞算法對(duì)所述中文字符棧中的字符進(jìn)行切詞處理,并使用預(yù)設(shè)的正則表達(dá)式匹配所述非中文字符棧中存儲(chǔ)的公式得到的所述第三題目為:“使@函數(shù)@有意義@的@y@=@\sqrt@(@5@-@x@)@正整數(shù)@取值范圍@組成@的@集合@的@元素@有@?”其中,符號(hào)@表示分隔符。
S4、計(jì)算所述第三題目中各個(gè)詞的權(quán)重;
根據(jù)所述權(quán)重將所述第三題目中的詞排序,形成第一隊(duì)列;
從所述第三題目中刪除與預(yù)設(shè)個(gè)數(shù)元素相應(yīng)的詞,得到第四題目;
其中,使用TF-IDF算法計(jì)算所述第三題目中各個(gè)詞的權(quán)重,得到所述第三題目中各個(gè)詞的權(quán)重依次為:
使(0.05)@函數(shù)(0.51)@有意義(0.22)@的(0.02)@y(0.09)@=(0.07)@\sqrt(0.22)@((0.01)@5(0.01)@-(0.07)@x(0.07)@)(0.01)@正整數(shù)(0.49)@取值范圍(0.44)@組成(0.15)@的(0.02)@集合(0.38)@的(0.02)@元素(0.35)@有(0.05)@?(0.01)。
從第三題目中刪除詞的權(quán)重較小的詞,如將第三題目中各個(gè)詞按其權(quán)重從大到小排序,得到第一隊(duì)列,所述第一隊(duì)列具體為:“函數(shù)@正整數(shù)@取值范圍@集合@元素@有意義@\sqrt@組成@y@=@使@x@-@有@的@的@的@(@)@?@5”,從第三題目中刪除與第一隊(duì)列中后13個(gè)元素對(duì)應(yīng)的詞,得到第四題目,所述第四題目為:“函數(shù)@有意義@\sqrt@正整數(shù)@取值范圍@組成@集合@元素”。
S5、根據(jù)所述第四題目構(gòu)建詞頻向量;所述詞頻向量中元素的個(gè)數(shù)為預(yù)設(shè)訓(xùn)練數(shù)據(jù)集中不同詞的數(shù)量,所述詞頻向量中元素的值為與所述元素相應(yīng)的詞在所述第二題目中出現(xiàn)的次數(shù);
其中,先統(tǒng)計(jì)第四題目中每個(gè)詞出現(xiàn)的次數(shù),再根據(jù)所有非停止詞所構(gòu)建的非停止詞向量,構(gòu)建第四題目的詞頻向量。
例如,非停止詞向量長度為1000維,從第四題目中可知每個(gè)詞都只出現(xiàn)了一次,那么所構(gòu)建的詞頻向量長度等于非停止詞向量長度1000維,每維元素為該維所代表的詞在第四題目中出現(xiàn)的次數(shù)。因此除了第四題目中的詞匯所代表的維度為1之外,其他維度的值都將為0。
S6、根據(jù)預(yù)設(shè)的維度建立語義特征抽取模型;
根據(jù)所述語義特征抽取模型構(gòu)建與所述第四題目相應(yīng)的語義向量;
其中,將第四題目中出現(xiàn)的每個(gè)詞輸入到已經(jīng)訓(xùn)練好的語義模型中(例如word2vec或者GloVe模型)獲得每個(gè)詞的向量,由于得到的每個(gè)詞的向量是等長的,因此可以將每個(gè)詞的向量進(jìn)行疊加,即相同維度值相加,得到一個(gè)包含整個(gè)題目的向量,語義模型是一種可以保存語義上下文關(guān)系的表示方法。
S7、根據(jù)基于詞頻的知識(shí)點(diǎn)分類模型,得到與所述詞頻向量相應(yīng)的第一知識(shí)點(diǎn)集合;
根據(jù)基于語義的知識(shí)點(diǎn)分類模型,得到與所述語義向量相應(yīng)的第二知識(shí)點(diǎn)集合;
獲取所述第一知識(shí)點(diǎn)集合和所述第二知識(shí)點(diǎn)集合中相同的知識(shí)點(diǎn);
獲取所述相同的知識(shí)點(diǎn)根據(jù)基于詞頻的知識(shí)點(diǎn)分類模型得到的第一權(quán)重值;
獲取所述相同的知識(shí)點(diǎn)根據(jù)基于語義的知識(shí)點(diǎn)分類模型得到的第二權(quán)重值;
根據(jù)所述第一權(quán)重值和所述第二權(quán)重值,形成與所述相同的知識(shí)點(diǎn)相應(yīng)的權(quán)重值集合;
根據(jù)所述權(quán)重值集合排序?qū)⑺鱿嗤闹R(shí)點(diǎn),獲取與預(yù)設(shè)知識(shí)點(diǎn)數(shù)相應(yīng)的知識(shí)點(diǎn),形成第三知識(shí)點(diǎn)集合;
根據(jù)所述第三知識(shí)點(diǎn)集合得到與所述詞頻向量和所述語義向量相應(yīng)的分類;
其中,第一知識(shí)點(diǎn)集合為:{集合元素的取值范圍,函數(shù)的表示方法,集合的表示法,集合中元素的最值根的存在性,集合中元素的最值根的個(gè)數(shù)判定,函數(shù)的值,根式運(yùn)算},表示第四題目經(jīng)過基于詞頻的知識(shí)點(diǎn)分類模型的處理得知第四題目所包含的知識(shí)點(diǎn),且第四題目與各個(gè)知識(shí)點(diǎn)的關(guān)聯(lián)度分別為:{0.85,0.04,0.03,0.02,0.03,0.02,0.01}。第二知識(shí)點(diǎn)集合為:{集合元素的取值范圍,根式運(yùn)算,集合的表示法,集合中元素的最值,集合的相等,函數(shù)的定義域及其求法,函數(shù)的值},表示第四題目經(jīng)過基于語義的知識(shí)點(diǎn)分類模型的處理得知第四題目所包含的知識(shí)點(diǎn),且第四題目與各個(gè)知識(shí)點(diǎn)的關(guān)聯(lián)度分別為:{0.73,0.08,0.08,0.04,0.04,0.02,0.01}。獲取第一知識(shí)點(diǎn)集合和第二知識(shí)點(diǎn)集合中相同的知識(shí)點(diǎn),形成第三知識(shí)點(diǎn)集合。
形成第三知識(shí)點(diǎn)集合有以下兩種方式:
方式一,獲取第一知識(shí)點(diǎn)集合和第二知識(shí)點(diǎn)集合中相同的,且關(guān)聯(lián)度較大的知識(shí)點(diǎn)。所述第三知識(shí)點(diǎn)集合的知識(shí)點(diǎn)同時(shí)滿足第四題目的詞頻向量和語義向量的特征,與第四題目的關(guān)聯(lián)度較大,可獲取相關(guān)度高的知識(shí)點(diǎn)分類。
方式二,獲取第一知識(shí)點(diǎn)集合和第二知識(shí)點(diǎn)集合的并集為第三知識(shí)點(diǎn)集合。該方式使得獲得的知識(shí)點(diǎn)分類更加全面。
S8、計(jì)算所述第一題目與所述分類中各題目的余弦距離;
根據(jù)所述余弦距離得到所述第一題目與所述分類中各題目的相似度。
其中,計(jì)算余弦距離的公式如下所示:
其中,x表示第一題目的特征向量,y表示所述分類中各題目的特征向量,cosθ的值越接近1,表示兩個(gè)題目的相似度越高。
本發(fā)明所使用的余弦距離作為計(jì)算兩個(gè)題目的相似度具有如下優(yōu)勢:
(1)將最終的相似度映射到0-1之間,方便對(duì)不同相似的題目進(jìn)行排序和理解;
(2)將兩個(gè)文本的所有詞都考慮在內(nèi),信息不丟失;
(3)由于新題目是向量的構(gòu)成方式,計(jì)算速度快,便于分布式計(jì)算。
S9、將所述分類中各題目按所述相似度排序,形成第一隊(duì)列;
從所述第一隊(duì)列中獲取與預(yù)設(shè)推薦數(shù)相應(yīng)的題目,形成近似題集合;
其中,所述分類中各題目按相似度從高到低排序,并獲取第一隊(duì)列中前預(yù)設(shè)推薦數(shù)個(gè)題目,即與第一題目相似度最高的預(yù)設(shè)推薦數(shù)個(gè)題目形成近似題集合。
S10、推送所述近似題集合。
綜上所述,本發(fā)明提供的一種近似題推送方法,通過提取第一題目中的符號(hào),根據(jù)所述符號(hào)進(jìn)行歸類并推送與第一題目相似的近似題集合,實(shí)現(xiàn)充分利用題目中的信息,從而提高推薦題目的相關(guān)性。進(jìn)一步地,由于不同來源的題目的描述方式可能不同,尤其是不同的公式編輯器對(duì)公式中的符號(hào)的描述差異較大,因此,通過預(yù)設(shè)的轉(zhuǎn)義字符轉(zhuǎn)換所述公式中的符號(hào),可歸一化不同描述方式但代表相同意思的符號(hào),從而準(zhǔn)確并充分利用題目中的信息,提高推送題目的相關(guān)性及獲取近似題的效率。進(jìn)一步地,由于現(xiàn)有的切詞算法會(huì)刪除題目中的非中文字符,只對(duì)中文字符進(jìn)行切詞處理,因此,本發(fā)明先將題目中的中文字符和非中文字符分別放入不同的棧,對(duì)中文字符棧進(jìn)行切詞處理,對(duì)非中文字符棧使用正則表達(dá)式匹配相應(yīng)的公式,盡量將公式中可識(shí)別的部分分開,能夠在保留題目中信息的同時(shí),對(duì)題目進(jìn)行切詞,有利于提取題目中的特征向量。進(jìn)一步地,本發(fā)明通過停止詞計(jì)算算法,計(jì)算各個(gè)詞在題目中的權(quán)重,并刪除所述第三題目中權(quán)重較小的詞,能夠針對(duì)不同學(xué)科獲得不同的停止詞,從而提高獲取到的近似題的相關(guān)性。進(jìn)一步地,本發(fā)明不僅包含有詞頻向量而特意引入了可以度量上下文之間關(guān)系的語義向量,將兩種向量結(jié)合可有效提高分類正確率,保證在獲取詞匯對(duì)整個(gè)題庫的重要程度的基礎(chǔ)上,加入詞匯之間的上下文關(guān)系,使得后續(xù)輸入到分類模型中的向量具有更豐富的含義,從而提高獲取近似題的相關(guān)性。進(jìn)一步地,在不同的場景下,用戶所需的推薦數(shù)可能不同,可根據(jù)預(yù)設(shè)推薦數(shù)推薦最相關(guān)的題目。
以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。