精华内容
下载资源
问答
  • 信息检索信息检索信息检索信息检索 课题检索报告
  • PAGE 教育资料 学院名称 数据结构课程设计报告 题目航班信息查询与检索 班 级 姓 名 时 间 2012/12/292013/1/5 二一二年十二月二十九日 课程设计任务书及成绩评定 课题名称 航班信息查询与检索 题目的目的和要求 1...
  • 学院名称 数据结构课程设计报告 题目航班信息查询与检索 班 级 姓 名 时 间 2012/12/292013/1/5 教育资料 . 二一二年十二月二十九日 课程设计任务书及成绩评定 课题名称 航班信息查询与检索 题目的目的和要求 1设计...
  • 1.学习根据检索课题选择相关数据库,确定检索词、检索途径等进行课题检索。 2.了解数据库所收录文献的类型、学科范围和使用方法;根据检索需求选择检索途径和检索词。 3.分析检索过程,不断调整检索策略,以获得最佳...

    一、实习目的
    1.学习根据检索课题选择相关数据库,确定检索词、检索途径等进行课题检索。
    2.了解数据库所收录文献的类型、学科范围和使用方法;根据检索需求选择检索途径和检索词。
    3.分析检索过程,不断调整检索策略,以获得最佳检索效果。
    4.对检索结果进行分析、评价,掌握获取原始文献及初步整理文献资料的方法。
    二.实习报告相关说明
    1、检索年限一般按要求设置,除非文献量太少,才可以放宽检索年限。
    2、检出篇数指按检索词或检索式实际检出的篇数,而非经人工筛选的切题篇数。
    3、检索式包括检索词、检索途径(如题名、作者、主题词、关键词、引文、文摘、全文、出版年、ISSN号(国际标准连续出版物编号)与ISBN号(国际标准书号)、分类号等等)、限定检索。检索功能包括(如浏览功能、简单检索功能、高级检索功能等)。检索技术指(如布尔逻辑检索、位置算符检索、截词检索、字段检索、全文检索、二次检索、限定检索等)。要求说明操作步骤的一定要说明检索式,或者截图显示检索过程。

    三、实习内容:
    1、利用读秀学术搜索平台查找你感兴趣的一种电子图书,申请一次该书的“文献传递”,页数不限,将你的邮箱收到的文献传递的结果截图显示在本文档中。
    2、根据需要选择合适的搜索引擎(百度、必应、谷歌)或其它你喜欢的某一网络搜索引擎工具完成。
    1)双引号 :把关键词放到双引号内,搜索引擎默认采用模糊匹配方式,会将词组进行拆分以及同义词分析,此时加上双引号可以强制进行完全匹配搜索。即:双引号内的内容必须完整并连续的出现。注意双引号必须为英文状态下输入。

    2)- 减号: 排除-号后面的内容,即我们在搜索某写内容时候,排除掉页面中内容中包含某些关键词的页面,比如搜索:网站优化服务 -郑州 ,即为:搜索提供网站优化服务的相关信息,但是又不想看郑州相关的。
    3)* 星号:可以充当通配符,意为任何字词或短语,比如搜索:北京*网络信息技术有限公司 ,即为搜索:北京某某网络信息技术有限公司,搜寻北京不同网络公司有限公司的名称。

    4)() 小括号:将关键词包裹在括号内,一般与下方的OR、| 、AND 等一起使用,表示一个分组单元,控制搜索的执行方式。

    5)OR 以及 | : 搜索两个或者多个关键词时候,出现某一个即可,比如搜索: (北京|上海) 网站优化工程师 ,即为:搜索北京或者上海招聘网站优化工程师的相关信息。

    6)AND :与OR的区别在于 AND 相邻的关键词必须都出现在页面中。

    7)filetype :将搜索结果限制为特定的文件类型。例如,PDF,DOCX,TXT,PPT等。比如: SEO filetype:pdf ,即为:搜索PDF格式的SEO相关文档。

    8)site:限定搜索结果在某个域名或目录下,比如:网站优化 site:googlenb.com即为:搜索googlenb.com网站中包含网站优化的相关页面。 如果我们不加关键词通常返回的是这个网站收录的总条数,我们也可以搜索某个网站某个栏目收录了多少条,比如:site:googlenb.com/info/ 返回的即为改URL目录下的所有内容,目录限定仅支持谷歌。

    9)intitle 以及 allintitle : 都表示在网页标题Title内搜索目标关键词,不同的是allintitle 后跟的所有关键词必须都出现在网页标题中,比如:intitle:后台登录 ,即为:搜索标题为后台登录的网址。

    10)inurl 以及allinurl : 都表示在网页url地址内搜索目标关键词,不同的是allinurl 后跟的所有关键词必须都出现在网页URL中,比如:inurl:/admin/login.php ,即为:搜索后台登录的URL地址。
    11)intext 以及allintext : 都表示在网页内容中搜索目标关键词,不同的是allintext 后跟的所有关键词必须都出现在网页内容中, 比如:intext:后台登录,即为:搜索网站内容中包含后台登录的页面。

    12)AROUND(X) :邻近搜索。两个搜索关键词中间最多相邻X个词语,比如:郑州 AROUND(4) 网站优化 , 即为:搜索开头为郑州,中间有0到4个任意词语,后面紧跟网站优化的相关页面。

    13)#…# :搜索一个数字区间,比如:互联网大会 2013…2018 ,即为:搜索互联网大会 2013年到2018年的相关信息。
    14)inanchor 及 allinanchor :查找指定锚文本链接的页面。 比如:inanchor:点击这里 ,返回的结果其实为指向这些页面的锚文本是“点击这里” 。 allinanchor为后面跟地关键词完全出现在锚文本中。

    展开全文
  • 09级信息检索实践周实习题 刘毅 无非四班 学号200910210421 第一部分 中文电子资源实习题 说明 = 1 \* GB3 按以下实习报告的格式撰写实习报告 = 2 \* GB3 检索结果须记录检索的总条目并将检索结果复制2条并整理成...
  • 2019年学校课题开题报告 论文最好能建立在平日比较注意探索的问题的基础上,写论文主要是反映学生对问题的思考, 详细内容请看下文学校课题开题报告。 1、论文题目:要求准确、简练、醒目、新颖。 2、目录:目录是...
  • 学院名称 数据结构课程设计报告 题目航班信息查询与检索 班 级 姓 名 时 间 2012/12/29---2013/1/5 二一二年十二月二十九日课程设计任务书及成绩评定课题名称航班信息查询与检索 题目的目的和要求1设计目的 巩固和...
  • 此文档收集于网络如有侵权请 联系网站删除 学院名称 数据结构课程设计报告 题目航班信息查询与检索 班 级 姓 名 时 间 2012/12/292013/1/5 精品文档 此文档收集于网络如有侵权请 联系网站删除 二一二年十二月二十九...
  • 包括:确定研究课题、提出研究假设、做好研究设计、分析研究资料、解释研究结果、撰写研究报告或论文等都是必不可少的。 文献综述 它是文献综合评述的简称 必须经过归纳整理和分析鉴别 意义:总结过去,指导提出新...

    文献检索

    定义:为达到某一目的,将信息源与用户需求连接起来查询,鉴别,选择并确定相关信息的过程。
    意义:贯穿于整个研究过程!包括:确定研究课题、提出研究假设、做好研究设计、分析研究资料、解释研究结果、撰写研究报告或论文等都是必不可少的。

    文献综述

    它是文献综合评述的简称
    必须经过归纳整理和分析鉴别
    意义:总结过去,指导提出新课题和推动理论与实践新发展
    它是开题报告的核心内容之一
    它是论文第一章的核心内容,第一章是作者文献工作的成果
    它是绪论的重要组成部分

    特征

    提出自己的观点、意见和建议

    基本功

    广博收集和整理参考资料,然后予以归纳、分析、评判
    好的文献综述依赖于好的文献检索
    检索和综述都是信息素养的体现

    文献分类与检索

    按出版形式:图书、期刊、会议等等
    按加工等级:零次(博客,多存疑)、一次(论文)、二次(综述、年鉴、手册)、三次(图书)
    写综述应少用零次多用一次
    查文献从二次和三次开始

    文献获取途径

    图书馆;计算机检索文献路;互联网
    在这里插入图片描述
    常用文献数据库:
    在这里插入图片描述
    IT常用文献资源
    在这里插入图片描述
    在这里插入图片描述

    文献检索过程

    文献检索方法

    直接法(常用方法):顺序查找、倒查法等
    追溯法:利用参考文献查找原文(类似滚雪球)
    循环法:交替使用前两种方法

    检索的关键

    关键词或词组(注意同义词、单复数、拼写变异、单词结尾的不同等)

    总而言之,优先关注综述性论文和书籍
    关注文献本身所引用的参考文献
    要不断缩小搜索的范围
    给你的检索结果做标签
    适可而止(不要追求完美)

    文献的管理与阅读

    文献管理

    基于文件目录或者基于管理软件

    介绍几个常用软件:
    EndNote
    优点:界面简单。查询方便,支持中文
    缺点:不能建立子目录
    ReferenceManager
    缺点:更新不积极,不支持中文
    Biblioscape
    优点:功能强大,可以分析文献,支持中文
    缺点:不支持UTF-8,不支持WORD
    NoteExpress
    优点:符合国人使用习惯,国人开发
    此外还有NE,ProCite等

    文献鉴别

    1.可靠性
    2.有效性
    3.准确性
    4.权威性
    5.时效性
    6.是否有偏见

    文献阅读

    成为一名主动的读者和听众
    保持主动性:
    “我应该如何利用这篇论文”
    “真的像作者宣称的那样吗”
    “哪里不足,哪里可以改进”
    学会思路借鉴,带有一定的质疑
    掌握细节前,浏览全文
    总结所读的每个主题(总结关键问题)
    一读摘要二泛读三精读

    文献综述的质量要求与评价

    质量要求:
    收集的文献应当客观全面
    材料与评论要协调一致
    针对性强,主题要突出
    提纲挈领
    使用图表
    不能混淆文献中的观点和作者个人的思想
    要有充分的归纳总结和分析

    常见问题总结
    在这里插入图片描述

    文献综述的评价

    在这里插入图片描述

    文献综述的撰写方法

    五个步骤
    1.选题
    2.收集文献资料
    3.整理文献
    4.撰写综述初稿
    5.修改综述初稿,并完成文献综述
    格式
    它与研究性论文有所不同
    包含六个部分:标题、摘要、关键词、前言(目的与意义)、主体部分(发展历史发展现状与发展趋势)、总结、参考文献

    第一次写综述,常有两个倾向:
    一是趋向于分段描述,每个段落一篇文章,类似于一个文献清单
    二是倾向于不解释和分析所阅读的文献(没信息OR没看懂)

    方法

    简答概况方法:只告诉读者是什么或者有什么
    总结法:简单的分析与比较
    分类比较分析法:这是专业方法
    例如:
    发展至今,很多研究者为零水印的发展做出了贡献。目前的方法主
    要分为最高有效位、高阶累积量、DCT变换域、DWT变换域、矩阵奇异
    值分解、主成分分析、图像矩和SIFT特征等八类,下面分别对其进行归
    纳和分析。

    (1)图像最高有效位
    这类方法的共性是利用空域像素值的高有效位,其中具有代表性的是
    牛万红和杨绍华等提出的算法(文献)。这类方法在空域实现,最大的
    优点是复杂度低,但鲁棒性相对较差。
    (2)高阶累积量
    …….
    (3)DCT变换域
    ………
    (4)DWT变换域
    ………
    ………
    由此可见,现有方法虽然很多,但各有优缺点,尚有进一步完善的
    空间,以进一步促进零水印技术的发展和应用。

    一般结构:

    在这里插入图片描述
    话题选择
    不要大题小做
    摘要与关键字
    摘要应该是全文的概括性描述,高度凝练
    避免头重脚轻
    关键字3-5个就好
    引言
    前言部分最好包括
     综述的目的或意义
     介绍有关的概念及定义以及综述的范围
     扼要说明有关主题的现状或争论焦点,使读
    者对全文要叙述的问题有一个初步的轮廓。
    主体部分
    主体部分其写法多样,没有固定的格式,可按不同的方式对文献
    进行分类综述
     年代顺序
     不同的问题
     不同地域
     不同的观点
     ……

    不管按照何种方式,都需要对所搜集到的文献进行甄选、归纳、整理及分析比较,阐明有关主题的历史背景、现状和发展方向,以及对这些问题的评述
     主体部分应特别注意代表性强、具有科学性和创造性的文献
    引用和评述。
    总结部分
    总结部分,与研究性论文的小结有些类似,将全文主题进行扼要总结,提出自己的见解并对进一步的发展方向做出预测
    参考文献
    参考文献不仅表示对被引用文献作者的尊重及引用文献的依据,而且也为评审
    者审查提供查找线索。参考文献的编排应条目清楚,查找方便,内容准确无误。
    什么时候必须引用
    当使用了某文献中的事实和方法等重要材料时
    当采用了与文献中一样、甚至类似的图表时
    什么时候不必要引用
    介绍自己的工作和观点时
    当介绍的信息是众所周知的,且已久远时
    规范化(经常更新)

    1. 不要列出你没有阅读过的参考文献,以显示你做了充分的调研
    2. 列出所有你阅读过的重要文献
    3. 参考文献的格式必须统一
    4. 参考文献必须包含足够的信息使得读者能够找到文献

    常见参考文献格式说明
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    所有文献根据在文中出现的先后顺序引用
    引用格式
     单篇(2篇以下)
     [1]
     [1,2]
     连续多篇(3篇以上)
     [1-3]
     [1-5]
     间隔多篇
     [1,3,4]
     [1,3-5]
     [1-3,6]

    文献综述的技巧

    语言中立化:
    使用正式的、中立的描述
    避免情绪化和主观化的用语,例如:
     Avoid emotive words like “The author feels/believes”
     Instead, say “Roberts states/argues/claims,”or “According to Brown”
    主体部分分节
    为了使得主体部分逻辑清晰,可以采用标题和子标题的形式分节描述,但需注意:
     标题的概括性
     标题与子标题之间的逻辑关系
     各个标题下对应内容的归属性
     标题之间的差异性
     分类标准的统一性
    在这里插入图片描述
    采用表格体现自己的分析归类工作
    在这里插入图片描述

    文献综述注意事项:

    引语是指一字不漏地重复一个语句,以下情况常用引语:
     强调一个特殊的语句
     很难意译和改述的情况
    Example:
     The television generation can also be called the “ computer generation ” (Papert, 1993, p.46) since children use computers for many purposes, mostly for
    playing games, but also “ to write, to draw, to communicate, to obtain information….to establish social ties…. to isolate themselves ” (Papert, 1993, p.47)
    应用引语时,必须
     明确显示这是一个引语,例如通过不同字体
    (斜体)来展示
     给出引语的参考文献(包括页码)
    改述要求作者将文献中的内容用自己的语言描述出来
     通常比原文要短,并且包含了全部或绝大部分原文的观点概括同样要求你用自己的语言重写文献中的内容,但:通常比改述的内容短,并且仅包含了主要的或者重要的观点
    剽窃是指使用别人的原话或者原始想法,而且还不加引用
    剽窃时作者基本不需要思考,而且很容易发现一旦认定剽窃事实,将是非常严重的问题
     学术道德问题:因此,建议使用引语(但是也只能偶尔)、改述和概括等方式来写综述
     换句话说,你应该展示给大家你对你阅读的文献掌握到了什么程度(理解的有多深入)
    改述和概括的常用技巧
    认真地阅读(再阅读)直到你确信你完全理解了原文
    把原文放在一边,以免你时不时想看一下

     最好不要看着原文来改述和概括
    从现在开始,养成做笔记的习惯
     记录下你认为重要的内容或实质性的内容
    写完后与原文比较,以确信
     你所写的东西包含了重要的或实质性的内容
     你所写的东西在形式上是新的(语法结构,文字)
    请你的导师看一下你写的内容

    改述VS抄袭
    你应该避免大篇幅的改述
     尽量少用
    在内容上和形式上与原文比较相似的改述也可被认定为抄袭,即使你在措辞上有所区别
     当你改述或以引语方式采用了别人的观点,且没有引用时,就是抄袭任何来自文献的东西,即便你用自己的语言改述了,也需要引用或脚注文献综述必须进行分析和诠释,而不是简单的重复
     必须小心谨慎地区分你的观点和文献作者的观点

    文献综述首先要进行文献检索:要认真进行文献阅读
    文献检索和阅读占据文献综述时间的大部分

     不要在没有收集和阅读足够文献的情况下急于撰写综述
    文献综述不是文献罗列,而是对文献进行评论、分析、归纳,并指出今后的研究方向
     注意文献综述的三部分结构
     注意以某种有意义的方式分类归纳
     注意参考文献及其引用
     注意修改,修改,再修改
    最重要的:谢绝剽窃!!!
    在这里插入图片描述

    展开全文
  • 文献检索报告 姓 名 XXXXXX 学 号 XXXXXXX 系 部 电子信息学院 专 业 电子与通信工程专硕 题 目 基于Android和JavaEE的故障管理系统设计与实现 联系方式 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 导 师 XXXXXXXXX ...
  • 大学文献检索资料 DOC

    2009-11-28 10:35:24
    第一章 信息检索的基本知识 第一节 信息、知识、文献、情报 信息: 应用文字、数据和信号形式通过一定的传递和处理,来表现各种相互联系的客观事物在运动变化中所具有特征性的内容的总称。 知识: 人们通过实践对...
  • 信息获取与利用报告

    2013-06-01 22:13:44
    针对研究的课题进行分析,选择检索工具,对相关文献进行检索,例出具体检索过程,写出检索结果,并对文献进行分析
  • (1) 实习前:认真复习课堂所学知识,理解检索课题。 (2) 实习中:结合课题选择校园网http://www.lib.kmust.edu.cn的2个中文科技期刊全文数据库和1个外文科技期刊全文数据库查找发表在期刊(杂志)上的与题目相关...
  • 无论是进行科研立项还是开题报告,您常常需要从宏观上把握国内外某一研究领域或专题的总体研究趋势,如何快速获取这些信息呢?您可以通过生成课题引文报告或分析论文出版年的方式有效获得。1.访问Web of Science...

           无论是进行科研立项还是开题报告,您常常需要从宏观上把握国内外某一研究领域或专题的总体研究趋势,如何快速获取这些信息呢?您可以通过生成课题引文报告或分析论文出版年的方式有效获得。

    1.访问Web of Science数据库检索论文

           请访问:www.isiknowledge.com, 进入ISI Web of Knowledge平台; 选择Web of Science数据库,(以下图示为WOK4.0版新界面)。
           示例:如果我们希望检索"中国科技大学" "侯建国"院士在Science Citation Index (SCI)中收录文章的情况:

    怎样了解某研究课题的总体发展趋势? - 秦皇岛海豚 - 渤海湾之恋的博客

    2.生成引文报告

           在检索结果界面上,通过右侧的生成引文报告功能,您可以快速了解该课题的总体研究趋势,并且找到本课题的国际影响力年代变化情况。

    怎样了解某研究课题的总体发展趋势? - 秦皇岛海豚 - 渤海湾之恋的博客

    怎样了解某研究课题的总体发展趋势? - 秦皇岛海豚 - 渤海湾之恋的博客

            结论:通过Web of Science提供的强大的引文报告功能,您可以点击创建引文报告,自动生成课题引文报告,从而提高您的科研效率。

    3 利用分析功能了解课题发展趋势

           除了自动创建引文报告之外,您也可以利用分析功能生成论文出版年的图式。并且,利用分析功能您可以任意查看某些出版年的论文情况。

    怎样了解某研究课题的总体发展趋势? - 秦皇岛海豚 - 渤海湾之恋的博客

    怎样了解某研究课题的总体发展趋势? - 秦皇岛海豚 - 渤海湾之恋的博客

    怎样了解某研究课题的总体发展趋势? - 秦皇岛海豚 - 渤海湾之恋的博客

            结论:通过Web of Science提供的强大的引文报告功能,您可以点击创建引文报告,自动生成课题引文报告,对总体趋势一览全局。而分析功能可以让您更清晰的了解本课题论文每年的发文量,分属于哪些学科,主要集中在哪些国家地区,以哪些语种发表,哪些机构或哪些作者是本课题的引领者,收录本课题论文最多的期刊和会议有哪些等详细信息。

    展开全文
  • DIPRE实践技术报告

    2019-11-01 23:19:33
     垂直搜索引擎是针对某一特定领域、人群或需求提供的信息检索服务因此垂直搜索引擎的爬虫在 抽取数据时应该具有相当的选择性 。DIPRE(DualIterativePatternRelationExtraction)是 Google创始人之一SergeyBrin针对...

    课题目的与意义

      垂直搜索引擎是针对某一特定领域、人群或需求提供的信息检索服务因此垂直搜索引擎的爬虫在 抽取数据时应该具有相当的选择性 。DIPRE(DualIterativePatternRelationExtraction)是 Google创始人之一SergeyBrin针对抽取互联网上特定格式或类型的数据而提出的一种算法,由于垂直搜索引擎具有较强的专业性和针对性,因而DIPRE算法在垂直搜索领域里具有较为广阔的应用前景。

      互联网是巨大的信息资源,同时它的分布非常分散。特定类型的数据(例如餐厅清单)可能散布在成千上万种不同格式的独立信息源中。我们考虑了以下问题:从所有这些来源中自动提取此类数据类型的关系,我们提出了一种利用模式和关系集之间的对偶关系,从小样本开始发展目标关系的技术。要测试我们的技术,我们使用它来提取关系万维网上的作者标题对。

      万维网可以提供几乎所有类型的信息,从 DNA 数据库到履历再到喜欢的餐馆列表。但是,这些信息通常会散布在许多使用不同格式的 Web 服务器和主机中。如果可以从中提取这些信息,将其整合为结构化形式,它们将形成前所未有的信息来源。它将包括最大的国际人员目录,最大,最多样化的产品数据库,最大的学术著作目录和许多其他有用资源。

    论文阅读与分析

      在仔细阅读论文原文及一些参考文献后,为了实现论文中所描述的代码,对论文中需要深刻理解的地方和需要用到的数据结构做了记录,并归纳总结如下。

      根据原文:Let D be a large database of unstructured information such as the World Wide Web.这里所指的非结构化信息的大型数据库实际上就是我们的信息源,它包含的是庞大的网页URL地址及其内容,而其内容应该是带有标签的网页源代码,我们需要在其中通过元组及关系对目标进行提取。

      其次是了解了模式、事件、种子三者的概念及其构成:

      原文描述了一些关于模式的错误率、查全率等概念,但是首先需要了解的是模式的构成,原文中:We dened a pattern as a ve-tuple: (order, urlprex, prefix, middle, suffix)

      也就是:(标题作者的顺序、URL前缀、前缀、中缀、后缀)

      利用该模式在数据库中进行搜寻,如果一个网页的URL符合模式中的URL前缀,则构造正则表达式对该网页进行搜寻,可以采用如下正则表达式构造方法:前缀(.*?)中缀(.?*)后缀。而顺序(order)是最容易被忽略的部分,他的作用是利用正则表达式匹配到元素后,如果order等于0说明作者在前标题在后,也就是利用正则表达式匹配到的第一个括号内的内容是作者,第二个括号内的内容是标题。反之亦然。

      原文中提到事件:We also have to define how an occurrence is structured since it should have a correspondance to the denition of a pattern. An occurrence of an (author,title) pair consists of a seven-tuple: (author, title, order, url, prefix, middle, suffix)

      事件的形成是利用种子进行搜索的时候对搜索到元组的位置进行记录,并记录下一些相关信息,这里的作者和标题显然就是所用到的种子,order是作者和标题出现的顺序,文章中是order为真的时候表示作者在前标题在后,url是出现种子的网页的url地址,prefix(suffix)可以默认记录作者(标题)前(后)的m个字符,middle即为作者和标题中间的字符串。

      这里所提到的种子,在初始化的时候是通过手动创建的一些元组,以便利用这些元组生成事件从而形成模式,而后续通过模式搜索到的元组便可以加入到种子中来,进行下一轮的搜索。

      上述对模式、事件及种子的说明基本告知了它们的具体用法,而为了形成模式,首先要查找到一系列的事件,而事件的形成方法在上面已经有说明,如下为通过事件形成模式的过程:

      1、验证所有查询结果即事件(occurrences)中的作者标题出现顺序(order)和中间字符串(middle)是否相同,如果都不同则无法形成模式,否则将相同的order和middle作为一个输出模式的一部分(此处指的查询结果occurrences应该指的是所有种子查询的结果集,而非一个种子查询的结果)

      2、寻找所有url中最长匹配的前缀,作为输出模式的url前缀(urlprefix)

      3、将输出模式的前缀设置为事件前缀中最长匹配的后缀(大致意思是,比如搜索结果中作者前的所有字符串中,匹配最长的后缀,将其作为输出模式的前缀)

      4、将输出模式的后缀设置为事件后缀中最长匹配的前缀

      而原文中还引用到了模式的特异性,用以约束模式的形成结果:A pattern generated like the above can be too general or too specific, the pattern may be too general and may produce many nonbooks.简单来说,就是形成的模式中的前缀、中缀、后缀和url前缀都不能为空,否则则拒绝该模式,这在编写代码的时候会比较容易理解,因为如果一个模式前缀为空,就不能构造有效的正则表达式。

      论文中还说明了一些查全率、查准率、覆盖率等,以及一些优化方案,但在实际应用中都不太好实现,所以并不在此赘述,在之前对论文和相关参考文献的阅读中也做了一些笔记,笔记如下:

    第一次原文阅读记录:https://blog.csdn.net/qq_39591838/article/details/102096581

    第二次原文阅读记录:https://blog.csdn.net/qq_39591838/article/details/102489385

    参考文献阅读记录:https://blog.csdn.net/qq_39591838/article/details/102489459

    实现方案与开发实施

      实现方案分为四步:数据源的获取,形成事件、形成模式、利用模式搜索元组,下面说明实现这些步骤的关键代码。

    1、数据源的获取:

      首先是数据来源的获取,由于我们没有非结构化信息的大型数据库,所以我采用编写爬虫的方法,选择性的获取网页及网页内容:

    import requests
    from bs4 import BeautifulSoup
    def CrawlWeb(path): #  利用爬虫获取URL中body的内容:
        html = requests.get(path)
        soup = BeautifulSoup(html.text)
        body = soup.body
        return str(body) # 这里一定要注意转化成字符串,不然返回的是soup对象

      由于我使用的是mysql数据库,text字段不一定能存储下一个网页的所有源代码,所以我选择只存储一个网页的url,在使用到的时候再通过爬虫进行获取。

     

    2、形成事件

      为了形成事件,首先需要一定量的初始种子,然后利用种子在网页中进行查找,我们先假设在一个页面中查询一个种子(即一对元组)并得到事件,编写如下代码:

    def SearchSeedInPage(author,title,url,line): # 在文章中搜索一个种子的元组对并记录事件
        occurrence = {}
        if author in line and title in line: # 作者和标题都在该行则记录事件,需要先判定是作者在前还是标题在前
            posA = line.index(author)
            posT = line.index(title)
            if(posA<posT): # 如果作者在前则为1,否则为0
                order = 1
                if posA-CONST_M>=0:
                    prefix = line[posA-CONST_M:posA] # 记录author前m个字符作为前缀
                else:
                    prefix = line[:posA] # 如果前m个字符超出下界则m记为0
                middle = line[posA+len(author):posT]
                suffix = line[posT+len(title):posT+len(title)+CONST_M] # 记录title后m个字符作为后缀,后界不用if,因为默认超出len按len计算
            else:
                order = 0
                if posT-CONST_M>=0:
                    prefix = line[posT-CONST_M:posT]
                else:
                    prefix = line[:posT]
                middle = line[posT+len(title):posA]
                suffix = line[posA+len(author):posA+len(author)+CONST_M]
            occurrence['author'] = author # 记录事件并返回
            occurrence['title'] = title
            occurrence['order'] = order
            occurrence['url'] = url
            occurrence['prefix'] = prefix.strip()
            occurrence['middle'] = middle.strip()
            occurrence['suffix'] = suffix.strip()
            return occurrence
        return None
     
    occurrence = SearchSeedInPage(seeds[0]['author'],seeds[0]['title'],data[0]['url'],data[0]['text'])
    print(occurrence) # 在第一个数据中搜索到的第一个种子

     

      有了在一个页面中搜索一个种子的函数后,我们需要将所有种子在所有页面中搜索,以下的occurrences才是我们需要拿来形成模式的事件结果集:

    def SearchSeeds(): # 在所有数据中搜索所有种子
        ouccurrences = [] # 事件列表
        for seed in seeds:
            for page in data:
                occurrence = SearchSeedInPage(seed['author'],seed['title'],page['url'],page['text'])
                if occurrence is not None:
                    ouccurrences.append(occurrence)
        return ouccurrences
    occurrences = SearchSeeds()
    print(occurrences) # 在所有数据中搜索到的所有种子结果

    3、形成模式

      根据以上事件,我们需要形成模式,首先是通过middle和order分组,将所有具有相同middle和order的事件分为一组,并尝试利用它们形成模式(分组后如果一组的长度大于一才能尝试形成模式):

    def GroupByOrderAndMiddle(): # 通过order和middle进行分组,并对每组数据形成模式
        patterns = []
        occurrences.sort(key = itemgetter('order')) # 按照对order字段进行排序
        for middle,items in groupby(occurrences,key = itemgetter('middle')): # groupby()函数在每次迭代的时候,会返回一个分组后的分组值和一个迭代器对象,迭代器对象包含对应分组值的所有对象。
            lists  = list(items) # 迭代器只能迭代一次,所以转化为列表进行操作
            if len(lists) > 1: # 每类分组中需要至少两组数据才能形成模式
                eachpatterns = GroupByUrl(lists) # 这里eachpatterns的结构为[{'a':'a','b':'b'},{'a':'c','b':'d'}],因此需要用+做合并列表操作
                patterns = patterns + eachpatterns
        return patterns

     

      接着我们需要将分组后的数据取最长的url前缀(这里就需要注意了,不能取到http://或者http://作为前缀,需要用strip()函数剔除),为了方便起见,我在这里直接用split()函数对网址利用'\'进行分割,取第一个分割结果作为主网址,再利用主网址进行分组,并对分组后的数据再取prefix和suffix,同理,这里分组后的每组长度也需要大于1才能继续操作:

     

    def GroupByUrl(lists): # 从已经通过order和middle分组的数据组中再通过网址进行分组
        patterns = []
        for each in lists:
            each['url'] = each['url'].split('/')[0] # 切割分组后每组数据的url,取主网址
        for url,items in groupby(lists,key = itemgetter('url')): # 再通过url主网址进行分组
            lists = list(items)
            if len(lists) > 1:
                pattern = GetPrefixAndSuffix(lists)
                if pattern is not None:
                    patterns.append(pattern) # 这里获取到的是一个模式集合,因此在列表中追加即可
        return patterns

      接着我们对分了两次组的数据取prefix和suffix,这里就不再分组了,直接取每组数据中最长的前缀和后缀匹配值,这里为了获取多个字符串中的公共前缀,先设公共前缀为第一个字符串,再利用这个字符串与第二个字符串进行从头到尾每个字符的匹配,如果匹配不成功则截取两个字符串的公共部分作为公共前缀,依次类推,后缀同理从后往前逐一匹配:

     

    def GetPrefixAndSuffix(lists): # 经过order、middle和url的分组后,剩下的数据量大于1且不再分组,形成一个模式
        prefix = lists[0]['prefix'] # 匹配每组数据中公共的前缀,不保证不为空
        suffix = lists[0]['suffix']
        pattern = {}
        pattern['order'] = lists[0]['order']
        pattern['middle'] = lists[0]['middle'].strip()
        pattern['url'] = lists[0]['url']
        for index in range(len(lists)-1,-1,-1):  # 这里的操作是默认前缀为第一个数据,然后与后面的数据进行匹配,在第一个数据的基础上做缩减操作
            i = len(prefix)-1
            j = len(lists[index]['prefix'])-1
            while i>=0 and j>=0 and lists[index]['prefix'][j] == prefix[i]:
                i = i-1
                j = j-1
            prefix = prefix[i+1:]
            
            m = 0
            n = 0
            while m<len(suffix) and n<len(lists[index]['suffix']) and lists[index]['suffix'][n] == suffix[m]:
                m = m+1
                n = n+1
            suffix = suffix[:m]
        pattern['prefix'] = prefix.strip()
        pattern['suffix'] = suffix.strip()
        if len(pattern['prefix']) and len(pattern['suffix']) and len(pattern['url']):
            return pattern
        return None

    4、利用模式搜索元组

    def FindBooksByPattern(MyPattern): # 通过一个模式在数据中查找书籍元组
        for item in data:
            if MyPattern['url'] in item['url']:
                NewPattern = re.compile(MyPattern['prefix']+'(.*?)'+MyPattern['middle']+'(.*?)'+MyPattern['suffix'],re.I) # 忽略大小写进行查询
                m = NewPattern.finditer(item['text'])
                if m is not None:
                    for item in m:
                        author = item.groups()[0].strip()
                        title = item.groups()[1].strip()
                        if FindSeed(author,title)==0:
                            SaveSeed(author,title)
                            print(author,title)

      我们已经有了一个模式,我们可以利用现有的模式构造正则表达式搜索更多的元组了,搜索到的元组如果已经存在在我们的数据库中则忽略,不存在则添加到数据库的seeds表中:

     

    上述详情可参考:https://blog.csdn.net/qq_39591838/article/details/102628466

     

    实验设计与数据说明

     

      实验中所使用的的数据及其说明如下:

    data:存放所有web页面的url及其内容
    seeds:存放所有初始元组对及通过模式查找到的元组对
    occurences:存放通过seeds查找到的所有事件
    patterns:存放所有通过occurrences形成的模式列表

     

      利用实验方案和开发实施中的代码进行试验设计,首先我们利用本地服务器上的页面进行测试,创建两个HTML页面,并存放在本地服务器下,在第一个页面中有五对元组,分别为:(Ernest Miller Hemingway,The Old Man and the Sea)(Jonathan Swift,GULLIVER`S TRAVELS)(Charles Dickens,Pickwick Papers)(Nicholas Sparks,The Last Song)(W. William Shakespeare,A Midsummer Night's Dream),第二个页面中存有一对元组(Charles Dickens,Great Expectations)

    http://localhost/DIPRE/BestSeller.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    </head>
    <body>
    	<h2>famous writer Ernest Miller Hemingway wrote The Old Man and the Sea book</h2>
    	<h2>great writer Jonathan Swift wrote GULLIVER`S TRAVELS book</h2>
    	<h2>amazing writer Charles Dickens wrote Pickwick Papers book</h2>
    	<h2>favorite writer Nicholas Sparks wrote The Last Song book</h2>
    	<h2>amazing writer W. William Shakespeare wrote A Midsummer Night's Dream book</h2>
    </body>
    </html>

     

     

    http://localhost/DIPRE/TopRated.html

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    </head>
    <body>
    	<h2>The famous writer Charles Dickens wrote Great Expectations book</h2>
    </body>
    </html>

      然后我们将这两个页面存入数据库,并在python中连接数据库读取数据,将页面信息存入在data列表下:

     

      我们有了源数据之后,需要手动输入一些种子,在这个测试用例中至少需要来自同一个页面的两个种子才能形成一个模式,我们选择(Ernest Miller Hemingway,The Old Man and the Sea)和(W. William Shakespeare,A Midsummer Night's Dream)这两个元组对,因为这两个元组在BestSeller.html同时存在,方便我们形成模式。

      接下来,通过seeds查找到的事件(occurrences )列表如下:

    [{'author': 'Ernest Miller Hemingway',
      'title': 'The Old Man and the Sea',
      'order': 1,
      'url': 'http://localhost/DIPRE/BestSeller.html',
      'prefix': '2>The famous writer',
      'middle': 'wrote',
      'suffix': 'book</h2>\n<h2>The g'},
     {'author': 'Charles Dickens',
      'title': 'Pickwick Papers',
      'order': 1,
      'url': 'http://localhost/DIPRE/BestSeller.html',
      'prefix': '>The amazing writer',
      'middle': 'wrote',
      'suffix': 'book</h2>\n<h2>The g'}]

     

      然后我们可以通过以上的事件,用已有的代码形成模式patterns如下:

    [{'order': 1,
      'middle': 'wrote',
      'url': 'localhost',
      'prefix': 'writer',
      'suffix': 'book</h2>\n<h2>'}]

      通过已有的模式,在data中进行搜索,得到的新元组加入seeds:

    添加成功
    Jonathan Swift GULLIVERâS TRAVELS
    添加成功
    Charles Dickens Pickwick Papers
    添加成功
    Nicholas Sparks The Last Song
    添加成功
    Charles Dickens Great Expectations

     

      同理,我们通过真实数据,以当当网的一个书籍子页为例:http://e.dangdang.com/list-WX-dd_sale-0-1.html

      首先我们在数据库中手动在seeds表中插入三个元组(林清玄,在这坚硬的世界里,修得一颗柔软心)、(兰陵笑笑生,金瓶梅(全两册)(崇祯版)(简体横排、无批评))、(余华,余华:我们生活在巨大的差距里),这是该测试页面下存在的三个元组,并把URL存入webpage表。

      然后按照上述流程运行代码,得到data数据的部分:

     

      这里的text是要使用URL的时候再利用爬虫去爬取,得到的seeds如下:

    {'id': 33, 'author': '林清玄', 'title': '在这坚硬的世界里,修得一颗柔软心'},
    {'id': 43, 'author': '兰陵笑笑生', 'title': '金瓶梅(全两册)(崇祯版)(简体横排、无批评)'},
    {'id': 46, 'author': '余华', 'title': '余华:我们生活在巨大的差距里'}]

     

      接着利用种子在text中进行搜索记录,我们会得到一些事件:

    {'author': '林清玄',
      'title': '在这坚硬的世界里,修得一颗柔软心',
      'order': 1,
      'url': 'e.dangdang.com/list-WX-dd_sale-0-1.html',
      'prefix': 'v>\n</a>\n<a dd_name="',
      'middle': '"  target="_blank" title="',
      'suffix': '">\n<span class="book'},
     {'author': '兰陵笑笑生',
      'title': '金瓶梅(全两册)(崇祯版)(简体横排、无批评)',
      'order': 1,
      'url': 'e.dangdang.com/list-WX-dd_sale-0-1.html',
      'prefix': 'v>\n</a>\n<a dd_name="',
      'middle': '"  target="_blank" title="',
      'suffix': '">\n<span class="book'},
     {'author': '余华',
      'title': '余华:我们生活在巨大的差距里',
      'order': 1,
      'url': 'e.dangdang.com/list-WX-dd_sale-0-1.html',
      'prefix': 'v>\n</a>\n<a dd_name="',
      'middle': '"  target="_blank" title="',
      'suffix': '">\n<span class="book'}]

     

      利用以上事件,我们可以形成一个模式:

     

    {'order': 1, 
    'middle': '"  target="_blank" title="', 
    'url': 'e.dangdang.com', 
    'prefix': 'v>\n</a>\n<a dd_name="', 
    'suffix': '">\n<span class="book'}

      利用上述模式在该页面中查找,可以查找到一系列元组:

     

      将以上元组和网页源代码进行对比我们可以发现,该网页中的元组对已经全部被我们的这个模式捕获到,接下来只需要将我们形成的模式和搜索到的元组插入数据库,然后进行下一轮迭代。

     

    结果分析与改进

     

      原代码由于是在所有数据中查找所有种子,并且通过对所有事件进行分组从而形成模式,当数据和种子数规模较大的时候,生成事件、形成模式的过程都会非常慢,同时我们所得到结果的时间也会花费的很多,更致命的是由于网页源码包含了许多无用的信息,同时爬取所有网页及其内容可能会导致内存溢出,所有有没有一种方式可以在用完某些数据后将其删除,并且在过程中逐步得到我们想要的元组对。

      由此提出一种思想来改进算法,大体来说就是逐个处理网页,并将处理过的网页删除,防止进一步占用内存,在此步骤中也可以同时产生我们想要的元组,同步存入到数据库中,防止程序异常中断,具体算法思维步骤见:https://blog.csdn.net/qq_39591838/article/details/102633307

      改进后的代码是针对单个界面处理,所以需要查询一个网页是否有匹配的模式,而对同个主网站下的不同子网页形成不同的模式,所以可能有多个适用该网页的模式,此时应该取第一个能匹配出结果的模式:

    def GetMatchPattern(patterns,url): #查询某个网页是否有匹配的模式,返回匹配的第一个模式
        if patterns is None: # None不能进行迭代
            return None
        for item in patterns:
            if item['urlprefix'] in url:
                if FindBooksByPattern(item,data[index]['text']) is not None: # 如果通过该匹配模式找到事件并存储,则返回1
                    return 1
        return 0 # 没有找到匹配的模式或者没有通过匹配模式查找到事件则返回0

     

      同样是因为针对单个界面的处理,这里形成模式的过程就简化了不少,如果在某页面查找到的事件数大于2,就可以尝试形成模式,此时不需要再对order和middle进行分组,只需要检查这些事件是否具有相同的order和middle即可,也无需对url再进行分组,取当前页面的主网址就可:

    def WhetherFormPattern(occurrences): # 判断同个页面的事件集能否形成事件,即middle和order是否相同
        order = occurrences[0]['order']
        middle = occurrences[0]['middle']
        for item in occurrences:
            if order != item['order'] or middle != item['middle']:
                return 0
        return 1
     
    def FormPattern(occurrences): # 利用查找到的事件形成模式,此时的事件集>2,且在同个url下
        prefix = occurrences[0]['prefix'] # 匹配数据中公共的前缀,不保证不为空
        suffix = occurrences[0]['suffix']
        pattern = {}
        
        for index in range(len(occurrences)-1,-1,-1):  # 这里的操作是默认前缀为第一个数据,然后与后面的数据进行匹配,在第一个数据的基础上做缩减操作
            i = len(prefix)-1
            j = len(occurrences[index]['prefix'])-1
            while i>=0 and j>=0 and occurrences[index]['prefix'][j] == prefix[i]:
                i = i-1
                j = j-1
            prefix = prefix[i+1:]
            
            m = 0
            n = 0
            while m<len(suffix) and n<len(occurrences[index]['suffix']) and occurrences[index]['suffix'][n] == suffix[m]:
                m = m+1
                n = n+1
            suffix = suffix[:m]
            
        pattern['order'] = occurrences[0]['order']
        pattern['middle'] = occurrences[0]['middle'].strip()
        pattern['urlprefix'] = occurrences[0]['url'].lstrip('http://').lstrip('https://').split('/')[0] # 去除http头,并取主网址,保存url
        pattern['prefix'] = prefix.strip()
        pattern['suffix'] = suffix.strip()
        if len(pattern['prefix']) and len(pattern['suffix']) and len(pattern['urlprefix']) and len(pattern['middle']): # 只返回符合特异性的模式
            return pattern
        return None

     

      然后便是主代码,第一重循环是重复处理所有未处理过的网页,第二重循环是对每个单个网页进行处理,如果不能处理则转为处理下一个网页:

    if __name__ == '__main__': 
        flag = 0 # 跳出循环的标志,0不跳出,1跳出
        patterns = GetPatterns()
        data = GetData() # 获取所有没有被处理过的数据
        seeds = GetSeeds() # 获取所有种子
     
        while flag == 0 or len(seeds)>=CONST_MAXBOOK:
            flag = 1
            for index in range(len(data)-1,-1,-1): # 因为中途需要删除数据,所以从后往前遍历
                
                try:
                    if len(data[index]['text']) == 0:
                        data[index]['text'] = DelHrefInString(CrawlWeb(data[index]['url']))
                except:
                    MarkPage(data[index]['id']) # 对于无效的网页,删除该数据
                    flag = 0
                    print(data[index]['url'],'该网页无效:')
                    del data[index]
                    continue
                res = GetMatchPattern(patterns,data[index]['url']) # 对于每组数据,首先查找是否有现有匹配模式
                if res == 1: # 如果通过匹配模式匹配到事件并存储,则标记并删除,如果没有则利用种子查询
                    print(data[index]['url'],'该网页找到已有的匹配模式')
                    flag = 0
                    MarkPage(data[index]['id']) # 标记该网页已查询
                    del data[index] # 在内存中删除处理过的数据
                    continue # 处理下一个网页
    #             # 如果没有匹配的模式,或者利用匹配模式查出来的结果为空,则进行以下步骤
                occurrences = SearchSeedsInText(seeds,data[index]) # 在该条数据中搜索所有种子对,并记录成事件集
                if len(occurrences) != 0:
                    flag = 0
                    if len(occurrences)<2: # 如果种子查询个数仅仅为1,则无法形成事件(后续改为存储到数据库中)
    #                     print(data[index]['url'],'该种子查询结果仅为1')
    #                     print(occurrences)
                        continue
                    if WhetherFormPattern(occurrences): # 如果事件集具有相同的middle和order则尝试形成模式
                        pattern = FormPattern(occurrences)
                        print(data[index]['url'],'在该网页下形成模式')
                        print(pattern)
                        if pattern is not None: # 如果形成有效的模式,则利用模式在该页面下搜索
                            patterns.append(pattern) # 添加到模式数据中
                            SavePattern(pattern['order'],pattern['urlprefix'],pattern['prefix'],pattern['middle'],pattern['suffix']) # 直接存储
                            FindBooksByPattern(pattern,data[index]['text']) # 通过形成的模式查找元组并存储
                    print(data[index]['url'],'在该网页下无法形成模式')
                    print(occurrences)
    #                 MarkPage(data[index]['id']) # 现在无法形成模式,但并不代表不能使用其他子网页形成的模式
                    del data[index]

     

      我们将255个页面通过爬虫插入数据库,并手动将6个种子插入到数据库中,在python中传给变量data和seeds进行存储,然后运行代码,在十分钟内共计得到了6389条元组和三个模式

     

    上述详情可参考:

    改进方案:https://blog.csdn.net/qq_39591838/article/details/102750858

    改进后运行结果:https://blog.csdn.net/qq_39591838/article/details/102751044

     

     

     

     

    展开全文
  • 设计一个实用的学生通讯录管理系统,能以简便高效的方式对通讯录进行管理和检索,具体要示: (1) 录入:学生通讯录信息包括:学号,姓名,性别,出生年月,地址,电话,课题小组,E—mail 等。以结构数组或数据...
  • 一、本课题研究的意义、内容、思路、方法及参考文献等:(1)研究意义互联网是一个超级庞大的数据库,有着无数的网页,包含着海量的信息,无孔不入、森罗万象。但很多时候,无论出于数据分析或产品需求,我们需要从...
  • Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。因此网站建设在Internet应用上的地位显而易见,它已成为信息社会的重要组成部分...
  • 文章目录1 背景2 信息源分类2.1 专利2.1.1 检索方式2.1.1.1 中国专利检索2.1.1.2 外国专利检索2.2 会议文献2.2.1 检索方式2.3 期刊2.3.1 影响因子的计算2.3.2 国内常用的核心期刊标准2.4 科技报告2.5 学位论文2.6 ...
  • 证书编号:编号:2004-141查新时间:2004...查新结论:根据用户提供的资料和委托要求,我们针对“易语言汉语编程环境”课题,进行国内外联机检索,利用了30个有关数据库及互联网相关网站,共检索到18篇文献,其中有7篇相关
  • 一、本课题的目的和意义 高中是学生们忙于学习忙于考试的重要阶段,一方面学生们需要高中工具书来辅助学习,另一方面由于课程紧张...包括图书的上架管理,检索管理,图书维护以及评价管理等。 功能模块图如下图所示:
  • 怎样了解某研究课题的总体发展趋势?...可以通过在Scopus数据库中检索论文、生成课题引文报告或分析论文出版年的方式有效获得。  1.访问Scopus数据库检索论文  请访问:http://www.scopus.com
  • java技术可行性分析_Java可行性分析

    千次阅读 2021-02-25 18:25:29
    Java信息管理系统可行性研究报告一可行性研究前提1.1可行性研究背景及意义利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高...
  • 无论是进行科研立项还是开题报告,您常常需要从宏观上把握国内外某一研究领域或专题的总体研究趋势,如何快速获取这些信息呢?您可以通过生成课题引文报告或分析论文出版年的方式有效获得。 1.访问Web of Science...
  • 无论是进行科研立项还是开题报告,您常常需要从宏观上把握国内外某一研究领域或专题的总体研究趋势,如何快速获取这些信息呢?您可以通过生成课题引文报告或分析论文出版年的方式有效获得。 1.访问Web of ...
  • 了解某领域的研究进展与发展趋势

    千次阅读 2013-10-18 11:00:07
    无论是进行科研立项还是开题报告,您常常需要从宏观上把握国内外某一研究领域或专题的总体研究趋势,如何快速获取这些信息呢?您可以通过生成课题引文报告或分析论文出版年的方式有效获得。 1.访问Web of Science...
  •  《江汉油田科技成果数据库》是由研究院开发建没的二次文献型数据库,是江汉油田图书馆文献、技术档案等信息部门以及各二级厂处、科研单位了解我局科技成果、开展科研工作、成果查新、信息检索的必用工具。...

空空如也

空空如也

1 2
收藏数 35
精华内容 14
关键字:

信息检索课题检索报告