信息檢索與搜索引擎技術(shù)實(shí)驗(yàn)向量空間模型_第1頁(yè)
信息檢索與搜索引擎技術(shù)實(shí)驗(yàn)向量空間模型_第2頁(yè)
信息檢索與搜索引擎技術(shù)實(shí)驗(yàn)向量空間模型_第3頁(yè)
信息檢索與搜索引擎技術(shù)實(shí)驗(yàn)向量空間模型_第4頁(yè)
信息檢索與搜索引擎技術(shù)實(shí)驗(yàn)向量空間模型_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院學(xué)生實(shí)驗(yàn)報(bào)告( 20142015學(xué)年第 1學(xué)期)課程名稱(chēng):信息檢索與搜索引擎技術(shù) 開(kāi)課實(shí)驗(yàn)室:信自樓445 2014 年12月 23日年級(jí)、專(zhuān)業(yè)、班計(jì)科111學(xué)號(hào)2姓名成績(jī)實(shí)驗(yàn)項(xiàng)目名稱(chēng)向量空間模型指導(dǎo)教師李衛(wèi)疆教師評(píng)語(yǔ)該同學(xué)是否了解實(shí)驗(yàn)原理:A.了解B.基本了解C.不了解該同學(xué)的實(shí)驗(yàn)?zāi)芰Γ篈.強(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)過(guò)程是否詳細(xì)記錄:A.詳細(xì)B.一般 C.沒(méi)有 教師簽名: 年 月 日一、 上機(jī)目的及內(nèi)容:給定文檔語(yǔ)料: d1: 北京安立文高新技術(shù)公司d2:

2、新一代的網(wǎng)絡(luò)訪問(wèn)技術(shù)d3: 北京衛(wèi)星網(wǎng)絡(luò)有限公司d4: 是最先進(jìn)的總線技術(shù)。d5: 北京升平衛(wèi)星技術(shù)有限公司的新技術(shù)有。設(shè)計(jì)一個(gè)針對(duì)這些文檔的信息檢索系統(tǒng)。具體要求是:1) 給出系統(tǒng)的有效詞匯集合(說(shuō)明取舍原因)。2) 寫(xiě)出d1和d2在VSM中的表示(使用tf*idf,寫(xiě)出各項(xiàng)的數(shù)字表達(dá)式,具體數(shù)值不必實(shí)際計(jì)算出來(lái))。3) 畫(huà)出系統(tǒng)的倒排文件示意圖。4) 按照向量夾角的余弦計(jì)算公式,給出針對(duì)查詢“技術(shù)的公司”的前3個(gè)反饋結(jié)果。二、 實(shí)驗(yàn)原理給定文檔語(yǔ)料: d1: 北京安立文高新技術(shù)公司 d2: 新一代的網(wǎng)絡(luò)訪問(wèn)技術(shù)d3: 北京衛(wèi)星網(wǎng)絡(luò)有限公司 d4: 是最先進(jìn)的總線技術(shù)。d5: 北京升平衛(wèi)星技

3、術(shù)有限公司的新技術(shù)有。設(shè)計(jì)一個(gè)針對(duì)這些文檔的信息檢索系統(tǒng)。具體要求是:1) 給出系統(tǒng)的有效詞匯集合(說(shuō)明取舍原因)。北京、安、立、文、高新、技術(shù)、公司、新、網(wǎng)絡(luò)、訪問(wèn)、衛(wèi)星、有限、先進(jìn)、總線、升、平的、是、最、有,這些詞作為停用詞不能加入系統(tǒng)的有效集合一、代,去除后并不影響原來(lái)句子語(yǔ)義的表達(dá)也不能算作系統(tǒng)的有效集合。2) 寫(xiě)出d1和d2在VSM中的表示(使用tf*idf,寫(xiě)出各項(xiàng)的數(shù)字表達(dá)式,具體數(shù)值不必實(shí)際計(jì)算出來(lái))。 得到的矩陣:Termd1d2d3d4d5Term出現(xiàn)次數(shù)北京101013安100001立100001文100001高新100001技術(shù)110013公司101013新01001

4、2網(wǎng)絡(luò)011002訪問(wèn)010001衛(wèi)星001012有限001012先進(jìn)000101總線000101升000011平000011TFIDF=cikj=1tcijlogNnk說(shuō)明:TF:表示詞項(xiàng)在該文檔或者查詢?cè)~中出現(xiàn)的頻度。即該詞項(xiàng)出現(xiàn)次數(shù)除以該文檔的長(zhǎng)度(所有詞的個(gè)數(shù))cik:表示詞項(xiàng)k在Di中的出現(xiàn)次數(shù)。j=1tcij:表示該文檔的長(zhǎng)度(所有詞的個(gè)數(shù))IDF:表示詞項(xiàng)在文檔集合中的重要程度。一個(gè)詞項(xiàng)出現(xiàn)的文檔數(shù)越多,說(shuō)明該詞項(xiàng)的區(qū)分度越差,其在文檔集合中的重要性就越低。N:表示集合中的文檔數(shù);nk:表示出現(xiàn)詞項(xiàng)k的文檔數(shù)。d1中各詞項(xiàng)的數(shù)字表達(dá)式“北京”的TFIDF=17log53“安”的T

5、FIDF=17log51“立”的TFIDF=17log51“文”的TFIDF=17log51“高新”的TFIDF=17log51“技術(shù)”的TFIDF=17log53“公司”的TFIDF=17log53d2中各詞項(xiàng)的數(shù)字表達(dá)式:“新”的TFIDF=17log52“網(wǎng)絡(luò)”的TFIDF=17log52“訪問(wèn)”的TFIDF=17log51“技術(shù)”的TFIDF=17log533) 畫(huà)出系統(tǒng)的倒排文件示意圖。 4) 按照向量夾角的余弦計(jì)算公式,給出針對(duì)查詢“技術(shù)的公司”的前3個(gè)反饋結(jié)果。該部分由代碼實(shí)現(xiàn)。三、 實(shí)驗(yàn)方法、步驟1 建立Java項(xiàng)目,2 建立DocumentStruct.java類(lèi)文件并編輯3

6、 建立TextVector.java類(lèi)文件并編輯,如圖4-1,圖4-2所示圖4-1圖4-24 建立TF.java類(lèi)文件并編輯,如圖圖4-7所示圖4-45 建立IDF.java類(lèi)文件并編輯,如圖圖4-5所示圖4-56 建立CaculateSim.java類(lèi)文件并編輯,如圖4-6所示圖4-67 建立MainApp.java類(lèi)文件并編輯,圖4-7所示圖4-78 完成后的項(xiàng)目文件夾如圖4-8所示圖4-89 運(yùn)行結(jié)果如圖4-9所示-13-1. DocumentStruct.java代碼:packageacm.model;public class DocumentStruct publicDocument

7、Struct()this.documentID = 0;this.documentSimValue = 0;this.documentContent = None;this.documentName = None;publicDocumentStruct(int ID, double sim, String name, String content)this.documentID = ID;this.documentSimValue = sim;this.documentName = name;this.documentContent = content;public String getDo

8、cumentContent() returndocumentContent;public void setDocumentContent(String documentContent) this.documentContent = documentContent;public String getDocumentName() returndocumentName;public void setDocumentName(String documentName) this.documentName = documentName;public double getDocumentSimValue()

9、 returndocumentSimValue;public void setDocumentSimValue(double documentSimValue) this.documentSimValue = documentSimValue;publicintgetDocumentID() returndocumentID;public void setDocumentID(intdocumentID) this.documentID = documentID;publicDocumentStruct sortDocBySim(DocumentStruct docList)DocumentS

10、truct temp;for(inti=0; idocList.length-1; i+)for(int j=i; jdocList.length-1; j+)if(docListi.getDocumentSimValue() docListj.getDocumentSimValue() )temp = docListi;docListi = docListj;docListj = temp;returndocList;private String documentName;private String documentContent;private double documentSimVal

11、ue;privateintdocumentID;2. TextVector.java代碼:packageacm.model;public class TextVector publicTextVector(int dimension, int termCount, intdocumentTermCount, intdocumentCount, int documentContainTermCount)vectorWeight = new doubledimension;for(inti=0; idimension; i+)vectorWeighti = caculateWeight(termC

12、ounti, documentTermCount, documentCount, documentContainTermCounti);public double caculateWeight(inttermCount, intdocumentTermCount, intdocumentCount, intdocumentContainTermCount)TF termTF = new TF(termCount, documentTermCount);IDF termIDF = new IDF(documentCount, documentContainTermCount);termTF.ca

13、culateTF();termIDF.caculateIDF();return(termTF.getTf()*termIDF.getIdf();public double getVectorWeight() returnvectorWeight;public void setVectorWeight(double vectorWeight) this.vectorWeight = vectorWeight;private double vectorWeight;3. TF.java代碼packageacm.model;public class TF public TF()tf = 0.0;te

14、rmCount = 0;termInDocumentCount = 0;public TF(inttermCount, intdocumentTermCount)this.tf = 0.0;this.termCount = termCount;this.termInDocumentCount = documentTermCount;public void caculateTF()if(termInDocumentCount = 0)System.out.println(請(qǐng)先設(shè)置文檔總數(shù)!);return;this.tf = (double)termCount / (double)termInD

15、ocumentCount;public double getTf() returntf;publicintgetTermCount() returntermCount;public void setTermCount(inttermCount) this.termCount = termCount;publicintgetTermInDocumentCount() returntermInDocumentCount;public void setTermInDocumentCount(inttermInDocumentCount) this.termInDocumentCount = term

16、InDocumentCount;private double tf;privateinttermCount;privateinttermInDocumentCount;4. IDF.java代碼packageacm.model;public class IDF public IDF() idf = 0.0;documentContainTermCount = 0;documentCount = 0;public IDF(intdocumentCount, intdocumentContainTermCount)idf = 0.0;this.documentCount = documentCou

17、nt;this.documentContainTermCount = documentContainTermCount;publicintgetDocumentCount() returndocumentCount;public void setDocumentCount(intdocumentCount) this.documentCount = documentCount;publicintgetDocumentContainTermCount() returndocumentContainTermCount;public void setDocumentContainTermCount(

18、intdocumentContainTermCount) this.documentContainTermCount = documentContainTermCount;public double getIdf() returnidf;public void caculateIDF()if(documentContainTermCount = 0)System.out.println(請(qǐng)?jiān)O(shè)置文檔的長(zhǎng)度(所有詞的個(gè)數(shù))!);return;this.idf = Math.log10(double)this.documentCount / (double)this.documentContainT

19、ermCount);private double idf;privateintdocumentCount;privateintdocumentContainTermCount;5. CaculateSim.java代碼packageacm.model;public class CaculateSim publicCaculateSim(TextVector vector1, TextVector vector2)doublesimDividend=0.0, simDivider=0.0;double tempVector1=0.0, tempVector2=0.0;for(inti=0; iv

20、ector1.getVectorWeight().length; i+)simDividend += vector1.getVectorWeight()i * vector2.getVectorWeight()i;for(inti=0; ivector1.getVectorWeight().length; i+)tempVector1 += Math.pow(vector1.getVectorWeight()i, 2.0);tempVector2 += Math.pow(vector2.getVectorWeight()i, 2.0);simDivider = Math.sqrt(tempVe

21、ctor1*tempVector2);this.sim = simDividend / 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,

22、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 DocumentStruct6;String documentContent = 北京安立文高新技術(shù)公司,新一代的網(wǎng)絡(luò)訪問(wèn)技術(shù),北京衛(wèi)星網(wǎng)絡(luò)有限公司,是最先進(jìn)的總線技術(shù)。,北京升平衛(wèi)星技術(shù)有限公司的新技術(shù)有。,技

溫馨提示

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

評(píng)論

0/150

提交評(píng)論