Skip to content

Instantly share code, notes, and snippets.

@leoricklin
Forked from galleon/gist:5d48e8cec78582b01c0e
Created February 22, 2016 04:23
Show Gist options
  • Save leoricklin/44054f8c232e5b3f7123 to your computer and use it in GitHub Desktop.
Save leoricklin/44054f8c232e5b3f7123 to your computer and use it in GitHub Desktop.
WordCloud
import wordcloud.PolarWordCloud
import wordcloud.CollisionMode
import wordcloud.PolarBlendMode
import wordcloud.bg.CircleBackground
import wordcloud.bg.PixelBoundryBackground
import wordcloud.bg.RectangleBackground
import wordcloud.font.CloudFont
import wordcloud.font.FontWeight
import wordcloud.font.scale.LinearFontScalar
import wordcloud.font.scale.SqrtFontScalar
import wordcloud.nlp.FrequencyAnalizer
import wordcloud.nlp.tokenizer.ChineseWordTokenizer
import wordcloud.palette.ColorPalette
import org.apache.commons.codec.binary.Base64
import java.net.URL
import java.io.ByteArrayOutputStream
import javax.imageio.ImageIO
val frequencyAnalizer = new FrequencyAnalizer()
frequencyAnalizer.setWordFrequencesToReturn(750)
frequencyAnalizer.setMinWordLength(4)
import collection.JavaConverters._
val stopwords = Source.fromURL("https://raw.githubusercontent.com/kennycason/kumo/master/src/test/resources/text/stop_words.txt").getLines().toList.asJava
frequencyAnalizer.setStopWords(stopwords)
val wordFrequencies = frequencyAnalizer.load(new URL("https://raw.githubusercontent.com/kennycason/kumo/master/src/test/resources/text/new_york_positive.txt"))
val wordFrequencies2 = frequencyAnalizer.load(new URL("https://raw.githubusercontent.com/kennycason/kumo/master/src/test/resources/text/new_york_negative.txt"))
val wordCloud = new PolarWordCloud(600, 600, CollisionMode.PIXEL_PERFECT, PolarBlendMode.BLUR)
wordCloud.setPadding(2)
wordCloud.setBackground(new CircleBackground(300))
wordCloud.setFontScalar(new SqrtFontScalar(10, 40))
wordCloud.build(wordFrequencies, wordFrequencies2)
val baos = new ByteArrayOutputStream()
ImageIO.write(wordCloud.getBufferedImage(), "png", baos)
val image = new String(Base64.encodeBase64(baos.toByteArray()))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment