当前位置: 首页 > Web前端 > HTML

COMP4650-6490文件分析

时间:2023-04-03 01:03:21 HTML

COMP4650/6490文档分析作业1–IR在此作业中,您的任务是将文档集合索引到倒排索引中,然后根据预定义的查询测量搜索性能。一个包含10,000多个政府网站描述的新文档集合,以及一组预定义的查询,是为此作业提供的。提供的代码实现了大部分信息检索系统。此提供的代码旨在易于理解和修改,它不是特别高效或可扩展。在开发真实世界的IR系统时,您最好使用ApacheLucene等高性能软件。通过此作业:您将更好地理解索引,包括分词器、解析器和规范化器组件,以及如何提高搜索性能给定一个预定义的评估指标,您将更好地理解搜索算法,以及如何获得更好的搜索结果结果,并且您将找到结合索引器和搜索算法以最大化您的性能的最佳方法。在整个作业中,您将更改提供的代码以改进信息检索系统。此外,您将生成一个答案文件,其中包含您对每个问题的回答。您的答案文件必须是名为u1234567.pdf的.pdf文件,其中u1234567是您的UniID。您应该在一个zip文件中提交修改后的代码文件和answer.pdf。您对编码问题的回答将根据代码的质量进行标记(是否有效、是否可读、是否可扩展、是否正确)。您对讨论问题的回答将根据您的解释是否令人信??服(是否足够详细、是否有充分的理由、是否有适当的证据支持、是否清晰)来标记。问题1–运行查询(20%)您已提供通过一个倒排索引搜索系统的简单实现,可以在文件inverted_index.py、preprocessor.py和similarity_measures.py中找到。您的第一个任务是完成run_queries.py脚本。该脚本应该从gov/documents创建倒排索引,然后从gov/topics运行所有查询,并将所有查询的返回结果以TREC_EVAL格式写入runs/retrieved.txt。步骤1.已经为您实现。您将需要编辑inverted_index.py来完成run_query函数,以便它返回得分最高的文档。然后,您需要完成run_queryies.py脚本以实施步骤2和3。文本检索会议(TREC)是研究设计更好的信息检索系统的热门会议。我们将使用他们的评估工具TREC_EVAL来衡量您系统的性能。该工具希望返回的结果位于一个具有非常特定格式的文件中,该文件中的每一行必须采用以下形式:query_idQ0document_idrankscoreMY_IR_SYSTEM其中query_id标识返回此文档的查询。Q0是文字字符串Q0.document_id是返回的文档的名称。分数是查询和文档之间的相似度分数。Rank是此文档被检索的顺序(例如,rank为0表示该文档首先被检索,rank为1表示第二个,依此类推)。MY_IR_SYSTEM是文字串MY_IR_SYSTEM。成功创建文件后,您应该能够运行evaluate.py文件,以查看检索到的文档与给定查询的基本事实相关文档的匹配程度。e.gmap:0.1Rprec:0.1recip_rank:0.1P_5:0.1P_10:0.1P_15:0.1Question2–TF-IDFSimilarity(20%)目前,倒排索引使用TF相似度来计算分数。你的下一个任务是实现TF-IDFsimilarityfun功能性。您将需要完成similarity_measures.py文件中TFIDF_Similarity类的方法。我们鼓励您研究提供的类TF_Similarity以了解如何从倒排索引中提取数据。使用TF-IDF实现相似度的方法有很多种;虽然讲座建议使用TF-IDF对查询和文档进行加权,但这在实践中并不总是最佳选择。在这里,您将实施SMARTnotation中描述的方案作为lnc.ltc。其详细信息在课程文本之一“信息检索简介,ManningC,RaghavanP,SchützeH,2009年4月1日草案”的第6.4.3节和图6.15中进行了描述。下面是这张图的复现(更详细的看课本):助记符lnc.ltc对应文档词lnc和查询词ltc的加权方案。每个方案的第一个字母对应词频加权,这些cond对应于文档频率,最后一个对应于归一化。按照描述成功实现TF-IDFSimilarity后,您可以将run_queries.py中的simvariable更改为TFIDF_Similarity。接下来,使用新的TFIDF_Similarityindex运行evaluate.py。写下你的新评估分数。问题3–评估措施(20%)你的系统在TF_IDF或TF相似性方面表现更好吗?您将需要决定所提供的评估措施中的哪一个对评估该系统最有用。在你的回答中,你应该说明你的决定基于哪些措施,以及为什么你选择的措施特别适合这个政府语料库。如果您需要对系统的使用方式做出任何假设,请确保说明它们。您应该继续对下一个问题使用性能最佳的相似性度量。问题4–改进预处理器(20%)处理器定义raw文本被转换成要被索引的标记。目前,它执行空白标记化和porter-stemming。您的任务是更改预处理器类以改进系统的评估。您可能想尝试更改分词器、词干分析器或任何其他讲座中提到的技术(例如规范化、停用词删除)。强烈建议您使用NLTK库来完成此任务,可以在此处找到文档:https://www.nltk.org/api/nltk...简要描述您尝试过的四种不同的预处理器设置,以及它们对您系统性能的影响。解释为什么您认为每次更改都会增加/减少模型的评估措施。写下你找到的最佳性能设置的评估措施。提示:确保在run_queries.py中将used_stored_index标志更改为False,以强制使用新的预处理重建索引。问题5–进一步修改阳离子(20%)你的最终任务是对系统进行一些进一步的修改以提高其性能。您实施何种修改完全取决于您,您可以进行一些修改示例:?为系统实施BM25相似性(http://ipl.cs.aueb.gr/stougia...)。?调整inverted_index使用不同的加权字段。?实施一些领域特定的预处理。?实施不同的文档和查询加权方案。?你能想到的任何其他东西。在你的答案中描述你最好的信息检索系统,写下它的评估措施,并解释为什么您认为您的更改改进了措施。学术不端行为政策:所有提交的书面作品和代码必须是您自己的(当然,提供的任何起始代码除外)——提交非您自己的作品将导致作业失败和将案件转介给澳大利亚国立大学学术不端行为审查程序s:ANU学术不端行为程序WX:codehelp