コンピュータ二級python総合応用問題(六)

7795 ワード

受験生フォルダ下のファイルdata.txtはネット上の技術情報資料に由来する.質問1:(10点)質問2:(10点)
問題1
受験生フォルダの下にプログラムフレームファイルPY 301 l.pyが与えられ、補完コードがプログラムを完了する.python言語中国語分詞サードパーティライブラリjieba対ファイルdata.txtは分詞を行い、3文字以上の長さのキーワードを選択してファイルout 1に書き込む.txt,各行1つのキーワード,各行のキーワードは重複せず,出力順序は要求しない,例えば:人工知能SF小説
import jieba
f = open('data.txt','r')
lines=f.readlines()
f.close()
D=[]
for line in lines:
    wordList=jieba.lcut(line)#     ,         
    for word in wordList:
        if len(word)<3: #     ,     3   
            continue
        else:
            if word not in D:
                D.append(word)
f=open('out1.txt','w')
f.writelines('
'
.join(D)) f.close()

問題2
受験生フォルダの下にプログラムフレームファイルPY 301 1 2が与える.py、補足コード完了プログラム.ファイルdata.txtは分詞を行い、長さが3文字以上のキーワードに対して出現回数を統計し、出現回数が大きいから小さい順にファイルout 2に出力.txt、行ごとに1つのキーワードとその出現回数、例えば:科学者:2ダトマス:1
import jieba
f=open("data.txt","r")
lines=f.readlines()
f.close()

d = {}
for line in lines:
    wordList=jieba.lcut(line) #     ,         
    for word in wordList:
        if len(word)<3:
            continue
        else:
            d[word]=d.get(word,0)+1
ls=list(d.items())
ls.sort(key=lambda x:x[1],reverse=True)#          
            
f=open('out2.txt','w')
for i in range(len(ls)):
    f.write('{}:{}
'
.format(ls[i][0],ls[i][1])) f.close()