C#中使用jieba.NET、WordCloudSharp制作词云图的步骤
词云简介
“词云”由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(rich gordon)于2006年最先使用,是通过形成“关键词云层”或“关键词渲染”,对文本中出现频率较高的“关键词”的视觉上的突出。
网上大部分文章介绍的是使用python的jieba、wordcloud的库生成词云图,本文则介绍在c#中如何使用jieba.net、wordcloudsharp库生成词云图,后者是前者的.net实现。
准备工作
创建一个c#的控制台项目,通过nuget添加引用对jieba.net、wordcloudsharp的引用,使用方法可以参考以下链接:
- jieba.net:https://github.com/anderscui/jieba.net
- wordcloudsharp:https://github.com/ammrage/wordcloudsharp
安装之后,在packages\jieba.net目录下找到resources目录,将整个resources目录拷贝到程序集所在目录,这里面是jieba.net运行所需的词典及其它数据文件。
基本算法
算法主要步骤如下:
- 提取关键词:基于tf-idf算法、textrank算法提取文本的关键词,按权重大小选取部分关键词。
- 统计关键词词频:先将文本分词,统计每个词的词频,再筛选出关键词的词频。
- 生成词云图:根据关键词及其词频信息在蒙版图片的基础上生成词图。
注:本文采用tf-idf算法提取关键词,蒙版图目前只支持黑白图片。
tf-idf(词频-逆文档频率)算法是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
算法实现
使用jiebanet.analyser.tfidfextractor.extracttagswithweight(string text, int count = 20, ienumerable
使用jiebanet.segmenter.common下的counter类统计词频,其实现来自python标准库的counter类(具体接口和实现细节略有不同),代码如下:
使用wordcloudsharp生成词云图,蒙版图必须使用黑白图片,记得手动引用system.drawing,代码如下:
运行测试
以本文为分析文本生成词云图,代码如下:
蒙版图如下:
词云图如下(使用蒙版):
词云图如下(不使用蒙版):
在得到关键词的词频信息后,通过在线工具网站生成词云图片会更加方便一点,如、等。
参考资料
jieba.net是jieba中文分词的.net版本(c#实现)
到此这篇关于c#中使用jieba.net、wordcloudsharp制作词云图的文章就介绍到这了,更多相关c#制作词云图内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!