精华内容
下载资源
问答
  • python中文分词统计词频
    2019-09-21 10:43:20

    利用jieba进行分词  

    import jieba
    sentence = '橘子香蕉橙子苹果柚子橘子橙子柚子苹果火龙果橙子香蕉香蕉橘子橙子柚子苹果火龙果柚子苹果火龙果橙子香蕉柚子橘子橙子柚子苹果苹果柚子橘子橙子柚子苹果橙子柚子苹果火龙果橙子香蕉香蕉橘子橙子柚子苹果火龙果'
    seg = list(jieba.cut(sentence, cut_all=False))
    print(seg)

    词频统计

    from collections import Counter
    seg = Counter(seg)
    seg.most_common()#默认查看所有类计数,seg.most_common(2)查看前两位计数

    OK!

    更多相关内容
  • 3.分词并去停用词(此时可以直接利用python原有的函数进行词频统计)???4.?输出分词并去停用词的有用的词到txt???5.函数调用???6.结果?????总结本文记录了一下Python在文本处理时的一些过程+代码我准备了一个名为...

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

    文章目录

    展开全文
  • 本篇文章主要介绍了python jieba分词统计词频后输出结果到Excel和txt文档方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本篇文章主要介绍了python实现简单中文词频统计示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • python jieba分词中文词频统计

    千次阅读 多人点赞 2021-11-07 23:58:49
    python中文词频统计 上篇python jieba是Python中一个重要的第三方中文分词函数库,需要通过 pip指令安装,-i 参数指定国内镜像源,速度更快 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba jieba...

    这篇博客用来记录一下自己学习用python做词频统计的过程,接上篇的英文词频统计

    上篇:python词频统计并按词频排序

    参考资料:jieba参考文档

    一、jieba库简介

    jieba是Python中一个重要的第三方中文分词函数库,需要通过
    pip指令安装,顺便一说,使用-i 参数指定国内镜像源,速度更快

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba
    

    jieba分词的三种常见模式如下
    * 精确模式,尝试将句子最精确地切开,适合文本分析,不过精确模式分词速度不尽人意
    * 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义问题;
    * 搜索引擎模式,在精确模式的基础上,对长词再次切分,适合用于搜索引擎分词。

    简单介绍下jieba库的几个常用方法
    jieba.lcut(s) 精确模式,返回一个列表类型,一般分词就用这个方法
    jieba.lcut(s, cut_all=True) 全模式,返回一个列表类型,
    jieba.lcut_for_search(s) 搜索引擎模式,返回一个列表类型

    下面简单看下三个方法的效果

    >>> import jieba
    >>> jieba.lcut("青年一代是充满朝气、生机勃勃的")#精确模式
    ['青年一代', '是', '充满', '朝气', '、', '生机勃勃', '的']
    >>> jieba.lcut("青年一代是充满朝气、生机勃勃的",cut_all=True)#全模式
    ['青年', '青年一代', '一代', '是', '充满', '满朝', '朝气', '、', '生机', '生机勃勃', '勃勃', '勃勃的']
    >>> jieba.lcut_for_search("青年一代是充满朝气、生机勃勃的")#搜索引擎模式
    ['青年', '一代', '青年一代', '是', '充满', '朝气', '、', '生机', '勃勃', '生机勃勃', '的']
    >>> 
    

    可以看到,精确模式对句子的切分最为准确,适合用来做文章词频统计,其它两个模式各有侧重,全模式会提供尽可能多的词,但不能解决歧义,搜索引擎模式切分出来的词适合作为搜索引擎的索引或关键字。

    接下用,我们尝试用精确模式来对《水浒传》进行切分,并统计切分后的词频。

    二、一些准备工作

    同样的,这里也需要用到停用词表处理停用词并用相关第三方库解决中文标点符号问题
    中文标点可以直接用zhon库(不是自带的库,需要手动安装)

    import zhon.hanzi
    punc = zhon.hanzi.punctuation  #要去除的中文标点符号
    print(punc)
    #包括"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、 、〃〈〉《》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏﹑﹔·!?。。
    

    这样,中文标点的问题解决了,但是,我上篇中用过的nltk库的停用词库里并没有中文停用词表,于是我就在网上重新找了一个并把它加到了nltk库的停用词表库里去,这样它就有中文停用词表了,我可真是机灵.jpg
    当然这里其实也可以直接将停用词表保存为.txt文档,用的时候直接读入就行,下面介绍一下上述两种操作

    某大佬在github分享的停用词表
    我这里用的百度停用词表,但是尴尬的是它对我选择文本的词语排除效果好像不是很好…

    一、将百度停用词表加入nltk库的停用词库中
    ①首先将百度停用词表复制(下载)下来,保存为.txt文档,注意文档格式,必须是每行一个词(字)
    ②接下来,找到nltk的停用词库路径,一般在python文件夹的lib中找,参考路径如下,python3.9.7\Lib\nltk_data\corpora\stopwords
    你可以在lib里直接搜索stopwords,不过前提是你安装了nltk库,当然lib下可能有几个stopwords,不要弄错了,是nltk目录下的那个
    ③将我们前面提到的.txt文档复制到stopwords里,把后缀名.txt去掉就行
    在这里插入图片描述
    大功告成,接下来试试添加的停用词表能成功加载不

    
    >>> from nltk.corpus import stopwords
    >>> baidu_stopwords = stopwords.words("baidu_stopwords")
    >>> print(baidu_stopwords[:100])
    ['--', '?', '“', '”', '》', '--', 'able', 'about', 'above', 'according', 'accordingly', 'across', 'actually', 'after', 'afterwards', 'again', 'against', "ain't", 'all', 'allow', 'allows', 'almost', 'alone', 'along', 'already', 'also', 'although', 'always', 'am', 'among', 'amongst', 'an', 'and', 'another', 'any', 'anybody', 'anyhow', 'anyone', 'anything', 'anyway', 'anyways', 'anywhere', 'apart', 'appear', 'appreciate', 'appropriate', 'are', "aren't", 'around', 'as', "a's", 'aside', 'ask', 'asking', 'associated', 'at', 'available', 'away', 'awfully', 'be', 'became', 'because', 'become', 'becomes', 'becoming', 'been', 'before', 'beforehand', 'behind', 'being', 'believe', 'below', 'beside', 'besides', 'best', 'better', 'between', 'beyond', 'both', 'brief', 'but', 'by', 'came', 'can', 'cannot', 'cant', "can't", 'cause', 'causes', 'certain', 'certainly', 'changes', 'clearly', "c'mon", 'co', 'com', 'come', 'comes', 'concerning', 'consequently']
    >>> print(baidu_stopwords[-100:])
    ['起', '起来', '起见', '趁', '趁着', '越是', '跟', '转动', '转变', '转贴', '较', '较之', '边', '达到', '迅速', '过', '过去', '过来', '运用', '还是', '还有', '这', '这个', '这么', '这么些', '这么样', '这么点儿', '这些', '这会儿', '这儿', '这就是说', '这时', '这样', '这点', '这种', '这边', '这里', '这麽', '进入', '进步', '进而', '进行', '连', '连同', '适应', '适当', '适用', '逐步', '逐渐', '通常', '通过', '造成', '遇到', '遭到', '避免', '那', '那个', '那么', '那么些', '那么样', '那些', '那会儿', '那儿', '那时', '那样', '那边', '那里', '那麽', '部分', '鄙人', '采取', '里面', '重大', '重新', '重要', '鉴于', '问题', '防止', '阿', '附近', '限制', '除', '除了', '除此之外', '除非', '随', '随着', '随著', '集中', '需要', '非但', '非常', '非徒', '靠', '顺', '顺着', '首先', '高兴', '是不是', '说说']
    >>> 
    
    

    很好,加载成功了,说明我们成功给nltk库加上了中文停用词表,其实学会了这个操作后我们可以根据自己的需求定义自己的“停用词表”,将标点符号,停用词等放到一个文件中,这样用的时候直接导入nltk库,不需要导入其它库了

    二、将百度停用词表保存为.txt文件,需要用的时候读取

    with open('E:\Python_code\\blog\\baidu_stopwords.txt',encoding="utf-8") as fp:
        text = fp.read()
    print(text[:100],text[-100:])
    

    三、中文词频统计

    整个处理流程大致和上篇的英文词频统计差不多,主要就这几步:
    *读入文档
    *分词
    *去掉标点及停用词
    *统计词频
    *排序

    我这里不统计长度为1的词,所以去标点符号这步可省略,另外使用第三方库可以更快捷地统计词频,往往还集成了排序功能。

    import jieba
    import zhon.hanzi
    from nltk.corpus import stopwords
    
    punc = zhon.hanzi.punctuation  #要去除的中文标点符号
    baidu_stopwords = stopwords.words('baidu_stopwords') #导入停用词表
    #读入文件
    with open('E:\Python_code\Big_data\homework4\水浒传.txt',encoding="utf-8") as fp:
        text = fp.read()
        
    ls = jieba.lcut(text)#分词
    
    #统计词频
    counts= {}
    for i in ls:
        if len(i)>1:        
            counts[i] = counts.get(i,0)+1
    
    #去标点(由于我这里不统计长度为1的词,去标点这步可省略)
    # for p in punc:  
    #     counts.pop(p,0)
    
    for word in baidu_stopwords:  #去掉停用词
        counts.pop(word,0)
    
    ls1 = sorted(counts.items(),key=lambda x:x[1],reverse=True) #词频排序
    
    print(ls1[:20])
    

    同上篇方法,我们也可借助第三方库完成词频统计
    借助collections库

    import jieba
    import zhon.hanzi
    from nltk.corpus import stopwords
    import collections
    
    punc = zhon.hanzi.punctuation  #要去除的中文标点符号
    baidu_stopwords = stopwords.words('baidu_stopwords') #导入停用词表
    #读入文件
    with open('E:\Python_code\Big_data\homework4\水浒传.txt',encoding="utf-8") as fp:
        text = fp.read()
           
    ls = jieba.lcut(text)
    
    #去掉长度为1的词,包括标点
    newls = []
    for i in ls:
        if len(i)>1:
            newls.append(i)
    
     #统计词频
    counts = collections.Counter(newls)       
    for word in baidu_stopwords:  #去掉停用词
        counts.pop(word,0)
    
    print(counts.most_common(20))
    
    
    

    借助pandas库

    import jieba
    import zhon.hanzi
    from nltk.corpus import stopwords
    import pandas as pd
    
    punc = zhon.hanzi.punctuation  #要去除的中文标点符号
    baidu_stopwords = stopwords.words('baidu_stopwords') #导入停用词表
    #读入文件
    with open('E:\Python_code\Big_data\homework4\水浒传.txt',encoding="utf-8") as fp:
        text = fp.read()
           
    ls = jieba.lcut(text)
    
    #去掉长度为1的词,包括标点
    newls = []
    for i in ls:
        if len(i)>1:
            newls.append(i)
    #统计词频
    ds = pd.Series(newls).value_counts()
    
    
    for i in baidu_stopwords:
        try:      #处理找不到元素i时pop()方法可能出现的错误
            ds.pop(i)  
        except:
            continue #没有i这个词,跳过本次,继续下一个词
    
    
    print(ds[:20])
    

    贴个测试结果
    在这里插入图片描述

    四、jieba自定义分词、词性分析

    jieba支持自定义分词器,可以进行词性标注,但是不能保证所有词都被标注而且分析速度比较慢,这里只介绍一个例子,下面用自定义分词器对《“十四五”信息通信行业发展规划》解读做下词性分析
    词性表

    标记词性描述
    Ag形语素形容词性语素。形容词代码为 a,语素代码g前面置以A。 a 形容词 取英语形容词 adjective的第1个字母。
    ad副形词直接作状语的形容词。形容词代码 a和副词代码d并在一起。
    an名形词具有名词功能的形容词。形容词代码 a和名词代码n并在一起。
    b区别词取汉字“别”的声母。
    c连词取英语连词 conjunction的第1个字母。
    dg 副语素副词性语素副词代码为 d,语素代码g前面置以D。 d 副词 取 adverb的第2个字母,因其第1个字母已用于形容词。
    e叹词取英语叹词 exclamation的第1个字母。
    f方位词取汉字“方”
    g语素绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。
    h前接成分取英语 head的第1个字母。
    i成语取英语成语 idiom的第1个字母。
    j简称略语取汉字“简”的声母。
    k后接成分
    l习用语习用语尚未成为成语,有点“临时性”,取“临”的声母。
    m数词取英语 numeral的第3个字母,n,u已有他用。
    Ng名语素名词性语素。名词代码为 n,语素代码g前面置以N。 n 名词 取英语名词 noun的第1个字母。
    nr人名名词代码 n和“人(ren)”的声母并在一起。
    ns地名名词代码 n和处所词代码s并在一起。
    nt机构团体“团”的声母为 t,名词代码n和t并在一起。
    nz其他专名“专”的声母的第 1个字母为z,名词代码n和z并在一起。
    o拟声词取英语拟声词 onomatopoeia的第1个字母。
    p介词取英语介词 prepositional的第1个字母。
    q量词取英语 quantity的第1个字母。
    r代词取英语代词 pronoun的第2个字母,因p已用于介词。
    s处所词取英语 space的第1个字母。
    tg时语素时间词性语素。时间词代码为 t,在语素的代码g前面置以T。 t 时间词 取英语 time的第1个字母。
    u助词取英语助词 auxiliary
    vg动语素动词性语素。动词代码为 v。在语素的代码g前面置以V。 v 动词 取英语动词 verb的第一个字母。
    vd副动词直接作状语的动词。动词和副词的代码并在一起。
    vn名动词指具有名词功能的动词。动词和名词的代码并在一起。
    w标点符号
    x非语素字非语素字只是一个符号,字母 x通常用于代表未知数、符号。
    y语气词取汉字“语”的声母。
    z状态词取汉字“状”的声母的前一个字母。
    un未知词不可识别词及用户自定义词组。取英文Unkonwn首两个字母。(非北大标准,CSW分词中定义)
    import jieba.posseg as pseg
    
    with open('E:/Python_code/blog/通信行业规划.txt',encoding="utf-8") as f:
        text = f.read()
    
    wordit = pseg.cut(text)   #自定义分词,返回一个可迭代类型
    count_flag = {}
    for word ,flag in wordit:
        if flag not in count_flag.keys():  #如果没有flag键,就添加flag键,对应的值为一个空列表,每个键代表一种词性
            count_flag[flag] = []
        elif len(word)>1:    #有对应的词性键,就将词加入到键对应的列表中,跳过长度为1的词
            count_flag[flag].append(word)
    
    print(count_flag)
    
    展开全文
  • 文本cet6read.txt QuestionS 61 to 65 are based on the following passage. Many bankers may be worried about whether some fancy product dreamed up might yetlead to a visit from the police....

    文本cet6read.txt

    QuestionS 61 to 65 are based on the following passage.
    Many bankers may be worried about whether some fancy product dreamed up might yetlead to a visit from the police. Daniel Dantas, a financier, who has profited by operating at themiddle place where business and government meet in Brazil, has been opening the door to findthe police outside for much of the
      past decade. On December 2nd he was convicted of a less sophisticated crime: trying tobribe police officers. Mr. Dantas, who has acquired great notoriety in Brazil, was fined $ 5million and sentenced to ten years in prison. He has appealed against his conviction.
      The charge stems from a police investigation into money-laundering known asOperation Satiagraha. It grew out of a previous investigation into Mr. Dantas’ use of Kroll, asecurity consultancy, to watch over his business partners. During this investigation the policeseized a computer from Opportunity, Mr. Dantas’s investment bank, which contained datafrom the mid-1990s to 2004 and apparently showed suspicious movements of money.
      The judge found that Mr. Dantas tried to pay bribes, via two go-betweens, to keep hisname out of the Satiagraha investigation. A man fitted with a bugging device was offered $1million in cash, with another $ 4 million to follow, the police say. They claim that Mr. Dantas’strick involved money travelling to the Cayman Islands, then via the British Virgin Islands to anaccount in Ireland, on to Delaware, and then re-entering Brazil as foreign investment.
      For Mr. Dantas his crime is a steep fall from grace. A man who sleeps little and socializesless, he is a vegetarian and self-made billionaire, a gifted financier who has serially fallen outwith his business partners. He once controlled a large telecoms firm, acting for investors whoincluded Citigroup. He says he is the victim of a conspiracy mounted by the government.
      It is Mr. Dantas’ supposed influence in government circles that has added to his notoriety.During the1990s, when many state-owned businesses were privatized, Mr. Dantas positionedhimself as the man with the needed expertise and contacts. He enjoyed easy access to thegovernment of President Femando Henrique Cardoso, including meetings with the presidenthimself. That influence carried through into the government of President Luiz Inacio Lula daSilva. Mr. Dantas is alleged to have been one of the funders of a cash-for-votes scheme inBrazil’s  Congress mounted by leaders of Lula’s Workers’ Party in 2003-2004. Many of thosewho have had dealings with Mr. Dantas insist that these have been legitimate and conducted ingood faith. They include Luiz Eduardo Greenhalgh, a lawyer and PT politician, whom he hired asa consultant.
      61. What kind of crime was Daniel Dantas convicted of according to the passage?
      A.A crime quite experienced and tactful.
      B.A crime by operating at the middle place.
      C.A crime attempting to temper police to work for him.
      D.A crime in money-laundering.
      62. How did the police convict the charge against Mr. Dantas according to the passage?
      A.They seized a computer by chance and got some evidence.
      B.They directly conducted a probe into him.
      C.They found he tempered police officers to delete his name.
      D.They questioned him and made sure the process of money-laundering.
      63. Mr. Dantas’ relationship with his business partners is that __
      A.he usually gets along well with them
      B.he does not have a good relationship with them
      C.he totally trusts all of his business partners
      D.he believes that they make him a victim
      64. What can we learn about Mr. Dantas according to the passage?
      A.He is a gifted financier and less socialized person.
      B.He always enjoys notorious fame in economic and political field.
      C.He is a vegetarian who likes making food by himself.
      D.His tragedy was mounted by the government conspiracy.
      65. What kind of relationship is reflected between Mr. Dantas and government in thepassage?
      A.His influence on government may reduce his notoriety and crime.
      B.In business privatization, he participated with demanding expertise.
      C.He never meets the President himself.
      D.People knowing him deem that he was sheer evil.

    import re
    
    # 读取txt文件
    with open("cet6read.txt","r",encoding='UTF-8') as f:
        corpus = f.read().strip("\n")
    f.close()
    
    # 标点替换为空格、大写字母转换为小写字母、将corpus中每个词拆分成list内元素
    corpus = re.sub('[^A-Za-z0-9 ]+', '', corpus).replace("_", '')
    corpus = corpus.strip('').lower()
    corpus = corpus.split()
    
    # 创建字典、key为单词,value为出现次数
    word_fre_dict = dict()
    for item in corpus:
        if item not in word_fre_dict:
            word_fre_dict[item]=0
        word_fre_dict[item]+=1
    print(word_fre_dict)
    
    # 按照value进行降序排序
    word_fre_dict = sorted(word_fre_dict.items(), key=lambda x: x[1], reverse=True)
    print(word_fre_dict)
    
    

    展开全文
  • python分词词频统计

    万次阅读 2019-03-04 17:31:51
    Python大数据:jieba分词词频统计 黑冰中国关注 0.12018.03.21 11:39*字数 1717阅读 7553评论 6喜欢 45赞赏 1 实验目的 学习如何读取一个文件 学习如何使用DataFrame 学习jieba中文分词组件及停用词处理原理...
  • res_dict = {} #进行词频统计 for i in vlist: res_dict[i] = res_dict.get(i,0) + 1 res_list = list(res_dict.items()) #降序排序 res_list.sort(key = lambda x:x[1], reverse = True) fin_res_list = [] #去除...
  • Python jieba 中文分词词频统计

    万次阅读 多人点赞 2017-10-22 01:21:04
    python3 # -*- coding: utf-8 -*- import os, codecs import jieba from collections import Counter def get_words(txt): seg_list = jieba.cut(txt) c = Counter() for x in seg_list: if
  • Python 分词词频统计,寻找公共词
  • python结巴分词以及词频统计实例

    万次阅读 2018-03-20 14:52:18
    # coding=utf-8'''Created on 2018年3月19日@author: chenkai结巴分词支持三种分词模式:精确模式: 试图将句子最精确地切开,适合文本分析;全模式: 把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能...
  • Python 分词统计词频

    2020-11-21 01:07:14
    原博文2020-07-28 20:49 −#先对建立汇总到txt文件中,然后进行分词,读到另外一个txt 文件中import matplotlibimport matplotlib.pyplot as plt #数据可视化import jieba #词语切割import wordcloud #分词from ...
  • Python——jieba分词统计词频

    千次阅读 2019-04-26 13:07:02
    3、利用jieba对评论内容进行分词,并统计词频; 4、将结果保存为csv文件。 注:两个关键点: 分词:jieba.cut();词频:Counter(data) (利用collections包的Counter进行词频统计) # ...
  • 英文使用空格来分开每个单词的,而中文单独一个汉字跟词有时候完全不是同个含义,因此,中文分词相比英文分词难度高很多。分词主要用于NLP 自然语言处理(Natural Language Processing),使用场景有:搜索优化,...
  • 话说近两年大数据确实火了,带给我们最直接的视觉感受就是利用...核心技术就是:中文分词词频统计。关于中文分词中文跟英语在分词技术上差别比较多,中文多个字往往可以组成多个词语,而且词语之还可以缩写。例如...
  • 1、英文文本词频统计,并输出出现次数最多的15个单词 txt="'Hooray!It's snowing!It's time to make a snowman.James runs out.He makes a big pile of snow." \ "He puts a big snowball on top.He " \ "adds a ...
  • Python大数据:jieba分词词频统计

    千次阅读 2018-03-21 11:39:00
    学习jieba中文分词组件及停用词处理原理 了解Jupyter Notebook 概念 中文分词 在自然语言处理过程中,为了能更好地处理句子,往往需要把句子拆开分成一个一个的词语,这样能更好的分析句子的特性,这个过程叫就叫做...
  • 本文主要从中文文本分词词频统计、词云绘制方面介绍Python中文文本分词的使用。会使用到的中文文本处理包包括:wordcloud,jieba,re(正则表达式),collections。1 准备工作导入相关的包,读取相关数据。#导入包...
  • 直接上代码 #导入需要的库 from wordcloud import WordCloud import collections import jieba ...#进行文本的初步处理,主要是去除一些不用统计的符号 t = '' x = ',。?、‘’“”;:)(——'
  • 主要介绍了Python英文文章词频统计(14份剑桥真题词频统计),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • /usr/bin/python# -*- coding: UTF-8 -*-#分词统计词频import jiebaimport refrom collections import Countercontent=""filename=r"../data/commentText.txt";result = "result_com.txt"r='[0-9\s+\.\!\/_,$%^*()?;...
  • Python中文词频统计

    千次阅读 2018-03-28 19:46:51
    以下是关于小说的中文词频统计 这里有三个文件,分别为novel.txt、...Python代码统计词频如下: import jieba # jieba中文分词库 # 从文件读入小说 with open('novel.txt', 'r', encoding='UTF-8') as novelFi...
  • python利用字典统计词频的两种方式

    千次阅读 2021-11-20 13:30:22
    python利用字典统计词频的两种方式 1、自带collections库 >>> import collections >>> s = 'collection' >>> collections.Counter(s) Counter({'c': 2, 'o': 2, 'l': 2, 'e': 1, 't': 1,...
  • python-中文分词词频统计

    万次阅读 多人点赞 2019-05-29 15:19:08
    本文主要内容是进行一次中文词频统计。涉及内容包括多种模式下的分词比较和分词词性功能展示。 本次使用的是python的jieba库。该库可在命令提示符下,直接输入pip install jieba进行安装。 Jieba库常用的分词模式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,191
精华内容 2,876
关键字:

python中文分词统计词频