我正在寻找一个库来在Java应用程序中创建标签云,我找到了OpenCloud.
我不想使用Web服务器,OpenCloud将需要输出,不是吗?有没有办法让OpenCloud在Java/Swing面板中工作?我想要一个独立的应用程序的东西.如果这不可能,我还能在哪里寻找这样的API?
在词云中我有重复的单词,我不明白为什么它们不在一起计算,然后显示为一个单词.
from wordcloud import WordCloud
word_string = 'oh oh oh oh oh oh verse wrote book stand title book would life superman thats make feel count privilege love ideal honored know feel see everyday things things say rock baby truth rock love rock rock everything need rock baby rock wanna kiss ya feel ya please ya right wanna touch ya love ya baby night reward ya things rock love rock love rock oh oh oh verse try count ways make …
Run Code Online (Sandbox Code Playgroud) 是否有一个Ruby/Rails库,我可以像Wordle.net一样生成文字云(输出应该是图像文件)?
在上一个问题中,我向社区询问如何计算句子中每个连续两个单词的频率,我得到了一个很好的答案!现在我正在尝试使用包pytagcloud从结果中构建一个词云.
我所遇到的问题是所产生的图片很拥挤,而且文字也在一起扫描.任何想法是否有一个功能来分离单词并使它们可读或如果有任何替代方法在python中这样做.
谢谢!
我的代码是吼叫.这是我用于测试的文本的链接我尝试使用较少数量的单词组合,但这并没有改变图片中文本的拥挤度.
我还添加了一些功能,如玩"布局"和"大小"和"fontname ='龙虾'和fontzoom = 1",但没有一个给出最佳结果,这是一个干净的词云图片,其中的单词不拥挤.
import operator
import urllib2
from roundup.backends.indexer_common import STOPWORDS
import requests, collections, bs4
Data = "TEXT FROM The link above- TEXT file"
two_words = [' '.join(ws) for ws in zip(Data, Data[1:])]
wordscount = {w:f for w, f in Counter(two_words).most_common() if f > 12}
sorted_wordscount = sorted(wordscount.iteritems(), key=operator.itemgetter(1))
print sorted_wordscount;
from pytagcloud import create_tag_image, create_html_data, make_tags, LAYOUT_HORIZONTAL, LAYOUTS, LAYOUT_MIX, LAYOUT_VERTICAL, LAYOUT_MOST_HORIZONTAL, LAYOUT_MOST_VERTICAL
from pytagcloud.colors import COLOR_SCHEMES
from pytagcloud.lang.counter import get_tag_counts …
Run Code Online (Sandbox Code Playgroud) 我使用包"wordcloud"在R中创建了一个wordcloud.
但它正在以任意随机的形状绘制wordcloud.我希望wordcloud呈圆形或椭圆形.
是否有任何设施由R创建不同形状的wordcloud?
我使用Jason Davies的wordcloud库来获取d3(https://github.com/jasondavies/d3-cloud),我的问题是云中的单词重叠.
我知道在堆栈溢出(和其他站点)上已经有关于这个问题的问题,但在我的情况下这些都没有帮助.
在下面的示例中,我使用了Jason Davies网站上的示例云,并且只改变了一些内容:
这是我的代码:
<!DOCTYPE html>
<meta charset="utf-8">
<body>
<script src="d3.js"></script>
<script src="d3.layout.cloud.js"></script>
<script>
d3.tsv("testdata.txt",
function(error, data) {
var fill = d3.scale.category20();
d3.layout.cloud().size([300, 300])
.words(data)
.padding(1)
.rotate(function(d) { return 0; })
// .font("Impact")
.fontSize(function(d) { return d.size; })
.on("end", draw)
.start();
function draw(words) {
d3.select("body").append("svg")
.attr("width", 300)
.attr("height", 300)
.append("g")
.attr("transform", "translate(150,150)")
.selectAll("text")
.data(words)
.enter().append("text")
.style("font-size", function(d) { return d.size + "px"; })
// .style("font-family", "Impact")
.style("fill", function(d, i) { return fill(i); }) …
Run Code Online (Sandbox Code Playgroud) 我试图从一个短语列表中创建一个词云,其中许多是重复的,而不是单个词.我的数据看起来像这样,我的数据框的一列是短语列表.
df$names <- c("John", "John", "Joseph A", "Mary A", "Mary A", "Paul H C", "Paul H C")
Run Code Online (Sandbox Code Playgroud)
我想制作一个词云,其中所有这些名称都被视为显示频率的单个短语,而不是构成它们的单词.我一直在使用的代码如下:
df.corpus <- Corpus(DataframeSource(data.frame(df$names)))
df.corpus <- tm_map(client.corpus, function(x) removeWords(x, stopwords("english")))
#turning that corpus into a tDM
tdm <- TermDocumentMatrix(df.corpus)
m <- as.matrix(tdm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
pal <- brewer.pal(9, "BuGn")
pal <- pal[-(1:2)]
#making a worcloud
png("wordcloud.png", width=1280,height=800)
wordcloud(d$word,d$freq, scale=c(8,.3),min.freq=2,max.words=100, random.order=T, rot.per=.15, colors="black", vfont=c("sans serif","plain"))
dev.off()
Run Code Online (Sandbox Code Playgroud)
这会创建一个单词云,但它是每个组成单词,而不是短语.所以,我看到"A"的相对频率."H","John"等而不是"Joseph A","Mary A"等的相对频率,这就是我想要的.
我确信修复并不复杂,但我无法理解!我将不胜感激任何帮助.
我使用twitter API来产生情绪.我正在尝试根据推文生成一个词云.
这是我生成wordcloud的代码
wordcloud(clean.tweets, random.order=F,max.words=80, col=rainbow(50), scale=c(3.5,1))
Run Code Online (Sandbox Code Playgroud)
结果如下:
我也试过这个:
pal <- brewer.pal(8,"Dark2")
wordcloud(clean.tweets,min.freq = 125,max.words = Inf,random.order = TRUE,colors = pal)
Run Code Online (Sandbox Code Playgroud)
结果如下:
我错过了什么吗?
这就是我收到和清理推文的方式:
#downloading tweets
tweets <- searchTwitter("#hanshtag",n = 5000, lang = "en",resultType = "recent")
# removing re tweets
no_retweets <- strip_retweets(tweets , strip_manual = TRUE)
#converts to data frame
df <- do.call("rbind", lapply(no_retweets , as.data.frame))
#remove odd characters
df$text <- sapply(df$text,function(row) iconv(row, "latin1", "ASCII", sub="")) #remove emoticon
df$text = gsub("(f|ht)tp(s?)://(.*)[.][a-z]+", "", df$text) #remove URL
sample <- df$text
# …
Run Code Online (Sandbox Code Playgroud) 我有以下代码用于绘制文字云,并得到后续错误.
wordcloud(dm$word, dm$freq, scale=c(8,.2),min.freq=2,
+ max.words=Inf, random.order=FALSE, rot.per=.15, colors=rainbow
>Warning message:
In wordcloud(dm$word, dm$freq, scale = c(8, 0.2), min.freq = 2,:health insurance could not be fit on page. It will not be plotted. Unable to view plot.
Run Code Online (Sandbox Code Playgroud)
我不明白为什么会这样.请帮忙.
我想创建一个词云。当我的字符串是英文时,一切正常:
from wordcloud import WordCloud
from matplotlib import pyplot as plt
text="""Softrock 40 - close to the 6 MHz that the P6D requires (6.062 according) - https://groups.yahoo.com/neo/groups/softrock40/conversations/messages
I want the USB model that has a controllable (not fixed) central frequency."""
wordcloud = WordCloud().generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是当我在希伯来语中做同样的事情时,它没有检测到字体,我只得到空的矩形:
text="""?????? ?? ???? ????? ?????, ????? ???? ?????? ??????? ?? ??????? ???? ???? ????? ???? ????? ???????? ????? ????? ???? ????"""
wordcloud = WordCloud().generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
word-cloud ×10
r ×4
python ×2
algorithm ×1
api ×1
d3.js ×1
java ×1
javascript ×1
overlap ×1
pytagcloud ×1
python-2.7 ×1
ruby ×1
sttwitterapi ×1
swing ×1
tag-cloud ×1
tags ×1
text ×1
word-count ×1