向量相似度的算法實現(xiàn)(信息檢索)python_第1頁
向量相似度的算法實現(xiàn)(信息檢索)python_第2頁
向量相似度的算法實現(xiàn)(信息檢索)python_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、向量相似度的算法實現(xiàn)(信息檢索)ython向量相似度的算法實現(xiàn)實驗?zāi)康模和ㄟ^實驗,使學(xué)生掌握向量相似度的基本實現(xiàn)方法。實驗內(nèi)容:向量空間模型是信息檢索中最重要的形式化模型之一,向量相似度是對向量空間模型評分的重要依據(jù)。本實驗需要編程實現(xiàn)向量相似度的基本算法P78要求:輸入:查詢(如bestcarinsurance),文檔(如carinsuranceautoinsurance),文檔總數(shù)N的值(如1000000),文檔中每個詞的文檔頻率df輸出:向量相似度的值編程語言:Python例子余弦相似度計算樣例:nncdtnP86查詢:bestcarinsurance*文檔:Varinsuranceau

2、toinsurance(N-1000000)|詞頂!査詢內(nèi)楓L_Jtfwt出idfW1/q=wf+idftfvzfautoDD50002.30110.4L0best11500001.31.300car11100002.Q2.011D.4:02insuence1110003.03.02?0.822.415idf-lcgN/dfVl2+l2+22=2.44最后結(jié)果二0+0一B2+23.2S偽代碼余弦相似度計算算法CosineScoheq)ftoatScoresAf=0ffetLengthNforeachquerytermtdocalculateWf.ffandfetchpostingslistfo

3、rtForeachpair(c/,inpostingslistBdo5cofestf+=w/f.dxwtReadthearrayLengthforeachddoScoresd=Scorescf/LengthreturnTopKcomponentsofScore5代碼完整版使用nnc.ltn方法importmathimportredefVector_similarity():輸入查詢和文檔injury=input(”請輸入查詢:)doc=input(請輸入文檔:)injury=bestcarinsurancedoc=carinsuranceautoinsurance輸入檢索(參與計算)的詞項并且

4、輸入dfword_retrieve=df=while(1):tem=input(請輸入詞項并按下回車,結(jié)束直接按下回車)iftem!=:word_retrieve.append(tem)df.append(int(input(請輸入的df:.format(tem)else:breakdf=000,0000,10000,1000word_retrieve=auto,best,car,insurance輸入文檔總頻率N=int(input(輸入文檔總頻率:)N=1000000將輸入的查詢和文檔njury和doc提取英文單詞并存至列表injury_list=re.findall(a-zA-Z0-9|

5、-+,injury)doc_list=re.findall(a-zA-Z0-9|-+,doc)print(喳詢的所有單詞項為:,injuryist)print(文檔的所有單詞項為:,doc_list)計算待檢索詞項在查詢中和在文檔中出現(xiàn)的頻率并存入字典dic_injury=dic_doc=foriinrange(len(word_retrieve):count=0forjinrange(len(injury_list):ifword_retrievei=injury_listj:count+=1dic_injuryword_retrievei=countcount=0forjinrange(l

6、en(doc_list):ifword_retrievei=doc_listj:count+=1dic_docword_retrievei=countprint(查詢中tf為:,dic_injury)print(文檔中tf為:,dic_doc)計算idfidf=mathog(N/per_df,10)forper_dfindfprint(查詢中idf為:,idf)W_tq=W_td=計算余弦平方sum_doc=0foriindic_doc.values():sum_doc+=pow(i,2)pow2=pow(sum_doc,0.5)print(pow2(即平方和開根號)值為:,pow2)計算W_

7、tq,W_tdinner_mutiply=0計算內(nèi)積foriinrange(len(word_retrieve):W_tqword_retrievei=dic_injuryword_retrievei*idfiW_tdword_retrievei=dic_docword_retrievei/pow2inner_mutiply+=W_tqword_retrievei*W_tdword_retrieveiprint(查詢的W_tq=wf(查詢)*idf值為:,W_tq)print(喳詢的W_td=wf(文檔)/pow2(即平方和開根號)值為:,W_td)print(內(nèi)積和最終結(jié)果為:n,inner

8、_mutiply)if_name_=_mainVector_similarity()運(yùn)行截圖C:serjkaiVLppDataLzcalProeiairisPythatiPytliojiazvpythen,eseC:/Ls-ers/kB4/實監(jiān)牡pyl愉人査訓(xùn):文檔:諸軸入詞頊井按下回車,納取直接樓下回牟M輸入刖憶的df:謚籀入網(wǎng)頊并攜1回車,納東直撰按下何車詞碘并按下回乍,姑束言接按F何菲諸輜入car的df:債輸入詞項井按下回牟.陽束直按按卜胃車諸輸入同項井按下11.斷束直按檢下回牟輸入丈檔息額斗:査曲的所有單詞兩為Ibesthhcar1ingurance文轄購府尊單訶妝為:c?ir.insnr?UH:eh-insurance住阿中tf為:fmuta:0,Im-st:L,iai1:L”iAaurance:1丈檔中tf為:fauto.hbest:0htai:LhinurajtceR:2耗詢中i武為:2.3010299956(3981.1.301029995663981.2.0,2.999999999999E6(UP平方拘J號)ftl為:2.4494397427B3178SfflirKHLtg=TfrHiitoh:0.0.:.W02W9563981.hcar2,flrinwiimmw:玄船99瞬9網(wǎng)朝軸血訓(xùn)的(丈檔).巾沖空(叩平方利丿f用?卄

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論