本發(fā)明涉及一種工作機會搜索引擎系統(tǒng),更具體的,涉及一種實時語義搜索工作機會的系統(tǒng)及方法。
背景技術(shù):
實時語義搜索工作機會的主要技術(shù)是對工作機會進(jìn)行實時建立語義索引,然后用戶可以通過上傳簡歷或者填寫工作經(jīng)歷的方式,然后系統(tǒng)進(jìn)行語義分析,然后從海量的招聘信息中,進(jìn)行語義相關(guān)性計算,返回更匹配用戶的工作機會。
現(xiàn)有的招聘網(wǎng)站如前程無憂、智聯(lián)招聘、58同城招聘等都是采用傳統(tǒng)的搜索引擎技術(shù),通過關(guān)鍵詞匹配的方式來搜索工作機會。實現(xiàn)方式是通過對招聘信息的文本進(jìn)行分詞,然后建立倒排索引;在用戶查詢的時候,通過對用戶查詢文本進(jìn)行分詞得到詞組,然后通過詞組來拉取對應(yīng)的倒排拉鏈,然后進(jìn)行合并,得到滿足查詢要求的工作機會?,F(xiàn)有基于關(guān)鍵詞匹配的傳統(tǒng)工作機會搜索引擎實現(xiàn)方式,具有如下的弊端:
1)召回率低(不全):由于自然語言的表達(dá)方式多種多樣,對于同一個職位,會有多種相近的表達(dá)方式;傳統(tǒng)的工作機會搜索引擎,由于無法理解文本的語義,所以只能按照關(guān)鍵詞進(jìn)行嚴(yán)格匹配,導(dǎo)致很多表示同一職位的工作機會,由于描述方式不同而不能有效召回,以至于用戶錯失很多工作機會。
2)準(zhǔn)確率低(不準(zhǔn)):傳統(tǒng)工作機會搜索引擎,由于輸入的信息非常有限,例如“JAVA開發(fā)工程師”會命中成千上萬的工作機會,需要用戶進(jìn)行大量的人工篩選,耗時耗力,同時非常容易錯失一些相關(guān)性非常高的機會。
3)運算能力不足(不快):傳統(tǒng)搜索引擎的實現(xiàn)是基于CPU來做數(shù)據(jù)處理的,由于CPU計算能力的限制,在查詢匹配過程中,會對一些過長的倒排拉鏈進(jìn)行截斷,導(dǎo)致只能查詢到一部分匹配的結(jié)果,影響召回率以及準(zhǔn)確率。
4)數(shù)據(jù)分散:現(xiàn)有各大招聘平臺都是各自實現(xiàn)、維護(hù)一套工作機會搜索引擎,對于用戶來說需要分別從多個平臺搜索工作機會,導(dǎo)致找工作效率非常低下,時間成本高。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一。
為此,本發(fā)明的目的在于,提供一種基于語義的實時工作機會搜索引擎,通過實時采集、聚合各個招聘門戶的招聘信息,然后進(jìn)行實時分析處理,通過語義分析匹配處理,得到最匹配用戶需求的工作機會。通過語義匹配的方式,使用GPU并行計算,達(dá)到“更快、更準(zhǔn)、更全”的目的,大大提高了用戶找工作的效率。
為實現(xiàn)上述目的,本發(fā)明提供了一種實時語義搜索工作機會的系統(tǒng),該系統(tǒng)包括:數(shù)據(jù)處理層和服務(wù)層,
數(shù)據(jù)處理層用于動態(tài)的探測并獲取各個招聘渠道的工作機會,并對工作機會進(jìn)行實時的數(shù)據(jù)分析處理,具體包括Spider集群模塊、數(shù)據(jù)實時流處理集群模塊、結(jié)構(gòu)化數(shù)據(jù)DB集群模塊;所述Spider集群模塊用于從全網(wǎng)的招聘頁面中實時采集招聘信息,并入庫保存;所述數(shù)據(jù)實時流處理集群模塊對于所述Spider集群模塊保存的信息,進(jìn)行實時處理,包括信息抽取、量化、標(biāo)準(zhǔn)化、向量化;所述結(jié)構(gòu)化數(shù)據(jù)DB集群模塊將所述數(shù)據(jù)實時流處理集群模塊處理后的數(shù)據(jù)保存在一個DB集群中,作為所有線上模塊的原始數(shù)據(jù);
服務(wù)層用于對用戶的查詢信息,進(jìn)行分析處理,然后與所述數(shù)據(jù)處理層所述DB集群中保存的招聘信息進(jìn)行實時匹配,并返回與用戶最匹配的工作機會,具體包括查詢網(wǎng)關(guān)、語義檢索服務(wù)模塊、KVDB模塊;所述查詢網(wǎng)關(guān)提供對外查詢接口,并對用戶輸入的查詢信息進(jìn)行預(yù)處理,包括信息提取、量化、向量化,調(diào)用所述語義檢索服務(wù)模塊返回的工作機會id列表,最后查詢KVDB模塊得到完整的工作機會信息;所述語義檢索服務(wù)模塊對于用戶提交的查詢,進(jìn)行篩選匹配,計算匹配度,并返回匹配的工作機會id列表;所述KVDB模塊,用于存儲與工作機會對應(yīng)的詳細(xì)工作機會信息,并用于前端頁面展示。
更具體的,所述Spider集群模塊具體實現(xiàn)為通過分析各個招聘網(wǎng)站各個頻道、各個招聘列表頁的頁面更新周期,預(yù)估出每個招聘列表頁的更新周期,然后根據(jù)更新周期進(jìn)行實時的抓取節(jié)點,并保存到網(wǎng)頁庫中。
更具體的,所述信息抽取是指將非結(jié)構(gòu)化文本生成結(jié)構(gòu)化數(shù)據(jù),所述量化是指將可數(shù)值化的字段量化,所述標(biāo)準(zhǔn)化是將實體信息標(biāo)準(zhǔn)化,所述向量化是指將文本類的信息向量化為對應(yīng)的語義向量。
更具體的,所述語義檢索服務(wù)模塊包括GPU加速層,用于加速語義計算,對于用戶提交的查詢,根據(jù)查詢篩選條件進(jìn)行篩選,計算出語義向量相似度,然后計算匹配度,排序,并返回最匹配的id列表。
本發(fā)明還提供了一種實時語義搜索工作機會的方法,該方法包括如下步驟:
步驟1,動態(tài)的探測并獲取各個招聘渠道的工作機會,對所述工作機會進(jìn)行實時的抓取、數(shù)據(jù)分析處理,并入庫保存;實時處理流程包括:信息抽取、量化、標(biāo)準(zhǔn)化、向量化;將所述實時處理后的數(shù)據(jù)保存在DB集群中,作為所有線上的原始數(shù)據(jù);
步驟2,用戶通過查詢網(wǎng)關(guān)輸入查詢信息,對用戶輸入的查詢信息進(jìn)行預(yù)處理,包括信息抽取、量化、向量化,然后調(diào)用語義檢索服務(wù);
步驟3,通過語義檢索服務(wù)對用戶提交的所述預(yù)處理后的查詢信息,進(jìn)行查詢條件篩選匹配,計算語義匹配度,并返回匹配的工作機會id列表;
步驟4,所述查詢網(wǎng)關(guān)根據(jù)語義檢索服務(wù)返回的工作機會id列表,查詢KVDB中存儲的與工作機會對應(yīng)的詳細(xì)工作機會信息,最后得到完整的工作機會信息,并展示到前端頁。
更具體的,所述步驟1所述的動態(tài)的探測并獲取各個招聘渠道的工作機會,對所述工作機會進(jìn)行實時的數(shù)據(jù)分析處理,并入庫保存具體實現(xiàn)為:
通過分析各個招聘網(wǎng)站各個頻道、各個招聘列表頁的頁面更新周期,預(yù)估出每個招聘列表頁的更新周期,然后根據(jù)更新周期進(jìn)行實時的抓取節(jié)點信息,并保存到網(wǎng)頁庫中。
更具體的,所述步驟1中的信息抽取、量化、標(biāo)準(zhǔn)化、向量化具體實現(xiàn)為通過所述信息抽取將非結(jié)構(gòu)化文本生成結(jié)構(gòu)化數(shù)據(jù),將可數(shù)值化的字段量化,將實體信息標(biāo)準(zhǔn)化,并將文本類的信息向量化為對應(yīng)的語義向量。
更具體的,所述步驟2中的信息抽取、量化、向量化具體實現(xiàn)為通過所述信息抽取將非結(jié)構(gòu)化文本生成結(jié)構(gòu)化數(shù)據(jù),將可數(shù)值化的字段量化,并將文本類的信息向量化為對應(yīng)的語義向量。
更具體的,所述語義檢索服務(wù)包括通過GPU加速層,加速語義計算,對于用戶提交的查詢,根據(jù)查詢篩選條件進(jìn)行篩選,計算出語義向量相似度,然后計算匹配度,排序,并返回最匹配的id列表。
本發(fā)明提出的實時語義搜索工作機會系統(tǒng),相比于傳統(tǒng)的工作搜索引擎,具有如下有益的技術(shù)效果:
1)更高的召回率以及準(zhǔn)確率,以“前端工程師”為例子,通過語義檢索的方式,可以召回“WEB工程師”、“WEB開發(fā)工程師”、“WEB開發(fā)”、“前端開發(fā)工程師”、“前端開發(fā)”等職位的工作機會;相對于傳統(tǒng)的關(guān)鍵詞檢索方式,同樣的查詢會返回多達(dá)幾倍甚至幾十倍的工作機會。同時,通過用戶上傳的簡歷或者工作經(jīng)歷描述,語義匹配的搜索方式,與所有工作機會(千萬級別)計算一個匹配度,然后按照匹配度排序返回最匹配的工作機會,篩選效率提高了幾倍到幾十倍。
2)高時效性,通過引入了實時Spider集群,動態(tài)的探測各個招聘渠道的工作機會更新,在第一時間抓取新增的工作機會,然后在秒級別內(nèi)對工作機會進(jìn)行實時的分析處理并入庫,然后實時分發(fā)到各個服務(wù)模塊,建立索引,提供查詢。
3)更全面的工作機會分析
由于語義計算涉及到海量的浮點運算,傳統(tǒng)的CPU處理能力非常有限,導(dǎo)致查詢中會對查詢過程進(jìn)行截斷,僅僅查詢部分?jǐn)?shù)據(jù)后返回查詢結(jié)果;本系統(tǒng)通過引入GPU計算的方式,用于加速語義計算,達(dá)到了幾十倍的加速效果;同時每個查詢都可以進(jìn)行全量的全庫數(shù)據(jù)分析計算,對工作機會分析更全面準(zhǔn)確。
附圖說明
本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1示出了根據(jù)本發(fā)明一種實時語義搜索工作機會的系統(tǒng)的整體框架圖;
圖2示出了本發(fā)明一實施例的一種實時語義搜索工作機會的系統(tǒng)框架圖;
圖3示出了本發(fā)明一種實時語義搜索工作機會的方法流程圖。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的方式來實施,因此,本發(fā)明的保護(hù)范圍并不受下面公開的具體實施例的限制。
圖1示出了根據(jù)本發(fā)明一種實時語義搜索工作機會的系統(tǒng)的整體框架圖。
如圖1所示,根據(jù)本發(fā)明的一個具體實施例提供了一種實時語義搜索工作機會的系統(tǒng),該系統(tǒng)包括:數(shù)據(jù)處理層和服務(wù)層兩大部分,
數(shù)據(jù)處理層用于動態(tài)的探測并獲取各個招聘渠道的工作機會,并對工作機會進(jìn)行實時的數(shù)據(jù)分析處理,具體包括Spider集群模塊、數(shù)據(jù)實時流處理集群模塊、結(jié)構(gòu)化數(shù)據(jù)DB集群模塊;所述Spider集群模塊用于從全網(wǎng)的招聘頁面中實時采集招聘信息,并入庫保存;所述數(shù)據(jù)實時流處理集群模塊對于所述Spider集群模塊保存的信息,進(jìn)行實時處理,包括信息抽取、量化、標(biāo)準(zhǔn)化、向量化;所述結(jié)構(gòu)化數(shù)據(jù)DB集群模塊將所述數(shù)據(jù)實時流處理集群模塊處理后的數(shù)據(jù)保存在一個DB集群中,作為所有線上模塊的原始數(shù)據(jù)。
具體而言,Spider集群模塊通過分析各個招聘網(wǎng)站各個頻道、各個招聘列表頁的頁面更新周期,預(yù)估出每個招聘列表頁的更新周期,然后根據(jù)更新周期進(jìn)行實時的抓取節(jié)點信息,并保存到網(wǎng)頁庫中。
數(shù)據(jù)實時流處理集群模塊對于Spider抓取的原始招聘信息頁面,通過實時流集群進(jìn)行實時處理,包括:信息抽取、量化、標(biāo)準(zhǔn)化、向量化。
更具體的,招聘信息、以及用戶的簡歷通常是一種非結(jié)構(gòu)化或者半結(jié)構(gòu)化的文本,需要轉(zhuǎn)化成結(jié)構(gòu)化的數(shù)據(jù)后才能進(jìn)行后續(xù)的查詢處理,信息抽取就是通過從非結(jié)構(gòu)化或半結(jié)構(gòu)化的頁面中提取招聘公司名稱、招聘職位、招聘人數(shù)、職位學(xué)歷要求、工作經(jīng)驗要求,薪酬待遇、職位要求等基本元素從而將非結(jié)構(gòu)化或半結(jié)構(gòu)化文本生成結(jié)構(gòu)化數(shù)據(jù)。然后,對可以數(shù)值化的字段,例如工作年薪、專業(yè)等進(jìn)行量化;將例如公司、職位等實體信息進(jìn)行標(biāo)準(zhǔn)化;而對于文本類的信息,例如職位描述,則根據(jù)語義模型,通過向量化生成對應(yīng)的語義向量,如通過機器學(xué)習(xí),使用神經(jīng)網(wǎng)絡(luò),訓(xùn)練出針對該業(yè)務(wù)的模型,然后把一段文本轉(zhuǎn)換為一個高維向量,用來表述文本的語義。
服務(wù)層用于對用戶的查詢信息,進(jìn)行分析處理,然后與數(shù)據(jù)處理層所述DB集群中保存的招聘信息進(jìn)行實時匹配,并返回與用戶最匹配的工作機會,具體包括查詢網(wǎng)關(guān)、語義檢索服務(wù)模塊、KVDB模塊;所述查詢網(wǎng)關(guān)提供對外查詢接口,并對用戶輸入的查詢信息進(jìn)行預(yù)處理,包括信息抽取、量化、向量化,調(diào)用所述語義檢索服務(wù)模塊返回的工作機會id列表,最后查詢KVDB模塊得到完整的工作機會信息;所述語義檢索服務(wù)模塊對于用戶提交的查詢,進(jìn)行篩選匹配,計算匹配度,并返回匹配的工作機會id列表;所述KVDB模塊,用于存儲與工作機會對應(yīng)的詳細(xì)工作機會信息,并用于前端頁面展示。
更具體的,語義檢索服務(wù)模塊由于需要進(jìn)行語義計算而涉及到海量的浮點運算,傳統(tǒng)的CPU處理能力非常有限,本系統(tǒng)引入GPU加速層,用于加速語義計算,對于用戶提交的查詢,根據(jù)查詢篩選條件進(jìn)行篩選,計算出語義向量相似度,然后計算匹配度,排序,并返回最匹配的id列表。因此,本系統(tǒng)通過引入了GPU計算,對于用戶每個查詢,我們可以在20毫秒左右分析用戶的簡歷,然后與千萬級別的招聘信息進(jìn)行實時匹配,計算匹配度然后返回最匹配用戶的工作機會,大大提高了工作機會檢索的效率。
圖2示出了本發(fā)明一實施例的一種實時語義搜索工作機會的系統(tǒng)框架圖。
如圖2所示,Spider集群模塊通過分析各個招聘網(wǎng)站各個頻道、各個招聘列表頁的頁面更新周期,預(yù)估出每個招聘列表頁的更新周期,然后根據(jù)更新周期進(jìn)行實時的抓取節(jié)點信息,然后通過Spider集群調(diào)度器調(diào)度任務(wù),并將信息保存到網(wǎng)頁庫中。
數(shù)據(jù)實時流處理集群模塊對于所述Spider集群模塊保存的原始數(shù)據(jù)信息信息,進(jìn)行實時處理,包括特征提取、量化、標(biāo)準(zhǔn)化、向量化生成語義向量,然后將結(jié)構(gòu)化數(shù)據(jù)儲存到結(jié)構(gòu)化數(shù)據(jù)DB集群模塊的DB集群中,再將結(jié)構(gòu)化數(shù)據(jù)DB集群模塊中的數(shù)據(jù)加載到語義檢索服務(wù)模塊。語義檢索服務(wù)模塊通過GPU加速層,加速語義計算,對用戶提交的查詢,根據(jù)查詢篩選條件進(jìn)行篩選,計算出語義向量相似度,然后計算匹配度,排序,并返回最匹配的工作機會id列表。查詢網(wǎng)關(guān)提供對外查詢接口,并對用戶輸入的查詢信息進(jìn)行預(yù)處理,包括信息抽取、量化、向量化,調(diào)用所述語義檢索服務(wù)模塊返回的工作機會id列表,最后查詢KVDB模塊得到完整的工作機會信息。同時,用戶可以通過查詢網(wǎng)管填充工作機會信息。KVDB模塊,用于加載存儲與工作機會對應(yīng)的詳細(xì)工作機會信息,并用于前端頁面展示。
根據(jù)本發(fā)明的另一方面提供了一種實時語義搜索工作機會的方法,圖3示出了本發(fā)明一種實時語義搜索工作機會的方法流程圖。該方法包括如下步驟:
步驟1,動態(tài)的探測并獲取各個招聘渠道的工作機會,對所述工作機會進(jìn)行實時的數(shù)據(jù)分析處理,并入庫保存;對所述保存的信息,進(jìn)行實時處理,包括信息抽取、量化、標(biāo)準(zhǔn)化、向量化;將所述實時處理后的數(shù)據(jù)保存在DB集群中,作為所有線上的原始數(shù)據(jù)。
步驟2,用戶通過查詢網(wǎng)關(guān)輸入查詢信息,對用戶輸入的查詢信息進(jìn)行預(yù)處理,包括信息抽取、量化、向量化,然后調(diào)用語義檢索服務(wù)。
步驟3,通過語義檢索服務(wù)對用戶提交的所述預(yù)處理后的查詢信息,進(jìn)行篩選匹配,計算匹配度,并返回匹配的工作機會id列表。
步驟4,所述查詢網(wǎng)關(guān)根據(jù)語義檢索服務(wù)返回的工作機會id列表,查詢KVDB中存儲的與工作機會對應(yīng)的詳細(xì)工作機會信息,最后得到完整的工作機會信息,并展示到前端頁。
更具體的,所述步驟1中所述的動態(tài)的探測并獲取各個招聘渠道的工作機會,對所述工作機會進(jìn)行實時的數(shù)據(jù)分析處理,并入庫保存具體實現(xiàn)為:通過分析各個招聘網(wǎng)站各個頻道、各個招聘列表頁的頁面更新周期,預(yù)估出每個招聘列表頁的更新周期,然后根據(jù)更新周期進(jìn)行實時的抓取節(jié)點信息,并保存到網(wǎng)頁庫中。
更具體的,招聘信息、以及用戶的簡歷通常是一種非結(jié)構(gòu)化或者半結(jié)構(gòu)化的文本,需要轉(zhuǎn)化成結(jié)構(gòu)化的數(shù)據(jù)后才能進(jìn)行后續(xù)的查詢處理,信息抽取就是通過從非結(jié)構(gòu)化或半結(jié)構(gòu)化的頁面中提取招聘公司名稱、招聘職位、招聘人數(shù)、職位學(xué)歷要求、工作經(jīng)驗要求,薪酬待遇、職位要求等基本元素從而將非結(jié)構(gòu)化或半結(jié)構(gòu)化文本生成結(jié)構(gòu)化數(shù)據(jù)。然后,對可以數(shù)值化的字段,例如工作年薪、專業(yè)等進(jìn)行量化;將例如公司、職位等實體信息進(jìn)行標(biāo)準(zhǔn)化;而對于文本類的信息,例如職位描述,則根據(jù)語義模型,通過向量化生成對應(yīng)的語義向量,如通過機器學(xué)習(xí),使用神經(jīng)網(wǎng)絡(luò),訓(xùn)練出針對該業(yè)務(wù)的模型,然后把一段文本轉(zhuǎn)換為一個高維向量,用來表述文本的語義。
更具體的,語義檢索服務(wù)由于需要進(jìn)行語義計算而涉及到海量的浮點運算,傳統(tǒng)的CPU處理能力非常有限,本系統(tǒng)引入GPU加速層,用于加速語義計算,對于用戶提交的查詢,根據(jù)查詢篩選條件進(jìn)行篩選,計算出語義向量相似度,然后計算匹配度,排序,并返回最匹配的id列表。因此,本系統(tǒng)通過引入了GPU計算,對于用戶每個查詢,我們可以在20毫秒左右分析用戶的簡歷,然后與千萬級別的招聘信息進(jìn)行實時匹配,計算匹配度然后返回最匹配用戶的工作機會,大大提高了工作機會檢索的準(zhǔn)確率、召回率、以及查詢效率。
本發(fā)明的基于語義的實時工作機會搜索引擎,通過動態(tài)實時的采集、聚合各個招聘門戶的招聘信息,將其進(jìn)行實時分析處理,然后通過語義分析匹配處理,與所有工作機會(千萬級別)計算一個匹配度,然后按照匹配度排序返回最匹配用戶需求的工作機會,減少了篩選成本,大大提高了用戶找工作的效率。
本發(fā)明可應(yīng)用各種搜索引擎領(lǐng)域,在任何需要利用語義搜索并進(jìn)行數(shù)據(jù)處理的應(yīng)用場景下都可以使用。
在本說明書的描述中,術(shù)語“一個實施例”、“具體實施例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或?qū)嵗?。而且,描述的具體特征、結(jié)構(gòu)、材料或特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。