从创建R中的语料库中的单词子集,应答者可以轻松地将term-document matrix
词汇转换为词云.
python库是否有一个类似的功能,它将原始文本文件或NLTK
语料库或Gensim
Mmcorpus带入词云?
结果看起来有点像这样:
我正在使用带有一些txt文件的文字云.如果我想1)增加分辨率和2)删除空边框,我该如何更改此示例.
#!/usr/bin/env python2
"""
Minimal Example
===============
Generating a square wordcloud from the US constitution using default arguments.
"""
from os import path
import matplotlib.pyplot as plt
from wordcloud import WordCloud
d = path.dirname(__file__)
# Read the whole text.
text = open(path.join(d, 'constitution.txt')).read()
wordcloud = WordCloud().generate(text)
# Open a plot of the generated image.
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
Run Code Online (Sandbox Code Playgroud) 尝试用 python 构建词云。
# Start with loading all necessary libraries
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud
Run Code Online (Sandbox Code Playgroud)
pandas 导入得很好,尽管比预期的时间要长一些。现在我尝试matplotlib.pyplot
使用 导入sudo pip3 install matplotlib
并收到此错误响应
Collecting matplotlib
Using cached https://files.pythonhosted.org/packages/7c/ec/3d77b10ac3d30590f5431fd2dc59c58d20c020af107b47f8974896afc5c9/matplotlib-3.4.3-cp37-cp37m-manylinux1_x86_64.whl
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (0.10.0)
Requirement already satisfied: numpy>=1.16 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (1.21.2)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (2.8.2)
Requirement already satisfied: pyparsing>=2.2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (2.4.7)
Collecting pillow>=6.2.0 (from matplotlib)
Using cached https://files.pythonhosted.org/packages/7d/2a/2fc11b54e2742db06297f7fa7f420a0e3069fdcf0e4b57dfec33f0b08622/Pillow-8.4.0.tar.gz …
Run Code Online (Sandbox Code Playgroud) 我处理了各种分组变量的文本数据.我正在考虑使用Ian Fellows的wordcloud
包创建一个方法来制作刻面的wordcloud图.我喜欢ggplot2
社交变量的方式.我正在决定如何解决这个问题(刻面的wordcloud情节).
是否有可能使用Fellows的工作作为geom(我从来没有做过geom但是可以学习这是否可行)或ggplot不能很好地发挥作用因为一个是网格而一个是基础(而wordcloud也使用一些C编码)还是其他一些问题?这有多难(我知道这取决于我的能力,但是想要一些球场回答)?请告知使用基本图形是否是解决此问题的更明智的方法.我预见这可以panes
从plotrix
包装中使用,以赋予它ggplot的刻面给出的美感.
也许这是一个愚蠢的概念,考虑到词云的大小以及刻面快速限制可用空间的方式.
我想用R构建一个文字云(我已经使用wordcloud包完成了),然后将特定颜色的颜色设置为某种颜色.目前,该功能的行为是根据频率对颜色词进行着色(这可能很有用),但是单词大小已经这样做,所以我想用颜色来增加其他含义.
关于如何在wordcloud中为特定单词着色的任何想法?(如果在R中有另一个wordcloud函数,我不知道我更愿意去那条路.)
一个模拟的例子和我的尝试(我试图在同一庄园中处理颜色参数我会从绘图函数中定期绘制):
library(wordcloud)
x <- paste(rep("how do keep the two words as one chunk in the word cloud", 3),
collapse = " ")
X <- data.frame(table(strsplit(x, " ")))
COL <- ifelse(X$Var1 %in% c("word", "cloud", "words"), "red", "black")
wordcloud(X$Var1, X$Freq, color=COL)
Run Code Online (Sandbox Code Playgroud)
编辑:我想补充一点,wordcloud的新版本(2010年1月10日;版本2.0)[谢谢Ian Fellows和David Robinson]现在是这个功能以及其他一些非常棒的补充.以下是在wordcloud中完成原始目标的代码:
wordcloud(X$Var1, X$Freq, color=COL, ordered.colors=TRUE, random.color=FALSE)
Run Code Online (Sandbox Code Playgroud) 我正在进行标签可视化,其中标签在不同的力导向布局之间转换.
我几乎没有考虑如何从气泡图转换到节点图表,但我对如何将图表转换为文字云有点困惑.我的困难很大程度上源于我在编写自定义聚类/碰撞检测功能方面缺乏经验.
我将force声明为全局变量,然后在用户单击按钮时停止并启动它们:
var force1 = d3.layout.force()
.size([width, height])
.charge(0)
.gravity(0.02)
.on("tick", ticka);
//layout for node chart
var force2 = d3.layout.force()
.size([width, height])
.charge(-50)
.gravity(0.005)
.linkDistance(120)
.on("tick", tickb);
//layout for bubble chart
var force3 = d3.layout.force()
.size([width, height])
.charge(0)
.gravity(0.02)
.on("tick", tickc);
Run Code Online (Sandbox Code Playgroud)
当调用绘制节点的函数时(因为数据根据滑块值而变化),相关节点/链接函数被添加到强制中.
创建节点数据的代码如下:
nodes = splicedCounts.map(function(d, e) {
var choice;
var i = 0,
r = d[1],
d = { count: d[1],
sentiment: d[2]/d[1],
cluster: i,
radius: radScale(r),
name: d[0],
index: e,
x: Math.cos(i / m * 2 …
Run Code Online (Sandbox Code Playgroud) 我正在使用该react-wordcloud
包,每当容器的大小发生变化时,它就会对词云进行排序以适应当前(70%)的屏幕大小。
我尝试使用包的默认设置,但仍然收到此警告。
import ReactWordcloud from "react-wordcloud";
const options = {
colors: ["#FFF7E5", "#F9D3AB", "#f4cc72", "#ffbe2d", "#ffb100"],
enableTooltip: false,
deterministic: true,
fontFamily: "impact",
fontSizes: [40, 80],
fontStyle: "normal",
fontWeight: "normal",
padding: 2,
rotations: 1,
rotationAngles: [0],
scale: "sqrt",
spiral: "archimedean",
transitionDuration: 1000,
};
return(<div
style={{ width: "100%", height: "100%" }}
>
<ReactWordcloud options={options} words={props.wordCloud} />
</div>)
Run Code Online (Sandbox Code Playgroud) 试图复制这里的例子;
http://onertipaday.blogspot.com/2011/07/word-cloud-in-r.html
需要帮助搞清楚如何增加单词云的绘制区域.更改png("wordcloud_packages.png",width = 1280,height = 800)中的高度和宽度参数只会更改画布的高度和宽度.但绘制的区域仍然很小.
require(XML)
require(tm)
require(wordcloud)
require(RColorBrewer)
u = "http://cran.r-project.org/web/packages/available_packages_by_date.html"
t = readHTMLTable(u)[[1]]
ap.corpus <- Corpus(DataframeSource(data.frame(as.character(t[,3]))))
ap.corpus <- tm_map(ap.corpus, removePunctuation)
ap.corpus <- tm_map(ap.corpus, tolower)
ap.corpus <- tm_map(ap.corpus, function(x) removeWords(x, stopwords("english")))
ap.tdm <- TermDocumentMatrix(ap.corpus)
ap.m <- as.matrix(ap.tdm)
ap.v <- sort(rowSums(ap.m),decreasing=TRUE)
ap.d <- data.frame(word = names(ap.v),freq=ap.v)
table(ap.d$freq)
pal2 <- brewer.pal(8,"Dark2")
png("wordcloud_packages.png", width=1280,height=800)
wordcloud(ap.d$word,ap.d$freq, scale=c(8,.2),min.freq=3,
max.words=Inf, random.order=FALSE, rot.per=.15, colors=pal2)
dev.off()
Run Code Online (Sandbox Code Playgroud) 我有一些工作R代码,从术语 - 文档矩阵生成标签云.
现在我想从许多文档中创建一大堆标记云,并在以后可视化地检查它们.为了知道标签 - 云图片属于哪个文档/语料库,我想为生成的图形添加标题.我怎么做?
也许这很明显,但我仍然是R图形的初学者.
我自己的语料库太大了,无法在此列出,但是这个SO问题的代码(结合代码形成SO用户Andrie的接受答案)可以使用: wordcloud中的空格 我想添加自定义标题和一些更自定义的文本像照片这样
我正在寻找一种可以随着时间的推移可视化文字云变化的工具.
我有一个包含大量条目的数据库,我生成的词云帮助我的团队更好地了解产品的使用方式.
但我意识到,展示趋势如何随时间而变化会更有趣.
word-cloud ×10
r ×4
javascript ×2
python ×2
animation ×1
canvas ×1
corpus ×1
d3.js ×1
force-layout ×1
gensim ×1
ggplot2 ×1
graphics ×1
html ×1
matplotlib ×1
nltk ×1
python-2.7 ×1
reactjs ×1
rendering ×1
svg ×1
tag-cloud ×1
text-mining ×1
tm ×1