下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、向量相似度的算法实现(信息检索)ython向量相似度的算法实现实验目的:通过实验,使学生掌握向量相似度的基本实现方法。实验内容:向量空间模型是信息检索中最重要的形式化模型之一,向量相似度是对向量空间模型评分的重要依据。本实验需要编程实现向量相似度的基本算法P78要求:输入:查询(如bestcarinsurance),文档(如carinsuranceautoinsurance),文档总数N的值(如1000000),文档中每个词的文档频率df输出:向量相似度的值编程语言:Python例子余弦相似度计算样例:nncdtnP86查询:bestcarinsurance*文档:Varinsuranceau
2、toinsurance(N-1000000)|词顶!査询內枫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最后结果二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(请输入词项并按下回车,结束直接按下回车)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)计算待检索词项在查询中和在文档中出现的频率并存入字典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计算内积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,inner
8、_mutiply)if_name_=_mainVector_similarity()运行截图C:serjkaiVLppDataLzcalProeiairisPythatiPytliojiazvpythen,eseC:/Ls-ers/kB4/实监牡pyl愉人査训:文档:诸轴入词顼井按下回车,纳取直接樓下回牟M输入刖忆的df:谥籀入网顼并携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网朝轴血训的(丈档).巾冲空(叩平方利丿f用?卄
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47612-2026温室气体产品碳足迹量化方法与要求石灰
- 永州市东安县2025届三年级数学上学期阶段学业水平测试模拟试题(含答案解析)
- 初唐四杰王勃的文学解析
- 新教材人教版八下数学期末考前划重点练习版
- 2026年书店感恩节活动方案策划书
- 2026年商业化销售运营方案
- 2026年室内设计大学生涯职业规划
- 2026年大学生清明祭英烈活动方案
- 2026年大学校园读书节活动方案
- 2026年发电机房安全距离标准
- 2024年山东高中学业水平合格考试化学试卷真题(含答案详解)
- T-CSBT 012-2024 全血及成分血外观检查和处置指南
- 第一章体育与健康基础知识 第一节 科学发展体能 课件 2024-2025学年人教版初中体育与健康八年级全一册
- 2025《金融机构合规管理办法》解读课件
- 《三国演义》知识竞赛题库及答案解析(100道单选题+判断题100道)
- 青岛版数学四年级下册期末考试试卷及答案
- 四年级语文下册期末测试质量分析
- 五年级数学下册期末测试卷及答案【一套】
- 东南亚(第2课时)
- 珍爱生命预防溺水主题班会课件
- 小数的运算和应用题(专项练习)小升初人教版六年级下册数学
评论
0/150
提交评论