




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、昆明理工大學(xué)信息工程與自動化學(xué)院學(xué)生實(shí)驗(yàn)報(bào)告 (2014 2015學(xué)年第1學(xué)期) 課程名稱:信息檢索與搜索引擎技術(shù)開課實(shí)驗(yàn)室:信自樓445 2014 年12月23日 年級、專業(yè)、班 計(jì) 科 111 學(xué)號 2 姓名 成績 實(shí)驗(yàn)項(xiàng)目名稱 向量空間模型 指導(dǎo)教師 李衛(wèi)疆 教 該同學(xué)是否了解實(shí)驗(yàn)原理: A. 了解口 B.基本了解口 C.不了解口 該同學(xué)的實(shí)驗(yàn)?zāi)芰Γ?A.強(qiáng) 口 B.中等 C.差 帥 該冋學(xué)的實(shí)驗(yàn)是否達(dá)到要求:A.達(dá)到口 B.基本達(dá)到口 C.未達(dá)到口 評 實(shí)驗(yàn)報(bào)告是否規(guī)范: A.規(guī)范口 B.基本規(guī)范口 C.不規(guī)范口 實(shí)驗(yàn)過程是否詳細(xì)記錄: A.詳細(xì)口 B. 一般 C.沒有口 語 教師簽名
2、: 年 月 日 一、 上機(jī)目的及內(nèi)容: 給定文檔語料: d1:北京安立文高新技術(shù)公司 d2:新一代的網(wǎng)絡(luò)訪問技術(shù) d3:北京衛(wèi)星網(wǎng)絡(luò)有限公司 d4:是最先進(jìn)的總線技術(shù)。00 d5:北京升平衛(wèi)星技術(shù)有限公司的新技術(shù)有。0。 設(shè)計(jì)一個(gè)針對這些文檔的信息檢索系統(tǒng)。具體要求是: 1)給出系統(tǒng)的有效詞匯集合(說明取舍原因)。 2)寫出d1和d2在VSM中的表示(使用tf*idf ,寫出各項(xiàng)的數(shù)字表達(dá)式,具體數(shù)值不必實(shí) 際計(jì)算出來)。 3)畫出系統(tǒng)的倒排文件示意圖。 4)按照向量夾角的余弦計(jì)算公式,給出針對查詢“技術(shù)的公司”的前3個(gè)反饋結(jié)果 實(shí)驗(yàn)原理 給定文檔語料: ? d1:北京安立文高新技術(shù)公司 ?
3、d2:新一代的網(wǎng)絡(luò)訪問技術(shù) ? d3:北京衛(wèi)星網(wǎng)絡(luò)有限公司 ? d4:是最先進(jìn)的總線技術(shù)。 Term di d2 d3 d4 d5 Term出現(xiàn) 北京升平 衛(wèi)星技術(shù) 有限公司 的新技術(shù) 有 0 0 0 設(shè)計(jì) 一個(gè)針對 這些文檔的信息檢索系統(tǒng)。具體要求是: 1)給出系統(tǒng)的有效詞匯集合(說明取舍原因)。 北京、安、立、文、高新、技術(shù)、公司、新、網(wǎng)絡(luò)、訪問、衛(wèi)星、有限、先進(jìn)、總線、 升、平 的、是、最、有,這些詞作為停用詞不能加入系統(tǒng)的有效集合 一、代,去除后并不影響原來句子語義的表達(dá)也不能算作系統(tǒng)的有效集合。 2)寫出di和d2在VSM中的表示(使用tf*idf ,寫出各項(xiàng)的數(shù)字表達(dá)式,具體數(shù)值不
4、必實(shí)際 計(jì)算出來) 得到的矩陣: 次數(shù) TF x ID 0 1 0 1 3 安“ 女V 1 叫 0 0 0 0 1 立2/ ” 1 0 0 0 0 1 文 =1 1丨 0 0 0 0 1 說明: 咼新 1 0 0 0 0 1 技術(shù) h 1 0 0 1 3 TF:表 公司 1 0 1 0 1 3 新 0 1 0 0 1 2 示詞項(xiàng)在 網(wǎng)絡(luò) 0 1 1 0 0 2 訪問 0 1 0 0 0 1 該文檔或 衛(wèi)星 o 0 1 0 1 2 有限 0 0 1 0 1 2 者查詢詞 先進(jìn) o 0 0 1 0 1 總線 0 0 0 1 0 1 中出現(xiàn)的 升 0 0 0 0 1 1 平 0 0 0 0 1 1
5、頻度。即該 詞項(xiàng)出現(xiàn)次數(shù)除以該文檔的長度(所有詞的個(gè)數(shù)) :表示詞項(xiàng)k在D中的出現(xiàn)次數(shù)。 :表示該文檔的長度(所有詞的個(gè)數(shù)) IDF:表示詞項(xiàng)在文檔集合中的重要程度。一個(gè)詞項(xiàng)出現(xiàn)的文檔數(shù)越多,說明該詞項(xiàng)的 區(qū)分度越差,其在文檔集合中的重要性就越低。 N:表示集合中的文檔數(shù); 表示出現(xiàn)詞項(xiàng)k的文檔數(shù)。 di中各詞項(xiàng)的數(shù)字表達(dá)式 “北京”的 15 TF x IDF = y X log 彳 “高新”的 15 TF x DF = - x log - “技術(shù)”的 I5 TF x IDF = X log - “公司”的 15 TF x DF = - x log - “文” 女 15 TF x 1DF =
6、- x loy - d2中各詞項(xiàng)的數(shù)字表達(dá)式: “網(wǎng)絡(luò)”的 15 TF x IDF = - X log- “訪問”的 15 TF x DF y x log- “技術(shù)”的 I5 TF x【DF = - X log - 2 “新”的 3)畫出系統(tǒng)的倒排文件示意圖 4)按照向量夾角的余弦計(jì)算公式,給出針對查詢“技術(shù)的公司”的前3個(gè)反 饋結(jié)果。 該部分由代碼實(shí)現(xiàn)。 三、實(shí)驗(yàn)方法、步驟 1. 建立Java項(xiàng)目, 2. 建立DocumentStruct.java 類文件并編輯 3. 建立TextVector.java 類文件并編輯,如圖4-1,圖4-2所示 圖4-1 圖4-2 4. 建立TF.java類文
7、件并編輯,如圖圖4-7所示 圖4-4 5. 建立IDF.java類文件并編輯,如圖圖4-5所示 商# * 1 paclkg耆a cn.modal: 的 RF * ipwuMer * ionr- fyu. itKiiPF PvblLic 1DFO ( idf .0l d: friThi f epuraa dgcMMHtpackagp 4cm.Sal; tlfluttaar fHjbllc c.lass 4c- * paraB由圧一 publl亡 CACl SlBPiWldVHuMlr*事(1013.日E9L0; 的皿“ laHpVKtorlG.t tcffipVoctor20.9; farllr
8、it . Kvectorli fletVec to rtfeight L length. !*( iwividwnd *= v*ctorl, gitVw tOTVjteiflht ( ( i J mg rJ. atVactorWj.ght (| fi )- for(int 1.B0,; i*:vfrEtorl gtViKtDrWeight I) Iwigth i*)( tt-qs fciMlcrl += Miath-pmcCTOrl.geE.V.tarWexcflI (i t 2.0 t屮敘* MAthgeiVKierWiglit(!)ti.3-*. 圖4-6 7. 建立Ma in App.j
9、ava類文件并編輯,圖4-7所示 I? * 出:供廿鼻i主於I益茁真UMtli / i - quaryViKtor nawrrHtQurr(9iJ ( doVctcir nw T*KtVirtariTenCDuntfi.wcunm-rTbritCouHTfx). 6, docjrfltCcitJiinTrid 圖4-7 8.完成后的項(xiàng)目文件夾如圖4-8所示 型 ACModel .9 tv srt 1! acm.model Q Cat u lateSi mJ a va D Docu mentStrurt.java Q IDF.java Q MainApp.java TextVecto r J a
10、 va Q TFjava :乂用E珈庫J:應(yīng)Eg 圖4-8 9.運(yùn)行結(jié)果如圖4-9所示 packageacm.model; 1. DocumentStruct.java 代碼: public class DocumentStruct documentSimValue; publicDocumentStruct() this.documentID = 0; this.documentSimValue = 0; this.documentContent = None; this.documentName = None; publicDocumentStruct(int ID, double sim
11、, String name, String content) this.documentID = ID; this.documentSimValue = sim; this.documentName = name; this.documentContent = content; public String getDocumentContent() returndocumentContent; public void setDocumentContent(String documentContent) this.documentContent = documentContent; public
12、String getDocumentName() returndocumentName; public void setDocumentName(String documentName) this.documentName = documentName; public double getDocumentSimValue() returndocumentSimValue; public void setDocumentSimValue(double documentSimValue) this.documentSimValue = publicintgetDocumentID() return
13、documentID; public void setDocumentID(intdocumentID) this.documentID = documentID; publicDocumentStruct sortDocBySim(DocumentStruct docList) DocumentStruct temp; for(inti=O; ivdocList.length-1; i+) for(int j=i; jdocList.length-1; j+) if(docListi.getDocumentSimValue() docListj.getDocumentSimValue() )
14、 temp = docListi; docListi = docListj; docListj = temp; returndocList; private String documentName; private String documentContent; private double documentSimValue; privateintdocumentID; 2. TextVector.java 代碼: packageacm.model; public class TextVector publicTextVector(int dimension, int termCount, i
15、ntdocumentTermCount, intdocumentCount, int documentContainTermCount) vectorWeight = new doubledimension; for(inti=0; idimension; i+) vectorWeighti= caculateWeight(termCounti, documentTermCount, documentCount, documentContainTermCounti); public double caculateWeight(inttermCount, intdocumentTermCount
16、, intdocumentCount, intdocumentContainTermCount) TF termTF = new TF(termCount, documentTermCount); IDF termIDF = new IDF(documentCount, documentContainTermCount); termTF.caculateTF(); termlDF.caculatelDF(); return(termTF.getTf()*termlDF.getldf(); public double getVectorWeight() returnvectorWeight; p
17、ublic void setVectorWeight(double vectorWeight) this.vectorWeight = vectorWeight; private double vectorWeight; 3. TF.java 代碼 packageacm.model; public class TF public TF() tf = 0.0; termCount = 0; termInDocumentCount = 0; public TF(inttermCount, intdocumentTermCount) this.tf = 0.0; this.termCount = t
18、ermCount; this.termInDocumentCount = documentTermCount; public void caculateTF() if(termlnDocumentCount = 0) System.out.println(” 請先設(shè)置文檔 總數(shù)! ”); return; this.tf = (double)termCount / (double)termlnDocumentCount; public double getTf() returntf; publicintgetTermCount() returntermCount; public void set
19、TermCount(inttermCount) this.termCount = termCount; publicintgetTermInDocumentCount() returntermlnDocumentCount; public void setTermlnDocumentCount(inttermlnDocumentCo unt) this.termInDocumentCount = termInDocumentCount; private double tf; privateinttermCount; privateinttermlnDocumentCount; 4. IDF.j
20、ava 代碼 packageacm.model; public class IDF public IDF() idf = 0.0; documentContainTermCount = 0; documentCount = 0; public IDF(intdocumentCount, intdocumentContainTermCount) idf = 0.0; this.documentCount = documentCount; this.documentContainTermCount = documentContainTermCount; publicintgetDocumentCo
21、unt() returndocumentCount; public void setDocumentCount(intdocumentCount) this.documentCount = documentCount; publicintgetDocumentContainTermCount() returndocumentContainTermCount; public void setDocumentContainTermCount(intdocumentCo ntainTermCount) this.documentContainTermCount = documentContainTe
22、rmCount; public double getIdf() returnidf; public void caculateIDF() if(documentContainTermCount = 0) System.out.println(” 請?jiān)O(shè)置文檔的 長度(所有詞的個(gè)數(shù))!); return; this.idf = Math.log10(double)this.documentCount / (double)this.documentContainTermCount); private double idf; privateintdocumentCount; privateintdoc
23、umentContainTermCount; 5. CaculateSim.java 代碼 packageacm.model; public class CaculateSim publicCaculateSim(TextVector vector1, TextVector vector2) doublesimDividend=0.0, simDivider=0.0; double tempVector 仁 0.0, tempVector2=0.0; for(inti=0; ivector1.getVectorWeight().length; i+) simDividend += vector
24、1.getVectorWeight()i * vector2.getVectorWeight()i; for(inti=0; ivector1.getVectorWeight().length; i+) tempVectorl += Math.pow(vector1.getVectorWeight()i, 2.0); tempVector2 += Math.pow(vector2.getVectorWeight()i, 2.0); 新技術(shù)公司, 噺一 simDivider = Math.sqrt(tempVector1*tempVector2); this.sim = simDividend
25、/ simDivider; public double getSim() returnsim; private double sim; 6. MainApp.java 代碼 packageacm.model; public class MainApp public static void main(String args) intTermCount= 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0, 1,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0, 1,0,0,0,0,1,1,1,0,0,1,1,0,0,1,1, 0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0; intdocumentTermCount = 7, 7, 5, 6, 11,3; intdocumentContainTermCount= 3,1,1,1,1,4,4,2,2,1,2,2,1,1,1,1; DocumentStruct docList = new Docume
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 香煙進(jìn)出口合同(2篇)
- 高校綜合布線合同(2篇)
- 高層建筑施工招標(biāo)合同(2篇)
- 三年級英語下冊 第5單元 課件 -U5-phonics-Recycle 1
- 監(jiān)控系統(tǒng)施工方案及技術(shù)措施
- 2025年柳州市城中區(qū)九年級中考語文二模試卷附答案解析
- 2025年注冊會計(jì)師考試《會計(jì)》新準(zhǔn)則解析與模擬試題解析
- 2025年統(tǒng)計(jì)學(xué)期末考試:統(tǒng)計(jì)調(diào)查誤差控制要點(diǎn)梳理試題庫
- 2025年網(wǎng)絡(luò)安全工程師認(rèn)證考試試題庫(安全培訓(xùn)專項(xiàng))
- 人行天橋與地道使用須知
- GB/T 1839-2008鋼產(chǎn)品鍍鋅層質(zhì)量試驗(yàn)方法
- 正弦交流電的基本特征與三要素
- 教教技術(shù)cccp四種教練能力與技巧課件
- 信息時(shí)代的地理學(xué)與人文地理學(xué)創(chuàng)新
- 建筑安全員A證考試題庫附答案
- 【教學(xué)課件】鴿巢問題整理和復(fù)習(xí)示范教學(xué)課件
- DB1410-T 129-2022園林植物常見病蟲害防治技術(shù)規(guī)范
- 男性乳腺發(fā)育護(hù)理查房課件
- ZF轉(zhuǎn)向機(jī)安裝及調(diào)整說明教學(xué)文稿
- 住房公積金經(jīng)辦人(專管員)登記申請表(2022新版)
- 如何喚醒孩子的內(nèi)驅(qū)力PPT課件
評論
0/150
提交評論