的基礎(chǔ)信息(例如出發(fā)地、目的地、出游天數(shù))) 篩選出與基準(zhǔn)產(chǎn)品具有相同出發(fā)地,相同目的地,相同出游天數(shù)的旅游線路產(chǎn)品作為候選 的相似產(chǎn)品,將每個候選相似產(chǎn)品都與基準(zhǔn)產(chǎn)品從多個維度進(jìn)行兩兩相似度計算,包括線 路行程信息,價格信息,團(tuán)期信息,交通信息,對每個維度的相似度加權(quán)后進(jìn)行判斷,并給出 總和相似度評分,該步驟中包括以下幾個階段: 行程相似度計算:旅游線路類產(chǎn)品的行程描述是用于標(biāo)識產(chǎn)品的重要特性,而行程信 息描述的內(nèi)容是每天要去的地點和景點,因此我們認(rèn)為行程中描述地名和景點名稱的詞語 更能代表此行程,本例采取詞性標(biāo)注的方法用于提取文本的特征向量。先將候選相似線路 產(chǎn)品的行程信息作為輸入文本,對文本進(jìn)行分詞,然后對這些詞語進(jìn)行詞性標(biāo)注,以步驟A 中旅游產(chǎn)品為例,對其行程信息進(jìn)行分詞和詞性標(biāo)注的結(jié)果如下: 早餐/η后/nd ,/w漫步/v于/p俄羅斯/ns的/u精神/η中心/η -/ w -/w -/w -/w紅場/ns (/w克里姆林宮/ns墻外/nl就是/r紅場/ns ,/ w面積/n 9/m ./w 1/m萬/m平方米/q ,/w地面/n全部/n由/p條石/ n鋪/v成/v ,/w顯得/v古老/a而/c神圣/a 。/\¥紅場/ns 15/m世紀(jì) /nt就/d 已/d 出現(xiàn)/v 。/w 當(dāng)時/nt ,/w沙皇/nh伊凡三世/nh下令/v 拆除/v克里姆林宮/ns外圍/n的/u木墻/ns ,/w改為/v市場/n ,/w從 而/c得名/v "/w托爾格/n "/w ,/w即/d "/w集市/n廣場/n "/w 。/ w 1662/m 年/nt 改為/v 〃/w 紅場/ns 〃/w ,/w 古/a 俄語/n 意為/vl 〃/ w美麗/a的/u廣場/n 〃/w )/w,/w參觀/v列寧墓/ns -/w瞻仰/v世 界/n偉大/a的/u革命/v導(dǎo)師/n列寧/nh,/w瓦西里大教堂/ns ,/w無 名烈士墓/ns 、/w亞歷山大花園/ns (/w 3/m個/q景點/n共/d約/v 1/m 小時/nt )/w ,/w世界/n著名/a的/u商場/n -/w古姆百貨商店/ns (/ w入內(nèi)/v游覽/v約/v 30/m分鐘/q )/w 。/w 游覽/v莫斯科/ns的/u心臟/n和/c歷史/n發(fā)源地/n -/w克里姆 林宮/ns (/w入內(nèi)/v參觀/v ,/w游覽/v時間/n約/v 1/m小時/nt )/w ,/w它/r由/p迷人/v的/u宮殿/n 、/w官邸/n 、/w教堂/n和/c珍 藏/v著/u各種/r無價之寶/i的/u寶庫/n構(gòu)成/v ,/w您/r可以/vu 看到/v 15/m -/w 17/m世紀(jì)/nt的/u俄羅斯/ns建筑/v杰作/n圣母升天 大教堂/ns ,/w報喜大教堂/ns ,/w天使長大教堂/ns ,/w金頂/n的/u伊 凡大帝鐘樓/ns ,/w 16/m世紀(jì)/nt的/u炮/η王/nhf和/c 18/m世紀(jì)/nt 的/u 鐘/n 王/nhf 。/w 下午/nt乘/v高鐵/nh赴/v圣彼得堡/ns ,/w抵達(dá)/v后/nd入住/v 酒店/n 休息/v 。/w 上述結(jié)果中,n為名詞,v為動詞,ns為地名,w為標(biāo)點符號,a為形容詞,m為數(shù)量詞,p 為介詞,u為助詞,c為連接詞,nhf為姓,nt為時間名詞,r為代詞,i為成語,vl為聯(lián) 系動詞。
[0016] 隨后,將行程中出現(xiàn)的地名的名詞提取出來,利用這些詞語組成這個產(chǎn)品的特征 向量如下:
[俄羅斯,紅場,克里姆林宮,列寧墓,瓦西里大教堂,無名烈士墓、亞歷山大花園,古姆 百貨商店,莫斯科,圣母升天大教堂,報喜大教堂,天使長大教堂,圣彼得堡] 對應(yīng)的詞頻為:
[2, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 針對篩選出來的特征詞向量進(jìn)行相似度計算,我們采用的是余弦相似度計算,通過測 量兩個向量內(nèi)積空間的夾角的余弦值來度量它們之間的相似性,由此計算每條線路的行程 的相似度,假定A和B是兩個旅游產(chǎn)品行程信息中提取出來的η維特征向量,A是(Al,A2, ...,An),B是(Bl,B2,. . .,Bn),則A與B的夾角Θ的余弦等于:
該余弦值即為行程相似度。
[0017] 團(tuán)期相似度根據(jù)以下方法進(jìn)行計算:令一條線路所有團(tuán)期的集合是A,另一條線 路所有團(tuán)期的集合是B,則相似度=A η B / A U B。
[0018] 價格相似度根據(jù)以下方法進(jìn)行計算: 首先計算線路A和線路B的平均價格averageA和averageB,以線路A為例,采取線路 A中所有團(tuán)期總價除以團(tuán)期數(shù),得到線路A的平均價格;后再依下式計算線路A和線路B的 價格差額: price = 1- (abs (averageA - averageB)/averageA+abs(averageA-averageB) / averageB)/2 其中,abs為取絕對值。如果兩個價格完全一樣,則計算出相似度為1,即為100%價格 相同。
[0019] 基于上述已經(jīng)計算得出的行程相似度、團(tuán)期相似度和價格相似度,通過以下公式 計算兩個旅游產(chǎn)品的總和相似度: 總和相似度=行程相似度*行程權(quán)重+團(tuán)期相似度*團(tuán)期權(quán)重+價格相似度*價格權(quán) 重。
[0020] 本例中設(shè)行程相似度權(quán)重為80%,團(tuán)期相似度權(quán)重為10%,價格相似度權(quán)重為10%, 前期計算得出的兩個產(chǎn)品的行程相似度為90%,團(tuán)期相似度為80%,價格相似度為100%,則 計算出的總和相似度為〇. 9*0. 8+0. 8*0. 1+0. 1=0. 90,當(dāng)總和相似度達(dá)到或超過設(shè)定好的 比對閾值(本例中設(shè)為90%即0. 9)時,可以認(rèn)為此類產(chǎn)品是相同的,這兩個旅游產(chǎn)品便可作 為同組線路進(jìn)行比價。若相似度不足90%,也可以人工進(jìn)行判斷是否為相同或相似的線路。 遍歷所有候選相似產(chǎn)品后,便可以篩選出與基準(zhǔn)產(chǎn)品相同的旅游線路產(chǎn)品,這些產(chǎn)品加入 該基準(zhǔn)產(chǎn)品的相同產(chǎn)品列表中。經(jīng)過本步驟,能夠獲得各基準(zhǔn)產(chǎn)品的所有其他網(wǎng)站上的相 同旅游線路產(chǎn)品鏈接。
[0021] 步驟C,對于步驟B中已經(jīng)完成匹配的相同產(chǎn)品列表,當(dāng)用戶有比價的請求的時 候,將會實時的去各個網(wǎng)站抓取對應(yīng)產(chǎn)品的最新價格,以保障價格數(shù)據(jù)的實時性和準(zhǔn)確性。
[0022] 考慮到各網(wǎng)站上的旅游產(chǎn)品更新頻率并不一致,如果每次用戶請求比價時都進(jìn)行 所有鏈接的實時抓取則會浪費大量的網(wǎng)絡(luò)資源,且會造成效率低下。因此,本發(fā)明采用爬蟲 系統(tǒng)配合多種隊列一一全量隊列、實時隊列、周期隊列,同時利用緩存來實現(xiàn)既能夠根據(jù)用 戶請求獲得最新數(shù)據(jù),又能夠充分節(jié)省資源的效果: 全量抓取隊列中存儲有所有相同產(chǎn)品列表中的所有線路產(chǎn)品鏈接,用于進(jìn)行所有產(chǎn)品 鏈接的全量抓取,并由此獲得各個線路產(chǎn)品的更新周期。周期隊列用于放置到達(dá)更新周期 的產(chǎn)品鏈接。實時隊列,采用優(yōu)先Q隊列,當(dāng)前頁面上的相同產(chǎn)品隊列鏈接即被放至實時抓 取隊列中,實時隊列用于實時去各鏈接網(wǎng)址上抓取最新價格。緩存中存儲有上一次抓取(包 括實時抓取獲得的、全量抓取獲得的以及周期性抓取獲得的)的其他網(wǎng)站各線路產(chǎn)品的最 新價格。
[0023] 全量隊列中具有前述步驟B中獲得的所有相同產(chǎn)品列表中的各線路產(chǎn)品鏈接(不 包括作為比較基準(zhǔn)的本網(wǎng)站產(chǎn)品),爬蟲系統(tǒng)不停依次抓取全量隊列中各鏈接的價格抓取, 并記錄價格發(fā)生變化的產(chǎn)品鏈接跟上次價格發(fā)生變化的時間差(本發(fā)明以小時為單位時 間),以