《三国演义》是中国古典四大名著之一,曹操是其中主要人物,考生文件夹下文件data.txt给出《三国演义》简介。 问题1:请编写程序,用Python语言中文分词第三方库jieba对文件data.txt进行分词,并将结果写入文件out.txt,每行一个

admin2020-04-10  36

问题 《三国演义》是中国古典四大名著之一,曹操是其中主要人物,考生文件夹下文件data.txt给出《三国演义》简介。
    问题1:请编写程序,用Python语言中文分词第三方库jieba对文件data.txt进行分词,并将结果写入文件out.txt,每行一个词,例如:
    内容简介
    编辑
    整个
    故事
    在
    东汉
    …
    在考生文件夹下给出了程序框架文件PY301—1.py,补充代码完成程序
    试题程序:
    #请在_____处使用一行代码或表达式替换
    #
    #注意:请不要修改其他已给出代码
    import jieba
    f=open(’data.txt’,’r’)
    lines =f.readlines()
    f.close()
    f=open(’out.txt’,’w’)
    for line in lines:
       line=_____(1)_____    #删除每行首尾可能出现的空格
       wordList=_____(2)_____    #用结巴分词,对每行内容进行分词
       f.writelines(’\n’_____(3)____)#将分词结果存到文件out.txt中
    f.close()
    问题2:对文件out.txt进行分析,打印输出曹操出现次数。
    在考生文件夹下给出了程序框架文件PY301—2.py,补充代码完成程序
    试题程序:
    #请在______处使用一行代码或表达式替换
    #
    #注意:请不要修改其他已给出代码
    import jieba
    f=open(’out.txt’,’r’)    #以读的方式打开文件
    words  =f.readlines()
    f.close()
    D={}
    for w in_____(1)_____:    #词频统计
          D[w[:一1]]=_______(2)_______+1
print(”曹操出现次数为:{}”.format(______(3)________))

选项

答案(1)import jieba f=open(’data.txt’,’r’) lines=f.readlines() f.close() f=open(’out.txt’,’w’) for line in lines: line=line.strip() wordList=jieba.lcut(line) f.writelines(’\n’.join(wordList)) f.close() (2)import jieba f=open(’out.txt’,’r’) words=f.readlines() f.close() D={} for w in words: D[w[:一1]]=D.get(w[:-1],0)+1 print(”曹操出现次数为:{}”.format(D[’曹操’]))

解析 (1)本题要使用jieba库,则首先用import保留字引用jieba库。打开”data.txt”文件后,需要用readlines()函数读人所有行,以每行为元素形成列表lines,然后用for循环遍历该列表中的每个元素并进行分词。在遍历每个元素时,首先用strip()方法删除元素首尾出现的空格,因此第一空填入:line.strip();然后使用jieba库的lcut()函数对元素进行精准分词,因此第二空填入:jieba.lcut(line);最后将换行符’\n’插入到每个词组之间,并写入到文件”out.txt”中,因此第三空填入:join(wordList)。
    (2)首先用import保留字引用jieba库。打开”out.txt”文件后,需要用readlines()函数读入所有行,以每行为元素形成列表words,然后用for循环遍历该列表中每个元素出现的次数。因此,第一空填入:words。
    在遍历每个元素时,若字典D中不存键与该元素相同,就将该元素作为字典D的一个键,该键所对应的值置为1;若字典D中存在键与该元素相同,就将该键对应的值加1。因此,第二空填入:D.get(w[:一1],0)。
    题目要求的是打印输出曹操出现次数,字典D中键”曹操”对应的值即为该词出现的次数。因此,第三空填入:D[’曹操’]。
转载请注明原文地址:https://jikaoti.com/ti/Yt50FFFM
0

最新回复(0)