精华内容
下载资源
问答
  • vba 统计Word 字数、页数等信息

    千次阅读 2011-09-19 23:09:37
    方法. 使用.BuiltInDocumentProperties 方法统计 适用于Document对象和Template 对象。返回个 DocumentProperties 集合,该集合代表了指定文档的所有内置的文档属性。 可使用的属性有: 成员名
    方法一. 使用.BuiltInDocumentProperties 方法统计
    
    适用于Document对象和Template 对象。返回一个 DocumentProperties 集合,该集合代表了指定文档的所有内置的文档属性。
    可使用的属性有:
    成员名                                        描述

    wdPropertyAppName              应用程序名.
    wdPropertyAuthor                        作者.
    wdPropertyBytes                         字节数.
    wdPropertyCategory                     类别.
    wdPropertyCharacters                   字符数.
    wdPropertyCharsWSpaces           字符数(计空格).
    wdPropertyComments                  批注.
    wdPropertyCompany                   公司.
    wdPropertyKeywords                   关键词.
    wdPropertyLastAuthor                 上一个作者.
    wdPropertyLines                          行数.
    wdPropertyManager      经理.
    wdPropertyNotes                                注释.
    wdPropertyPages                                   页数.
    wdPropertyParas           段数.
    wdPropertyRevision             修订次数.
    wdPropertySecurity                   安全性.
    wdPropertySubject           主题      .
    wdPropertyTemplate         模板.
    wdPropertyTimeCreated               创建时间   .
    wdPropertyTimeLastPrinted     上次打印时间.
    wdPropertyTimeLastSaved          上次保存时间.
    wdPropertyTitle                       标题.
    wdPropertyVBATotalEdit    编辑时间总计.
    wdPropertyWords                       字数    .

    如要统计一篇活动word文档的字数:ActiveDocument.BuiltInDocumentProperties(wdPropertyWords)

    方法二.使用ComputeStatistics方法统计
       可使用的属性如下:
       成员名                                                描述
    wdStatisticCharacters                         字符数.
    wdStatisticCharactersWithSpaces   字符数(计空格).
    wdStatisticFarEastCharacters 中文字符和朝鲜文.
    wdStatisticLines                               行数.
    wdStatisticPages                                页数.
    wdStatisticParagraphs                 段数.
    wdStatisticWords                                字数          .
    使用如下:
    统计活动文档的字数(包括脚注):
    1.应用于 Document 对象的 ComputeStatistics 方法。
         ActiveDocument. ComputeStatistics(Statistic:=wdStatisticWords, _    IncludeFootnotesAndEndnotes:=True)
    2.应用于 Range 对象的 ComputeStatistics 方法。
       .Range.ComputeStatistics(Statistic:=wdStatisticWords, _    IncludeFootnotesAndEndnotes:=True)
       例:显示 Report.doc 第一段中的字数和字符数。
       Set myRange = Documents("Report.doc").Paragraphs(1).Range wordCount = myRange.ComputeStatistics(Statistic:=wdStatisticWords) charCount = _ myRange.ComputeStatistics(Statistic:=wdStatisticCharacters) MsgBox "The first paragraph contains " & wordCount _ & " words and a total of " & charCount & " characters."

    统计活动文档的字数也可以写成
    ActiveDocument.Range.ComputeStatistics(wdStatisticWords)

    方法三.直接使用Count属性,但这种方法统计不准,可以统计隐藏文本内容。
    使用如下:
       统计段数    ActiveDocument.Paragraphs.Count
       统计字数   ActiveDocument.Words.Count

    方法四. 直接调用word的内建方法Dialogs()
       统计中文字数:
            Dialogs(wdDialogToolsWordCount).Execute
            MsgBox Dialogs(wdDialogToolsWordCount). DBCs
            MsgBox Dialogs(wdDialogToolsWordCount).SBCs
    展开全文
  • # 读取word import docx # 引入python-docx模块,是的你没有看错,名字不一样 fword = docx.Document('盗墓笔记.docx') # 括号内的为文件路径 str1 = '' for para in fword.paragraphs: # 读取word的每一段内容 ...

    首先,在cmd中输入命令行pip install python-docx,下载安装模块python-docx:

    146bd20c2e67

    安装成功的样子

    输入命令行pip install pdfminer3k安装模块:

    146bd20c2e67

    安装pdfminer

    首先我们来看看文件目录:

    146bd20c2e67

    文件目录

    然后开始写读取txt文本的代码:

    def readTxt():

    # 读取txt

    ftxt = open('《盗墓笔记少年篇沙海》.txt') # open里的为文件路径

    x = ftxt.read() # x即为读取的文件内容

    ftxt.close() # 关闭文档流

    return x # 返回读取到的文件内容

    接下来是读取word文本的代码:

    def readWord():

    # 读取word

    import docx # 引入python-docx模块,是的你没有看错,名字不一样

    fword = docx.Document('盗墓笔记.docx') # 括号内的为文件路径

    str1 = ''

    for para in fword.paragraphs: # 读取word的每一段内容

    str1 += para.text #para.text即为该段落的内容

    return str1 # 返回读取到的文件内容

    然后是读取pdf的代码:

    def readPdf():

    # 读取pdf

    from pdfminer.pdfparser import PDFParser, PDFDocument

    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter

    from pdfminer.converter import PDFPageAggregator

    from pdfminer.layout import LTTextBoxHorizontal, LAParams

    from pdfminer.pdfinterp import PDFTextExtractionNotAllowed

    text_path = r'盗墓笔记.pdf'

    fpdf = open(text_path, 'rb')

    parser = PDFParser(fpdf) # 用文件对象创建一个PDF文档分析器

    doc = PDFDocument() # 创建一个PDF文档

    parser.set_document(doc) # 连接分析器与文档对象

    doc.set_parser(parser)

    doc.initialize()

    strs = ''

    if not doc.is_extractable:

    # 检测文档是否提供txt转换,不提供就忽略

    raise PDFTextExtractionNotAllowed

    else:

    pdfMgr = PDFResourceManager() # 创建PDF,资源管理器,来共享资源

    laparams = LAParams() # 创建一个PDF设备对象

    device = PDFPageAggregator(pdfMgr, laparams = laparams)

    interpreter = PDFPageInterpreter(pdfMgr, device) # 创建一个PDF解释其对象

    for page in doc.get_pages():

    interpreter.process_page(page) # doc.get_pages() 获取page列表

    layout = device.get_result() # 接受该页面的LTPage对象

    # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象

    # 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等

    # 想要获取文本就获得对象的text属性,

    for x in layout:

    if (isinstance(x, LTTextBoxHorizontal)):

    strs += x.get_text()

    return strs # 返回读取到的文件内容

    然后使用jieba模块分词(该模块使用命令pip install jieba安装):

    import jieba

    wordList = jieba.lcut(readTxt())

    词频统计的代码:

    def fluAlz(wordList):

    # 词频统计

    wordSet = list(set(wordList))

    fluence = []

    for x in range(len(wordSet)):

    fluence.append([wordSet[x], wordList.count(wordSet[x])])

    fluence = sorted(fluence, key = lambda flu:flu[1], reverse = True)

    return fluence

    最后将结果写入txt文件内:

    fluence = fluAlz(wordList)

    # 将结果写入txt

    fwrite = open('test.txt', 'w')

    fwrite.write(str(fluence))

    fwrite.close()

    展开全文
  • VSCode插件之字数统计、翻译 hello world 初体验 环境条件: npm git 最新版的VS Code(我的是1.32.3,结果测试的时候说我版本太低,就升级到了1.33.0) 根据官网给的链接your-first-extension, 我们需要安装...

    VSCode插件之字数统计、翻译

    demonstration-gif


    hello world 初体验

    环境条件:

    • npm
    • git
    • 最新版的VS Code(我的是1.32.3,结果测试的时候说我版本太低,就升级到了1.33.0)

    根据官网给的链接your-first-extension, 我们需要安装一个代码生成工具,减少重复代码的编写。

    npm install -g yo generator-code
    

    万事俱备只欠东风,接下来试试官网的hello world,首先是把项目结构搭建出来。

    yo code
    

    根据提示,输入自己想做的插件名称,identifier,描述等信息

    # ? What type of extension do you want to create? New Extension (TypeScript)
    # ? What's the name of your extension? HelloWorld
    ### Press <Enter> to choose default for all options below ###
    
    # ? What's the identifier of your extension? helloworld
    # ? What's the description of your extension? LEAVE BLANK
    # ? Enable stricter TypeScript checking in 'tsconfig.json'? Yes
    # ? Setup linting using 'tslint'? Yes
    # ? Initialize a git repository? Yes
    # ? Which package manager to use? npm
    

    然后进入到**./helloworld** 目录,就可以看到目录结构已经出来了。这种级别的 demo 一般都是可以直接跑的。

    • 将**./helloworld**目录放到VS Code中。
    • F5 就会自动进行编译,然后会打开一个Extension Development Host窗口
    • Command+Shift+P 输入Hello World就可以看到效果了。

    自带的特效是输出一个“Hello World” 的**InformationMessage**框。具体可以看:
    hello-world-demonstration

    经过对Hello World的练手,环境搭建,项目目录的搭建基本上就熟悉了,然后就可以着手准备本次的插件开发了。

    cd ../ && rm -rf helloworld/
    

    目标功能:实时字数统计 + 翻译选中文本

    有些东西不适合从零开始,因为太浪费时间了,不如找点现成的,站在别人的肩膀上迭代。

    实时字数统计

    所以我打开VS Code 直接在插件市场输入word count,结果出来了一堆,然后找了一个看起来还不赖的,ycjc868-vscode-word-count, 点进去Repository地址,先看看人家是怎么实现的,感觉可用的关键代码有这么几个:

    // VSCode 底部状态栏
        private _statusBarItem: vscode.StatusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
    // 注册光标改变事件
        vscode.window.onDidChangeTextEditorSelection(this.updateWordCount, this, subscriptions);
    
    // 获取当前编辑器对象
        const editor = vscode.window.activeTextEditor;
    // 获取文本以及将内容展示到状态栏
        const wordCount = this._getWordCount(doc);
        this._statusBarItem.text = `${wordCount} Words`;
        this._statusBarItem.show();
    
    

    翻译选中的文本

    功能已经完成一半了,接下来是实现第二个功能翻译选中文本,之前写过一个系统级别的翻译的工具,基本原理是:

    监听系统剪切板的内容变化,
    调用翻译API完成翻译任务,
    调用系统GUI组件弹出翻译内容。

    能用是能用,就是不太受控制,用的时候开启服务,不用的时候得关掉,要不然疯了一样往外弹提醒。

    本次要做一个VS Code中的翻译,这个场景就蛮适合,最起码不会打扰到自己。思路还是看看别人是咋实现类似的功能的。找到了一个**天气预报**的插件,里面有一段代码如下:

    const config = vscode.workspace.getConfiguration('remind-me') //获取可配置项中的数据
    const appkey = config.hefengAppkey? config.hefengAppkey: 'YOUR_KEY' // 这里放和风天气的KEY
    WebRequest.get(`https://way.jd.com/he/freeweather?city=${encodeURI(cityName)}&appkey=${appkey}`).
               then(reps => {
                   let rep = JSON.parse(reps.body)
                   ...... 
               )
    

    我不会TypeScript,所以使用WebRequest的时候,提示我没有这个类,猜想是需要引入这种脚手架的库,然后搜了一下,找到一个**Web-Request的使用介绍**。

    npm install web-request
    

    然后在**extension.ts**中像引入vscode一样引用一下。

    import * as vscode from 'vscode';
    import * as WebRequest from 'web-request';
    

    有道翻译的API不让免费用了,那就用百度的翻译API(翻译的效果好像也还凑活),锅碗瓢盆都准备好了,现在该淘米了,那就得拿到选中的文本,代码如下:

    let selection = editor.selection
    let text = editor.document.getText(selection)
    

    经过测试发现,代码是间歇性正常,然后我使用**console.log** 打印了下web请求的结果,发现是返回内容解析出错了,猜想是汉字在URL中有编解码的影响,然后会导致出问题。就拿encodeURI对选中的文本加了下处理。

    public _translate(keyword: string): string {
        // 获取选中的文本
        let wcconfig = vscode.workspace.getConfiguration("wordcount");
        let url = wcconfig.transapi ? wcconfig.transapi : "https://fanyi.baidu.com/transapi?from=auto&to=auto&query="
        if(keyword) {
            url = url + encodeURI(keyword)
            WebRequest.get(url).then(resp => {
                let rep = JSON.parse(resp.content);
                console.log(resp.content);
                let transret = rep.data[0].dst;
                this._statusBarItem.text = "[" + keyword + "]:" + transret;
                this._statusBarItem.show();
            });
        }
        return "失败了~~~~(>_<)~~~~"
    }
    

    这样就可以正常工作了,但是看到刚才的那个作者的repository中有对于配置文件的使用,为了减少硬编码,咱也试试呗。在**package.json**中加入下面的配置项。

    "commands": [
        {
            "command": "extension.wordCount",
            "title": "count Words"
        }
    ],
    "configuration":{
        "type": "object",
        "title": "some configuration for translate",
        "properties": {
            "wordcount.transapi": {
                "type": "string",
                "default": "https://fanyi.baidu.com/transapi?from=auto&to=auto&query=",
                "description": "auto translate api from baidu"
            }
        }
    },
    

    拓展代码使用let wcconfig = vscode.workspace.getConfiguration("wordcount");就可以拿到对应的配置值了。

    打包、发布

    东西做出来,肯定得分享,不然不会有进步的。然后还是看看别人怎么弄的,跟着做就好了。找到了一个VSCode插件开发全攻略(十)打包、发布、升级 真的是详细。

    这里我说下我遇到的几个问题。

    README.md 文件修改问题

    ➜  wordcount git:(master) ✗ vsce package
    Executing prepublish script 'npm run vscode:prepublish'...
    
    > wordcount@0.0.1 vscode:prepublish /Users/biao/Code/vscode/wordcount
    > npm run compile
    
    
    > wordcount@0.0.1 compile /Users/biao/Code/vscode/wordcount
    > tsc -p ./
    
     ERROR  Make sure to edit the README.md file before you publish your extension.
    

    解决方法:删掉开头自动生成的文本,写点自己的内容就好了。

    无法打包

    ➜  wordcount git:(master) ✗ vsce package
     ERROR  Missing publisher name. Learn more: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#publishing-extensions
    

    解决思路:missing publisher namepackage.json 中加入publisher信息就好了。

    仓库缺失问题

    ➜  wordcount git:(master) ✗ vsce package
    Executing prepublish script 'npm run vscode:prepublish'...
    
    > wordcount@0.0.1 vscode:prepublish /Users/biao/Code/vscode/wordcount
    > npm run compile
    
    
    > wordcount@0.0.1 compile /Users/biao/Code/vscode/wordcount
    > tsc -p ./
    
     WARNING  A 'repository' field is missing from the 'package.json' manifest file.
    Do you want to continue? [y/N] n
    

    可以看出这里是Warning,所以没有也没关系。如果想上传到GitHub上,开头环境中的git就派上了用场。

    git add .
    git commit -m 'xxxxxx'
    git remote add origin your-git-repository
    git push origin master
    

    publish 失败

    ➜  wordcount git:(master) ✗ vsce puhlish
    Usage: vsce [options] [command]
    
    Options:
      -V, --version                        output the version number
      -h, --help                           output usage information
    
    Commands:
      ls [options]                         Lists all the files that will be published
      package [options]                    Packages an extension
      publish [options] [<version>]        Publishes an extension
      unpublish [options] [<extensionid>]  Unpublishes an extension. Example extension id: microsoft.csharp.
      list <publisher>                     Lists all extensions published by the given publisher
      ls-publishers                        List all known publishers
      create-publisher <publisher>         Creates a new publisher
      delete-publisher <publisher>         Deletes a publisher
      login <publisher>                    Add a publisher to the known publishers list
      logout <publisher>                   Remove a publisher from the known publishers list
      show [options] <extensionid>         Show extension metadata
      search [options] <text>              search extension gallery
      *
    

    跟教程上的不一样,怎么就是不成功。后来想了下发布肯定是要身份信息的,照应刚才的Token信息。所以先将publisher登陆下。

    ➜  wordcount git:(master) ✗ vsce login guoruibiao
    Publisher 'guoruibiao' is already known
    Do you want to overwrite its PAT? [y/N] y
    Personal Access Token for publisher 'guoruibiao': ****************************************************
    
    (node:95091) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
    ➜  wordcount git:(master) ✗ vsce publish
    Executing prepublish script 'npm run vscode:prepublish'...
    
    > wordcount@0.0.1 vscode:prepublish /Users/biao/Code/vscode/wordcount
    > npm run compile
    
    
    > wordcount@0.0.1 compile /Users/biao/Code/vscode/wordcount
    > tsc -p ./
    
    This extension consists of 566 separate files. For performance reasons, you should bundle your extension: https://aka.ms/vscode-bundle-extension
    Publishing guoruibiao.wordcount@0.0.1...
    (node:95103) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
     DONE  Published guoruibiao.wordcount@0.0.1
    Your extension will live at https://marketplace.visualstudio.com/items?itemName=guoruibiao.wordcount (might take a few seconds for it to show up).
    

    Token 的生成按照刚才的链接跟着做就好了,publish通过后会返回一个地址:

    https://marketplace.visualstudio.com/items?itemName=guoruibiao.wordcount

    大概5分钟后就可以访问了。

    分发与安装

    VS Code 插件市场搜索**word count** 找到作者是guoruibiao的那个,点击**install**,完事。
    plugin-market

    展开全文
  • itchat是个开源的微信个人号接口,使用python调用微信从未如此简单。使用不到三十行的代码,你就可以完成个能够处理所有信息的微信机器人。官网文档:http://itchat.readthedocs.io/zh/latest/本文主要讲解...

    最近准备学习微信小程序开发,偶然间看到了python与微信互动的接口itchat,简单学习了下,感觉还挺有意思的,故写了篇基础文章供大家学习。itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。

    官网文档:http://itchat.readthedocs.io/zh/latest/

    本文主要讲解itchat扩展包的入门基础知识,包括:
    1.itchat安装及入门知识
    2.微信好友性别分析
    3.微信自动回复及发送图片
    4.获取微信签名并进行词云分析

    基础性文章,希望对您有所帮助,后面将结合舆情分析、朋友圈等接口进行更一步的讲解。如果文章中存在错误或不足之处,还请海涵~

    参考文章:
    https://zhuanlan.zhihu.com/p/26514576?group_id=839173221667446784
    https://www.cnblogs.com/jmmchina/p/6692149.html

    http://blog.csdn.net/qinyuanpei/article/details/79360703



    一. itchat安装及入门知识


    安装通过 pip install itchat 命令实现,如下图所示:


    安装成功之后通过 import itchat 进行导入。


    下面给出我们第一个简单的代码:
    # -*- coding:utf-8 -*-
    import itchat
    
    # 登录
    itchat.login()
    # 发送消息
    itchat.send(u'你好', 'filehelper')
    

    首先调用itchat.login()函数登录微信,再通过itchat.send(u'你好', 'filehelper')函数发送信息给微信的“文件传输助手(filehelper)”。注意,执行代码过程中会弹出一张二维码图片,我们通过手机扫一扫登录后才能获取我们微信及好友的信息。

      


    输出结果如下图所示,可以看到给自己发送了一个“你好”。



    下面给出另一段代码:

    #-*- coding:utf-8 -*-
    import itchat
    
    # 先登录
    itchat.login()
    
    # 获取好友列表
    friends = itchat.get_friends(update=True)[0:]
    print u"昵称", u"性别", u"省份", u"城市"
    for i in friends[0:]:
        print i["NickName"], i["Sex"], i["Province"], i["City"]
    
    这里最重要的代码是获取好友列表,代码如下:
        friends = itchat.get_friends(update=True)[0:] 

    再通过["NickName"]获取昵称、["Sex"]获取性别、["Province"]获取省份、["City"]获取城市。返回的结果如下所示,其中第一个friends[0]是作者本人,然后性别0表示未填写、1表示男性、2表示女性;省份和城市可以不设置。




    二. 微信好友性别分析


    下面直接给出对微信好友性别分析绘图的代码:

    #-*- coding:utf-8 -*-
    import itchat
    
    #获取好友列表
    itchat.login() #登录
    friends = itchat.get_friends(update=True)[0:]
    
    #初始化计数器
    male = 0
    female = 0
    other = 0
    
    #1男性,2女性,3未设定性别
    for i in friends[1:]: #列表里第一位是自己,所以从"自己"之后开始计算
        sex = i["Sex"]
        if sex == 1:
            male += 1
        elif sex == 2:
            female += 1
        else:
            other += 1
    #计算比例
    total = len(friends[1:])
    print u"男性人数:", male
    print u"女性人数:", female
    print u"总人数:", total
    a = (float(male) / total * 100)
    b = (float(female) / total * 100)
    c = (float(other) / total * 100)
    print u"男性朋友:%.2f%%" % a
    print u"女性朋友:%.2f%%" % b
    print u"其他朋友:%.2f%%" % c
    
    #绘制图形
    import matplotlib.pyplot as plt
    labels = ['Male','Female','Unkown']
    colors = ['red','yellowgreen','lightskyblue']
    counts = [a, b, c]
    plt.figure(figsize=(8,5), dpi=80)
    plt.axes(aspect=1) 
    plt.pie(counts, #性别统计结果
            labels=labels, #性别展示标签
            colors=colors, #饼图区域配色
            labeldistance = 1.1, #标签距离圆点距离
            autopct = '%3.1f%%', #饼图区域文本格式
            shadow = False, #饼图是否显示阴影
            startangle = 90, #饼图起始角度
            pctdistance = 0.6 #饼图区域文本距离圆点距离
    )
    plt.legend(loc='upper right',)
    plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
    plt.title(u'微信好友性别组成')
    plt.show()
    

    这段代码获取好友列表后,从第二个好友开始统计性别,即friends[1:],因为第一个是作者本人,然后通过循环计算未设置性别0、男性1和女性2,最后通过Matplotlib库绘制饼状图。如下所示,发现作者男性朋友66.91%,女性朋友26.98%。




    三. 微信自动回复及发送图片


    微信发送信息调用send()函数实现,下面是发送文字信息、文件、图片和视频。

    # coding-utf-8
    import itchat
    itchat.login()
    itchat.send("Hello World!", 'filehelper')
    itchat.send("@fil@%s" % 'test.text')
    itchat.send("@img@%s" % 'img.jpg', 'filehelper')
    itchat.send("@vid@%s" % 'test.mkv')
    比如给我的微信文件助手发了个“Hello World”和一张图片。


    如果想发送信息给指定好友,则核心代码如下:

    #想给谁发信息,先查找到这个朋友
    users = itchat.search_friends(name=u'通讯录备注名')
    #找到UserName
    userName = users[0]['UserName']
    #然后给他发消息
    itchat.send('hello',toUserName = userName)

    下面这部分代码是自动回复微信信息,同时在文件传输助手也同步发送信息。
    #coding=utf8
    import itchat
    import time
    
    # 自动回复
    # 封装好的装饰器,当接收到的消息是Text,即文字消息
    @itchat.msg_register('Text')
    def text_reply(msg):
        if not msg['FromUserName'] == myUserName: # 当消息不是由自己发出的时候
            # 发送一条提示给文件助手
            itchat.send_msg(u"[%s]收到好友@%s 的信息:%s\n" %
                            (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg['CreateTime'])),
                             msg['User']['NickName'],
                             msg['Text']), 'filehelper')
            # 回复给好友
            return u'[自动回复]您好,我现在有事不在,一会再和您联系。\n已经收到您的的信息:%s\n' % (msg['Text'])
    
    if __name__ == '__main__':
        itchat.auto_login()
        myUserName = itchat.get_friends(update=True)[0]["UserName"]
        itchat.run()
    运行结果如下图所示:

      



    四. 获取微信签名并进行词云分析


    最后给出获取微信好友的签名的词云分析,其friends[i]["Signature"]获取签名,最后调用jieba分词最后进行WordCloud词云分析。

    # coding:utf-8
    import itchat
    import re
    
    itchat.login()
    friends = itchat.get_friends(update=True)[0:]
    tList = []
    for i in friends:
        signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")
        rep = re.compile("1f\d.+")
        signature = rep.sub("", signature)
        tList.append(signature)
    
    # 拼接字符串
    text = "".join(tList)
    
    # jieba分词
    import jieba
    wordlist_jieba = jieba.cut(text, cut_all=True)
    wl_space_split = " ".join(wordlist_jieba)
    
    # wordcloud词云
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator   
    import PIL.Image as Image
    from scipy.misc import imread
    from os import path
      
    # 读取mask/color图片  
    d = path.dirname(__file__)  
    nana_coloring = imread(path.join(d, "test.png"))  
    
    # 对分词后的文本生成词云  
    my_wordcloud = WordCloud(background_color = 'white',      # 设置背景颜色  
                                mask = nana_coloring,          # 设置背景图片  
                                max_words = 2000,              # 设置最大现实的字数  
                                stopwords = STOPWORDS,         # 设置停用词  
                                max_font_size = 50,            # 设置字体最大值  
                                random_state = 30,             # 设置有多少种随机生成状态,即有多少种配色方案  
                                )
    # generate word cloud   
    my_wordcloud.generate(wl_space_split)  
      
    # create coloring from image    
    image_colors = ImageColorGenerator(nana_coloring)  
      
    # recolor wordcloud and show    
    my_wordcloud.recolor(color_func=image_colors)  
      
    plt.imshow(my_wordcloud)    # 显示词云图  
    plt.axis("off")             # 是否显示x轴、y轴下标  
    plt.show()

    输出结果如下图所示,注意这里作者设置了图片罩,生成的图形和那个类似,发现“个人”、“世界”、“生活”、“梦想”等关键词挺多的。



    (By:Eastmount 2018-03-19 晚上11点  http://blog.csdn.net/eastmount/ )


    展开全文
  • // 得到全部内容的字数 wordNum += content.toString().trim().length(); resourcesWord.setContent(content.toString()); resourcesWord.setParagNum(paragNum); resourcesWord.setSentenceNum...
  • hexo next主题添加字数统计(2018)

    千次阅读 2018-11-05 16:49:04
    最近有几个小伙伴问我博客的字数统计怎么实现的,怎么网上的教程不管用啊?开始我搭建博客的时候也遇到了类似的问题,按照github上wordcount的readme操作后,并没有什么用,我打开post相关配置文件并没有发现发现...
  • 很多一段时间都没什么好用的统计字数工具,一次偶然的机会,发现了一个叫算筹字数统计的工具,诶,完全满足了我的需求。 不但可以统计汉字个数、单词个数、标点符号个数,还可以统计不同字出现的次数-统计出现最多...
  • 【背景】 用户经常要求某个字段要求限制填写多少字,可是js通过value.length取出来的往往跟实际字数相差很多。经常有用户抱怨,明明没写那么多字,可是系统却...于是,我研究了word计算字数的规则,写了一段这样程序。
  • ms word插件安装失败Have you ever been writing a document for your editor or boss and they request that you insert a word count? Today we take a look at how to do it using Field Codes in Word 2010. 您...
  • 这个时候,大部分人会打开Word,进行字数统计。这样效率过低,且无法模块化移植。(而且macOS启动Microsoft Word挺慢的????……) 本次给大家介绍,如何使用JavaScrip前端统计输入内容所包含的字符和字数。稍微美化...
  • 统计一遍中文文章的字数(不包括标点符号,考虑英文/数字序列(不拆分成当个字母或数字) """ import re import jieba c = "\\" text = """然而,在参加string聚会或者出席典礼时,很多人会抱怨自己挑不出一件拿得...
  • 统计单词出现的字数

    2018-07-29 21:46:00
    word_counts = Counter(str1) # 出现频率最高的3个单词 top_three = word_counts.most_common(3) print(top_three) # Outputs [('eyes', 8), ('the', 5), ('look', 4)]   转载于:...
  • yelee主题添加字数统计 安装插件 安装hexo-wordcount npm i -save hexo-wordcount 文件配置 在theme\yelee\layout\_partial\post下创建word.ejs文件: <div style="margin-top:10px 0;margin-bottom:30px;"> ...
  • 使用Word Counter Mac版,您可以查看您的写作统计,如字数字数,句数,行数,数等。 WordCounter for mac下载软件特色 提供有关您作为作家的工作效率的即时反馈。 通过显示您的每日产量来鼓励您。 让您清
  • 1.读取文件 2.得到文件大小 3.将文件所有内容存入str数组当中 4.将所有的字符串分割成单词存到word结构体中,此时length++ 5.将word结构体的count循环置为1 6.比较单词 count ++ 7.进行排序 打印
  • 如何确定latex文档字数

    千次阅读 2018-01-14 21:43:00
    一段时间写了一篇文章,投给了Journal of Vibration and Control。现在JVC已经对投稿的字数进行限制了,记得是不能超过5000字。我一直使用latex撰写手稿,上传到投稿系统后,系统会自动生成PDF文件,用于审稿。 ...
  • linux命令大全

    千次阅读 2015-12-24 08:44:14
    在Red Hat Linux中,adduser指令则是useradd指令的符号连接,两者实际上是同个指令。 chfn(change finger information) 功能说明: 改变finger指令显示的信息。 语 法: chfn [-f <真实姓名>][-h...
  • 本文实例讲述了Python统计纯文本文件中英文单词出现个数的方法。分享给大家供大家参考,具体如下: 第版: 效率低 # -*- coding:utf-8 -*- #!python3 path = 'test.txt' with open(path,encoding='utf-8',newline=...
  • 1.安装 hexo-wordcount 在博客目录下打开Git Bash Here 输入命令 ...在theme\yilia\layout\_partial\post下创建word.ejs文件: <div style="margin-top:10px 0;margin-bottom:20px;"> <spa...
  • // 得到全部内容的字数 wordNum += content.toString().trim().length(); resourcesWord.setContent(content.toString()); resourcesWord.setParagNum(paragNum); resourcesWord.setSentenceNum...
  •  System.out.println("字数: "+count);  return map;  }  public static void main(String[] args) {  File file=new File("D:\\dou.txt");  WordCount wc=new WordCount();  System.out....
  • 因为想把一段文字分词,所以,需要明确一定的词语关系。 在网上随便下载了一篇中文小说。随便的txt小说,就1mb多。要数数这1mb多的中文到底有多少字,多少分词,这些分词的词性是什么样的。 这里是思路 1)先把...
  • Linux下采用C语言实现文本单词计数(word count)并统计运行时间 由于WHUT的云计算课程实验要求,采用C lang实现word count功能。不得不说,用C语言处理字符串,真有种想砸了电脑的冲动。。。 下面是源码: #...
  • 山东专升本计算机Word基础(二)

    多人点赞 2021-05-25 10:36:24
    山东专升本Word基础(二). 文档视图二. 文档编辑三. 选定文本四. 查找与替换五. 文档校对 . 文档视图 页面视图:默认视图,所见即所得,包括页眉、页脚等元素,是最接近打印效果的视图 阅读版式视图:以图书的...
  • RDD是spark的核心和重要组成,spark内部提供了丰富的...这次将会分享一些关于RDD的概念和理论以及经典的字数统计案例 RDD 概念 RDD(Resilient Distributed Dateset),弹性分布式数据集。 RDD的五大特...
  • 基本思路:用hashmap存储key值为单词,value为单词出现的频率。 hashmap存储对单词的遍历 map的遍历存储在set中 ...对wordEntity实现comparable接口重写compareTo()和...word.compareTo(O.getKey()):-cmp); } }
  • 代码功能: 能够实现统计所给任意段落单词的总数和排序频率较高词汇的功能。...// 字数统计_1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio....
  • wc(Word Count)统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。 命令参数: -c...
  • 顺便给个英文文章作为测试哈:(136单词,2) The Old Cat An old woman had a cat. The cat was very old; she could not run quickly, and she could not bite, because she was so old. One day the old cat ...
  • Word学习笔记分享

    千次阅读 多人点赞 2019-02-22 13:57:10
    章、Word 的常规排版 1-5 文字选择 Ctrl+鼠标选取——多选 Alt+鼠标选取——框选 1-11 文字效果 为文字添加填充与边框 1-13 字体其他效果 为字体添加着重号、删除线、上下标等效果 Ctrl+D ——打开字体选项栏 1-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,416
精华内容 966
关键字:

word统计一段字数