题目描述
问题1
import jieba
def fenci(txt):#进行分词操纵
f=open(txt,"r")#以读的方式打开
datas=f.read()
f.close()
data=jieba.lcut(datas)#使用jieba库进行分词
d={}#定义一个字典
for i in data:
if len(i)>=2:
d[i]=d.get(i,0)+1
lt=list(d.items())
lt.sort(key=lambda x:x[1],reverse=True)
return lt
def result(lt):#打印结果
for i in lt[:9]:#打印列表中的前9个元素
print(i[0],":",i[1],end=",",sep="")#sep的作用是操作i[0]与i[1]之间的符号,默认的话是空格
print("lt[9][0]",":",lt[9][1],sep="")#打印列表中的第十个元素
r1=fenci("data2018.txt")#将对应文件夹下的文件进行分词
r2=fenci("data2019.txt")
print(2019,end=":",sep="")
result(r2)#由于先打印出来的是2019,所以先调用2019文件
print(2018,end=":",sep="")
result(r1)
问题2
import jieba
def fenci(txt):#进行分词操作
f=open(txt,"r")
datas=f.read()
f.close()
data=jieba.lcut(datas)
d={}
for i in data:
if len(i)>=2:
d[i]=d.get(i,0)+1
lt=list(d.items())
lt.sort(key=lambda x:x[1],reverse=True)
ls=[x[0] for x in lt[:10]]#获取x中的第一个元素,即就是想要的名称
return ls
def result(lt):
print(",".join(lt))
r1=fenci("data2018.txt")
r2=fenci("data2019.txt")
r3=[]#用来存储r1和r2相同的元素
for i in r1:#将r1与r2相同的元素合并,压入到列表r3中
if i in r2:
r3.append(i)
for i in r1:#去掉r1中压入r3中的元素
if i in r3:
r1.remove(i)
for i in r2:#去掉r2中压入r3中的元素
if i in r3:
r2.remove(i)
print("共有词语:",end="",sep="")
result(r3)
print("2019特有:",end="",sep="")
result(r2)
print("2018特有:",end="",sep="")
result(r1)