网上随便找段文字,就以Power BI官网上这段文字为例好了:

想要统计其中的词频,实现如下图的效果:

解法1:使用输入法词库

其中的难点无疑在分词了,中文不像英文可以按空格拆开分词,仅仅单靠Power Query中的功能遇到这种问题好像没法搞,因为它不知道你要按什么规则来拆,不知道哪几个字连起来算一个词。

那我们就得想办法告诉它规则,于是想到了输入法。输入法之所以如此贴心,就是因为有着丰富的词库,我们可以去输入法的设置里找出词库导出来。

我已经把我的输入法词库导出来并上传到网站服务器上,所以如果你找不到词库在哪就直接用我的吧。

let

源 = Excel.CurrentWorkbook(){[Name="源数据"]}[Content],

词库 = Table.FromColumns({List.Buffer(List.Select(Csv.Document(Web.Contents("https://pqfans.com/pq/pinyin/py.txt"),[Delimiter=" "])[Column2],each Text.Length(_)<>1))},{"词"}),

词频 = Table.AddColumn(词库, "词频", each List.Count(Text.PositionOf(源[文本]{0},[词],2))),

排序 = Table.Buffer(Table.Sort(词频,{{"词频", 1}})),

筛选 = Table.SelectRows(排序, each ([词频] <> 0))

in

筛选

解法2:使用R语言

以上是笨方法,但是如果在Power BI Desktop中,我们可以使用R.Execute运行R脚本,用jieba包进行分词。

那么首先你得安装R Open,并安装jieba。安装非常简单,首先去官网下载并装好R Open,然后打开并输入如下命令:install.packages("jiebaR")

等待自动安装完成即可。

先看下在R中如何来分词:

library("jiebaR")

wk

words

data.frame(words)

那么在Power BI中也类似,只不过我们想引用PBI内部的文本进行分词,先上代码吧:

let

源="Power BI 是一套商业分析工具,用于在组织中提供见解。可连接数百个数据源、简化数据准备并提供即席分析。生成美观的报表并进行发布,供组织在 Web 和移动设备上使用。每个人都可创建个性化仪表板,获取针对其业务的全方位独特见解。在企业内实现扩展,内置管理和安全性。",

加引号 = """"&Text.Remove(源,"""")&"""",

R脚本 = R.Execute("

library(""jiebaR"")

wk

words

df

"),

分词 = R脚本[Value]{0}

in

分词

为简化过程我直接把文本放在源中,实际上这个文本可以是从本地文件导入,也可以是从网上抓取的等等。

R脚本是以文本形式放在R.Execute函数中,所以我们可以对文本进行拼接,把源中的文本放到R脚本中。

尽管源中的文本已经是text,但是引用的时候还是要在文本的开头和结尾加上一对引号,所以我单独用了一个加引号的步骤便于大家理解。此处前后各4个引号,首尾两个代表引用文本,中间两个是引号的转义,代表一个引号。另外为了避免文本中本身包含引号而引发的错误,再做一个把引号移除的操作,反正我们又不要统计引号。

将数据框赋值给df变量,返回一个两列的table,分别为变量名及数据框内的数据,最后一步深化出[Value]中数据框的数据即可。

这是分词,最关键的一步做完了,剩下的词频统计直接分组就好了。

解法3:调用api

使用了一个名为SCWS的分词api,封装为自定义函数,调用即可。

let

fenci=(word)=>

let

url="http://www.xunsearch.com/scws/api.php",

headers=[#"Content-Type"="application/x-www-form-urlencoded"],

content="respond=json&ignore=yes&data="&word,

request=Table.FromRecords(Json.Document(Web.Contents(url,[Headers=headers,Content=Text.ToBinary(content)]))[words])

in

request,

result=fenci("Power BI 是一套商业分析工具,用于在组织中提供见解。可连接数百个数据源、简化数据准备并提供即席分析。生成美观的报表并进行发布,供组织在 Web 和移动设备上使用。每个人都可创建个性化仪表板,获取针对其业务的全方位独特见解。在企业内实现扩展,内置管理和安全性。")

in

result

附件

词频统计 (135 kB)

统计csv词频_分词词频统计相关推荐

  1. 统计csv词频_中文词频统计

    中文词频统计 1. 下载一长篇中文小说. <倚天屠龙记> 2. 从文件读取待分析文本. 3. 安装并使用jieba进行中文分词. pip install jieba import jieb ...

  2. 统计csv词频_中文词频统计与词云生成

    一.中文词频统计 1. 下载一长篇中文小说. 2. 从文件读取待分析文本. 3. 安装并使用jieba进行中文分词. pip install jieba import jieba jieba.lcut ...

  3. python统计段落单词词频_使用Python统计文件中词频,并且生成词云

    wordcloud Table of Contents 1 怎样使用Python产生词云 from wordcloud import WordCloud import matplotlib.pyplo ...

  4. python统计中文字符_使用 Python 统计中文字符的数量

    使用 Python 统计中文字符的数量 方法一,排除法 假设只有中英文字符: import string def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数' ...

  5. window统计文本字节_在线字数统计工具-统计字符字节汉字数字标点符号-计算word文章字数...

    位 位是信息技术中使用的术语,也称比特(bit).是最小的信息单位.Bit是二进制数字的缩写(BInarydigiT),因为位实在是太小了,用来表示大数目时不方便,所以有了字节(byte),一个在信息 ...

  6. window统计文本字节_在线字数统计工具-统计字符字节汉字数字标点符号-计算word文章字数-使用帮助-字的区别...

    位,字,字节,字长,字符串,字符,字数区别及计算方法? 位 位是信息技术中使用的术语,也称比特(bit).是最小的信息单位.Bit是二进制数字的缩写(BInarydigiT),因为位实在是太小了,用来 ...

  7. python统计中文字数_用 Python 统计字数

    用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一个元组列表,包含出现次数最高的 n 个单词及其次数,即 [( ...

  8. 统计csv词频_基于给定词语列表统计词频

    基于给定词语列表并统计词频,统计结果输出到csv中.有两种实现方法 方法一:常规的统计给定关键词的词频 思路: 第一步,整理好待查询query_words 第二步,新建一个csv文件,并且将query ...

  9. python分词统计词频_-用python找出一篇文章中词频最高的20个单词

    python统计一个大文件中很多小文件里面的词频 #!/usr/bin/env python3.6 from collections import Counter from functools imp ...

最新文章

  1. 美妆视频小红唇如何打开大数据之门
  2. 现代软件工程 结对编程 (I) 三维棋类游戏
  3. Zygote启动分析
  4. 前端代码(移动端app, vue 源代码)打包方法
  5. flink中写入行存储、列存储时设定checkpoint多久时间间隔另存一个新文件
  6. 最常用计算机信息呼唤标准代码,计算机考试题
  7. 北京科技大学计算机作业,北京科技大学计算机题
  8. 李宏毅2020机器学习资料汇总
  9. 编译原理考试知识点总结
  10. 中央网信委印发《“十四五”国家信息化规划》,​网络安全市场进入快速增长期
  11. DOSBox指令全 汇编指令大全 debug
  12. 网易云接口加直链下载vip歌曲
  13. JOB DESCRIPTION
  14. html里如何定位背景图片,Html+Css CSS中背景图片定位方法
  15. 电脑上的PDF文件太大了怎么办?
  16. android节日接口,节假日api及其整合
  17. 企业级运维——Mysql主从复制(异步、半同步、全同步)
  18. python爬虫爬取公众号_Python selenium爬取微信公众号文章代码详解
  19. 计算机网络应用赛甘肃省,关于举办第三届“甘肃省大学生创新杯计算机运用能力竞赛”预赛的.doc...
  20. 分类常用的神经网络模型,典型神经网络模型包括

热门文章

  1. C语言小白——数组与字符串
  2. Vue项目 报错TypeError [ERR INVALID ARG TYPE]: The “path“ argument must be of type string
  3. 4 error C2220: 警告被视为错误 - 没有生成“object”文件 (..\..\src\caffe\util\math_functions.cpp)
  4. python 函数式编程 库_使用Python的toolz库开始函数式编程的方法
  5. linux frp 内网穿透 nginx反向代理
  6. html5视差滚动效果,视差滚动效果
  7. 修改所有列_哪些数据库是行存储?哪些是列存储?有什么区别?
  8. 为什么仿宋字体打印出楷体_win7缺少仿宋_GB2312和楷体_GB2312字体,造成word字体显示不正常...
  9. Dreamwear如何创建javascript_JavaScript 太糟糕,JVM 有妙招!
  10. go get如何删除_Go 每日一库之 xorm