zoukankan      html  css  js  c++  java
  • 8月13日

    获取到所有的新闻热点之后,需要从中分析处人们词汇

    我的的想法是先把这些新闻放在一个txt文件中,在读取这个文件对内容进行拆分

    写入文件的代码:

    file= open('E:html模板hot.txt','w')
    for item in items:
    file.write(item+" ")
    file.close()

    读取文件的代码:

    f=open('E:html模板hot.txt','r')
    suoyou=f.read()
    这样读取的是整个txt的字符串,而不是一行一行的


    想要读文件一行一行可以用这个

    fopen = open('C:\Users\hp\Desktop\final_hotword2.txt', 'r',encoding='utf-8')

    lines = fopen.readlines()

    注意方式必须是utf-8

    ****通过jieba这个库来将字符串分成一个一个词语,jieba.cut生成的是一个生成器,generator,也就是可以通过for循环来取里面的每一个词

    jieba.lcut 直接生成的就是一个list

    words=jieba.cut(suoyou)

    需要一个不重要词语的比对文件,创建一个不重要的词汇的列表

    r=[]

    rubbishwords = [line.rstrip() for line in open(r'E:html模板 ubbish.txt', encoding='UTF-8')]#就是分成一个列表
    #以下的三行代码与第十一行代码功能相同
    lf=open(r'E:html模板 ubbish.txt',encoding='UTF-8')#打开寻常中文文件按行输出用UTF-8,用'r','w'不可以
    for l in lf:
    #rstrip() 删除 string 字符串末尾的指定字符(默认为空格).
    #此处就是将回车和空格都删除
    r.append(l.rstrip())

    通过条件判断并对词汇计数,通过导入counter包,来做操作计数

    from collections import Counter
    c = Counter() #通过这个计数类来记录单词出现个数
    for word in words:
    if word not in r and len(word)>1 and word !=r' ':
    #counts[word] = counts.get(word, 0) + 1
    # #没出现一次次数加一
    c[word]+=1

    学习时间:13:34到16:43

    
    
    
    
    
    
    
    



    
    
    
    
  • 相关阅读:
    为何总是在无聊的事中浪费生命
    Objective-C Polymorphism
    [MONGODB]: WHEN ARBITER REQUIRED FOR REPLICA SET
    巴菲特已四度战胜股灾 称A股长期仍将向上(2015年09月14日)
    visual studio 2012 has stopped working
    [2015-04-17] 2015年的股市比2008年还危险……
    Using HiveServer2
    有了Hadoop MapReduce, 为什么还要Spark?
    HIVE: Map Join Vs Common Join, and SMB
    ORA-12170:TNS:连接超时
  • 原文地址:https://www.cnblogs.com/buyaoya-pingdao/p/15138118.html
Copyright © 2011-2022 走看看