精华内容
下载资源
问答
  • 武汉大学2017年研究生信息检索期末考试题。。。。。。。。。。。。。。。。。。。。。。
  • 国科大 现代信息检索 期末考试 开卷考试 往年试题 课后习题 作业答案
  • 山东大学软件学院2020~2021信息检索期末考试回忆版

    2020-2021年度山东大学软件学院信息检索考试
    开学的时候上这门课时老师说很多同学都觉得这门课程难(范围广且多,不过这倒是符合信息检索的定义“融合了~~~的综合学科”,哈哈哈),最终期末考试是“贝多芬(背多分)”,纯记忆力考试。写这个回忆版也耗费了我巨大的记忆力,我如何记得住这么多题(无它,答完后还剩50分钟,背就完了),如果我考前不喝红牛或许还记不住这么多题。复习的时候获得了学长的回忆版,可惜没有填空题,传承“传统”也就有了这个回忆版,话不多说,开始我的回忆……
    考试时间:2020年12月22日 14:00-16:00

    保证所有题目顺序的正确性

    去年题(2019-2020):https://download.csdn.net/download/qq_40422851/12054761

    一、填空题(每空1分,共38分)

    1. 信息检索实质上融合了文本及多媒体检索、数据挖掘、_____ 和 ______ 的综合学科。
    2. 信息检索技术可以解决互联网上的 _____ 问题。
    3. 爬虫是一种 _____ 程序。
    4. 爬虫从一个或若干个网页的URL开始,抽取URL放入 _____ 中。
    5. 爬虫可以采用 _____ 判重。
    6. 爬虫的搜索策略有 _____ 和 _____ 。
    7. 爬虫礼貌性体现在 _____ 。
    8. 使用python语言中的Pandas模块里的 _____ 函数,可以直接提取网页中的表格。
    9. 搜索引擎的主要组成部分为:爬虫和爬取、_____ 、搜索词处理、排序。搜索引擎的核心数据结构为 _____ 。
    10. 消除停用词的方法: _____ 和 _____。
    11. _____ 在一般情况下,将多个派生词合并在一起。
    12. 基于词典的分词方法,也叫“ _____ ” 法,根据扫描方向,匹配策略有 _____ 和 _____ 。
    13. 布尔模型建立在 _____ 和 _____ 的基础上。
    14. 精确的Top K搜索的加速方法有(1)_____ ; (2) _____ ;(3)_____ 。
    15. L2R中的文档方法损失函数评估 _____ 。
    16. PageRank是基于 _____ 的回归关系来判定所有网页的重要性。
    17. HITS算法中,每个网页计算两个值:_____ 和 _____ 。
    18. SVD也就是 _____ ,可以用于 _____ 。
    19. BM25由三个部分组成: _____ 、_____ 和 _____ 。
    20. 词的向量表示有 _____ 和 _____ 。
    21. 用于大量文档查重的局部敏感哈希算法有 _____ 和 _____ 。
    22. 形状的描述符大体可以分为两大类,基于 _____ 的和基于 _____ 的。

    二、名词解释(每个6分,共30分)

    1. 正则表达式
    2. 图像BoW
    3. 统计语言模型
    4. pLSA
    5. LBR

    三、简答题(每个8分,共32分)

    1. 简述向量空间模型及其特点
    2. 什么是HMM?简述HMM用于中文分词的方法
    3. 简述信息检索评价的主要指标
    4. 网站反爬虫的方法有哪些?应对策略是什么?
    展开全文
  • 山东大学2021年信息检索期末考试回顾
  • 中国科学院大学信息检索导论(李波)期末考试试题
  • 信息检索》第一期期末考试 返回考试列表 全部为单项选择题,共15道30分,在课程中占30%分数 倒计时:170:51 1 ()是高校或科研机构的毕业生为获取学位而撰写的。 (单选2分) ...

    《信息检索》第一期期末考试

     返回考试列表

    全部为单项选择题,共15道30分,在课程中占30%分数
    倒计时:170:51
    1

    ()是高校或科研机构的毕业生为获取学位而撰写的。

    (单选2分)
    • A.

      学位论文

    • B.

      科技报告

    • C.

      政府出版物

    • D.

      档案文献

       

    2

    对于企业来说,以下哪一项检索对其作用最大?

    (单选2分)
    • A.

      专利、商标信息的检索

    • B.

      学位论文的检索

    • C.

      研究论文的检索

    • D.

      会议论文的检索

    3

    以下哪一个是Google指定文件类型检索()

     

    (单选2分)
    • A.

      检索词 filetype

    • B.

      检索词 site

    • C.

      检索词 insite

    • D.

      检索词 innurl

    4

    以下哪一种不是信息素质的内涵?

    (单选2分)
    • A.

      信息道德素质

    • B.

      信息意识素质

    • C.

      信息能力素质

    • D.

      信息职业素质

    5

    以下哪一个网站是全球最大的中文搜索网站?

    (单选2分)
    • A.

      Bing

       

    • B.

      百度

    • C.

      搜狗

    • D.

      Google

    6

     Google公司的创始人为()?

    (单选2分)
    • A.

      扎克伯格

    • B.

      比尔盖茨

    • C.

      李彦宏

       

    • D.

      谢尔盖布林和拉里佩奇

    7

    以下不是布尔逻辑运算符的是()

    (单选2分)
    • A.

      AND

       

    • B.

      OR

    • C.

      Near

    • D.

      NOT

    8

    CALIS的全称是()?

    (单选2分)
    • A.

      中国国家数字图书馆

    • B.

      国家科技图书文献中心

    • C.

      中国高等人文社会科学外文文献保障体系

    • D.

      中国高等教育文献保障系统

    9

    中国国家科技图书文献中心的简称是()?

    (单选2分)
    • A.

      CASHL

    • B.

      NSTL

    • C.

      BLDSC

    • D.

      OCLC

    10

    如果只有图片而不知道图片的名字和相关信息,可以在百度中采用以下哪种检索方式?

     

    (单选2分)
    • A.

      学术检索

    • B.

      语音检索

    • C.

       新闻检索

    • D.

      图片检索

    11

    信息检索系统的功能为:报道文献信息、存储文献信息和()

    (单选2分)
    • A.

      宣传文献信息

    • B.

      介绍文献信息

    • C.

      检索文献信息

    • D.

      揭示文献信息

    12

    以下哪一个是英文学术搜索网站

    (单选2分)
    • A.

      eBay

    • B.

      Google Scholar

    • C.

       Amazon

    • D.

      Yahoo

    13

    在CNKI中,以下哪一个对检索结果的排序能够体现最新的文献

    (单选2分)
    • A.

      按照发表时间排序(降序)

    • B.

      按照下载量排序

    • C.

      按照主题排序

    • D.

      按照被引量排序

    14

    互联网上主要的购书网站有?

    (单选2分)
    • A.

      亚马逊、当当、京东

    • B.

      百度

    • C.

      雅虎

    • D.

      网易

    15

    四大美国政府报告中的NASA是指()?

    (单选2分)
    • A.

      行政报告

    • B.

      军事报告

    • C.

      能源报告

    • D.

      宇航报告

    提交答案

    转载于:https://www.cnblogs.com/flyingsir/p/4141849.html

    展开全文
  • 课程代码:0661283 环境:jupyter-notebook 主要总结一些菜鸟教程上的题或者课后题。 ...第二章课后题 2-5 精确计算 2除以6,要求结果输出 1/3(分数形式) from fractions import Fraction a = Fraction(2,6) ...

    课程代码:0661283
    环境:jupyter-notebook
    主要总结一些菜鸟教程上的题或者课后题。
    学习参考:https://www.515code.com/posts/aibyzrwu/
    菜鸟教程例题:https://www.runoob.com/python3/python3-examples.html (看到合并字典之前)

    部分知识点小结

    打印字符串

    以两数相加为例,下面列出常用的打印方法。

    num1 = input('请输入第一个数字:')
    num2 = input('请输入第二个数字:')
    sum = float(num1) + float(num2)
    print('数字{0}和{1}的结果为{2}'.format(num1, num2, sum))
    print('数字 %s 和 %s 的结果为 %.2f' % (num1, num2, sum))
    print(f'数组{num1}和{num2}的结果为{sum}')
    

    可以看到,我们可以像C语言那样使用控制符格式化输出字符串,也能使用Python的f-string(只需在字符串前加一个字符f即可)。

    这里要注意一个地方:input()函数输入的值默认为str类型。

    考试题

    考完试,发现最后一题全排列有点难,但是完全不用怕,可以投机取巧用“随机法”(性能极差),下面上代码。

    import random
    m = '1234'
    length = len(m)
    tag = 0
    se = {''}
    for j in range(0, 1000):
        ans = ''
        s = m+''
        for i in range(0,1000):
            r = random.randint(0, length-1)
            if s[r] in ans:
                continue
            elif s[r] == '-1':
                continue
        
            for a in s:
                if a!='-1':
                    break
            else:
                tag = 1
            
            if tag==1:
                se.add(ans)
                break
        
            ans += s[r]
        else:
            se.add(ans)
    se.remove('')
    print(len(se))
    se
    

    查阅相关资料后,发现还有递归法。
    这个方法的核心在于交换,下面是原理图。
    全排列-递归法

    a = '123'
    l = list(a)
    
    def allSort(l, start, end):
        if start == end:
            print(l)
            
        for i in range(start, end):
            # 交换
            l[i], l[start] = l[start], l[i]
            allSort(l, start+1, end)
            # 再换回来
            l[i], l[start] = l[start], l[i]
    
    allSort(l, 0, len(l))
    

    第三种方法:深搜

    # 深搜
    a = '123'
    l = list(a)
    num = [-1 for i in range(0,len(a))]
    visited = [False for i in range(0,len(a))]
    
    def dfs(index):
        if index == len(a):
            print(num)
            return
        for i in range(0, len(a)):
            if not visited[i]:
                visited[i] = True
                num[index]=l[i]
                dfs(index+1)
                visited[i] = False    # 回溯
    dfs(0)
    

    第二章课后题

    2-5 精确计算 2除以6,要求结果输出 1/3(分数形式)

    from fractions import Fraction
    a = Fraction(2,6)
    print(a)
    

    2-8 字符串倒序

    s1 = "map"
    # 方法1
    print(s1[::-1])
    # 方法2
    l = list(s1)
    l.reverse()
    s2 = ''.join(l)
    print(s2)
    

    2-9 用户输入一个单词,并显示单词长度

    s = input()
    len(s)
    

    2-10 每个单词首字母大写

    s = "Python is a widely used high-level, general-purpose, interpreted, dynamic programming language."
    s1=""
    for i in range(0,95):
        if i>0 and s[i-1]==' ':
            s1 = s1 + s[i].upper()
        else:
            s1 = s1 + s[i]
    s1
    

    2-11 切片取列表

    list = ["python","java","c","c++","lisp"]
    # 第一项
    print(list[:1])
    # 第三项
    print(list[2:3])
    # 第五项
    print(list[-1:])
    

    2-12 生成一个由100以内能被5整除的数组成的列表,然后将该列表的数字从大到小排序

    ans=[]
    for x in range(5,101):
        if(x%5==0):
            ans.append(x)
    ans.sort(reverse=True)
    # 注意 list 排序
    ans
    

    2-13 创建一个字典,以citys中元素为key,codes中元素为value

    citys=["suzhou","shanghai","hangzhou","nanjing"]
    codes=["0512","021","0571","025"]
    d={}
    i=0
    for x in citys:
        d[x] = codes[i]
        i+=1
    d
    

    第二章总结:无非是Python几种数据类型的基本操作,建议多看一下这些类型的内建函数,可以简化很多代码。

    第三章课后题

    3-1 在0~9间随机选择一个整数,操作100次,统计共有几种数字,并用字典的方式输出每个数字的出现次数,键是出现的整数,值是出现的次数。

    import random
    
    d = {0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0}
    for i in range(0,101):
        a = random.randint(0,9)
        d[a]+=1
    d
    

    或者

    import random
    
    d = {}
    for i in range(0,101):
        a = random.randint(0,9)
        if a in d:
            d[a]+=1
        else:
            d[a]=1
    d
    

    3-2 将整数2016的每个数字分离出来,依次打印输出。

    a = 2016
    s = str(a)
    for i in s:
        print(i)
    

    或者

    a = 2016
    ans = 0
    while(a):
        temp = a % 10
        a //= 10 # 注意这里要用双斜杠除法
        print(temp)
    

    3-3 已知字典{“name”:“python”,“book”:“python”,“lang”:“english”},要求将该字典的键和值对换。(注意有值重复)

    d = {"name":"python","book":"python","lang":"english"}
    ans = {}
    for i in d.keys():
        temp = d[i]
        ans[temp] = i
    ans
    # 由于有值重复,所以对换后结果如下:
    # {'python': 'book', 'english': 'lang'}
    

    3-4 已知一段程序中,用列表保存几个用户名,例如[‘xiaoxifeng’, ‘cangcang’, ‘tom’],要求通过终端输入新的用户名,判断所输入的用户名是否为已经设置好的用户名,并且对判断结果给出友好的提示。如果不是,允许用户多次尝试输入,直到正确为止。

    user = ['xiaoxifeng', 'cangcang', 'tom']
    while(1):
        s = input()
        if s in user:
            print("正确,程序结束")
            break
        else:
            print("用户名有误,请重新输入")
    

    3-5 找一段英文的文本,统计该文本中单词的出现次数。比如 “How are you.How are you.” 的统计结果是 {“how”:2, “are”:2, “you”:2}。

    s = "How are you.How are you."
    s = s.lower() # 变小写
    d = {}
    temp = ""
    for i in range(0, len(s)):
        if s[i] != ' ' and s[i] != '.':
            temp += s[i]
        else:
            print(temp)
            if temp in d:
                d[temp] += 1
            else:
                d[temp] = 1
            temp = ""
    d
    

    3-6 已知字符串 ‘aAsmr3idd4bgs7Dlsf9eAF’,要求编写程序,完成如下任务。

    ① 将字符串中的数字取出,并输出成一个新的字符串。

    s = 'aAsmr3idd4bgs7Dlsf9eAF'
    s1 = ''
    for i in s:
        if i in '0123456789':
            s1 += i
    s1
    

    也可以用ascii码方式来写,python中使用ord('a')方式打印a的ascii码,使用chr(97)方式打印字符。

    ② 统计字符串中每个字母的出现次数(忽略大小写),并输出成一个字典。

    s = 'aAsmr3idd4bgs7Dlsf9eAF'
    s = s.lower()
    d = {}
    # a-z 97-122
    for i in s:
        if ord(i) >= 97 and ord(i) <= 122:
            if i in d:
                d[i] += 1
            else:
                d[i] = 1
    d
    

    ③ 去除字符串多次出现的字母,不区分大小写,如 ‘aAsmr3idd4bgs7Dlsf9eAF’ 去除后,输出 ‘asmr3id4bg7lf9e’。

    s = 'aAsmr3idd4bgs7Dlsf9eAF'
    s = s.lower()
    ans = ''
    # a-z 97-122
    for i in s:
        if i in ans:
            continue
        else:
            ans += i
    ans
    

    3-7 有一百个瓶子,分别编号为1~100。现在有人拿枪从第一个开始射击,每枪击破一个,跳过一个,一直到一轮完成。接着在剩下的瓶子里面再次击破第一个,间隔一个再击破一个。问最后剩下完整的瓶子是这一百个瓶子里的第几个?

    l = []
    for i in range(0, 100):
        l.append(i)
    while len(l)>1:
        m = 0
        for r1 in l:
            if m==0:
                l.remove(r1)
                m=1
            if m==1:
                m=0
                continue
    print(l[0]+1) # 因为之前用的编号为0~99,因此加1为正确答案:64
    

    3-8 写一段程序,能够实现如下功能。
    ① 输入英文的姓名
    ② 按照字典顺序将所有姓名排序
    ③ 输入完毕,将排序结果打印出来

    num = input("请输入姓名个数:")
    l = []
    for i in range (0, int(num)):
        name = input("姓名" + str(i+1) + ":")
        l.append(name)
    l.sort() # 按字典序升序排列
    l
    

    3-16 创建PayCalculator类,拥有pay_rate属性,以每小时人民币数量为单位。该类拥有compute_pay(hours)方法,计算给给定工作时间的报酬,并返回。

    class PayCalculator:
        pay_rate = 20 # 每小时20元
        def compute_pay(self, hours):
            return hours*self.pay_rate
    # 实例化
    x = PayCalculator()
    x.compute_pay(2)
    # 输出 40
    

    3-17 创建SchoolKid类,初始化小孩的姓名,年龄。也有访问每个属性的方法和修改属性的方法。然后创建ExaggeratingKid类,继承SchoolKid类,在子类中覆盖访问年龄的方法,并将实际年龄加2。

    class SchoolKid(object):
        def __init__(self, name, age):
            self.__name = name # 前面两个下划线代表name为私有成员变量
            self.__age = age
        def setName(self, name):
            self.__name = name
        def setAge(self, age):
            self.__age = age
        def getName(self):
            return self.__name
        def getAge(self):
            return self.__age
        
    class ExaggeratingKid(SchoolKid):
        def __init__(self, name, age):
            super(ExaggeratingKid, self).__init__(name, age)
        def getAge(self):
            return SchoolKid.getAge(self) + 2 # 子类调用父类必须传self
    
    s = ExaggeratingKid("banana", 20)
    print(s.getAge())
    

    更多内容,欢迎访问https://www.515code.com/

    展开全文

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

信息检索期末考试