You are on page 1of 10

33

More

Next Blog

Create Blog

"A big computer, a complex algorithm and a long time does not equal science." -- Robert Gentleman

mercoled 27 luglio 2011

Word Cloud in R

A word cloud (or tag cloud) can be an handy tool when you need to highlight the most
commonly cited words in a text using a quick visualization. Of course, you can use one
of the several on-line services, such as wordle or tagxedo , very feature rich and with a
nice GUI. Being an R enthusiast, I always wanted to produce this kind of images within
R and now, thanks to the recently released Ian Fellows' wordcloud package, finally I
can!
In order to test the package I retrieved the titles of the XKCD web comics included in
my RXKCD package and produced a word cloud based on the titles' word frequencies
calculated using the powerful tm package for text mining (I know, it is like killing a fly
with a bazooka!).

Cerca nel blog

library(RXKCD)
library(tm)
library(wordcloud)
library(RColorBrewer)
path <- system.file("xkcd", package = "RXKCD")
datafiles <- list.files(path)
xkcd.df <- read.csv(file.path(path, datafiles))
xkcd.corpus <- Corpus(DataframeSource(data.frame(xkcd.df[, 3])))
xkcd.corpus <- tm_map(xkcd.corpus, removePunctuation)
xkcd.corpus <- tm_map(xkcd.corpus, content_transformer(tolower))
xkcd.corpus <- tm_map(xkcd.corpus, function(x) removeWords(x, stopwords("e
nglish")))
tdm <- TermDocumentMatrix(xkcd.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)]
png("wordcloud.png", width=1280,height=800)
wordcloud(d$word,d$freq, scale=c(8,.3),min.freq=2,max.words=100, random.or
der=T, rot.per=.15, colors=pal, vfont=c("sans serif","plain"))
dev.off()

RWeather: Access Weather Forecast


from R.

Cerca

Software

RXKCD: display your favorite XKCD


comic strip directly from R.
SynergizeR: Interface to The
Synergizer service for translating
between sets of biological identifiers.

RColombos: Interface to Colombos


Compendia using the exposed REST
API.
ShinyVolcanoPlot: Basic Volcano plot
shiny app for visualizing lists of DE
genes
Etichette

administration (1) advanced (2) API (1)

array (2) axis (6) balloonplot (1) barplot

(5) basic (5) batch (1) Bioconductor (1)


book (2) boxplot (1) chart (2) Classification

colors (5)
contributed (4)

(1) clear (2) clustering (2)


comics (1) comparing (2)

converting
density

(2)

(3)

coordinates

descriptive

(1)

curl

statistics

(1)

(2)

distance (2) distribution (1) environment

(3) FAQ (2) file management (1) filling (1)


format

Google

(1)

(3)

function
grep

(1)

(6)

ggplot2

hello

world

(3)
(1)

histograms (3) install (4) intersection (1)


italiano (1) knitr (1) knn (1) latex (2) list (1)

mac os x (3) maps (1) math (1) matrix (6)

microarray (1) NA (2) news (2) ordering (1)


outliers

(1)

output

(1)

overlapping

(3)

package (5) parsing (2) performance (1)

plot (27) podcast (1) R_News


(20) R-help (6) range (1) realtime (1)
recipes (1)

replacing

reference (16)
(2)

reproducible

regexp (2)

research

(1)

resource (6) review (2) ROC (2) screen

(1) search (1) sed (1) similarity (1) smooth (1)


sorting

(1)

string

(3)

substitute

(1)

superimpose (1) survey (1) sweave (2) table


(1) tag cloud (1)

text filtering (4) text

mining (2) tool (6) Triangular Matrix (1)

unix (8) upgrade (13)

vector (3)

visualization (7) windows (3) workshop


(1) wrapper (3)

Archivio blog

As a second example, inspired by this post from the eKonometrics blog, I created a

2013 (2)
2012 (3)

Sign In

word cloud from the description of 3177 available R packages listed at


http://cran.r-project.org/web/packages.
require(XML)
require(tm)
require(wordcloud)
require(RColorBrewer)
u = "http://cran.r-project.org/web/packages/available_packages_by_date.htm
l"
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, content_transformer(tolower))
ap.corpus <- tm_map(ap.corpus, function(x) removeWords(x, stopwords("engli
sh")))
ap.corpus <- Corpus(VectorSource(ap.corpus))
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()

2011 (9)

dicembre (2)

novembre (1)
ottobre (1)
luglio (2)

Word Cloud in R
R meets XKCD
giugno (1)
aprile (1)

febbraio (1)
2010 (10)
2009 (29)
2008 (12)
2007 (38)
Links

The R Project
Bioconductor
Rseek

devcheatsheet - R
R Inferno

R bloggers

Revolutions R Blog
Statistics Blog

Statistics with R
Statistica con R
Quick-R

Econometrics Beat: Dave Giles'


Blog

The website of Hadley Wickham R, ggplot, etc


R wikibook
crantastic!

FlowingData tutorials

Python for Biojnformatics

Data Mining With Rattle and R


AniWiki

R Graph Gallery

As a third example, thanks to Jim's comment, I take advantage of Duncan Temple


Lang's RNYTimes package to access user-generate content on the NY Times and
produce a wordcloud of 'today' comments on articles.
Caveat: in order to use the RNYTimes package you need a API key from The New York
Times which you can get by registering to the The New York Times Developer Network
(free of charge) from here.
require(XML)
require(tm)
require(wordcloud)
require(RColorBrewer)
install.packages(packageName, repos = "http://www.omegahat.org/R", type =
"source")
require(RNYTimes)
my.key <- "your API key here"
what= paste("by-date", format(Sys.time(), "%Y-%m-%d"),sep="/")
# what="recent"
recent.news <- community(what=what, key=my.key)
pagetree <- htmlTreeParse(recent.news, error=function(...){}, useInternalN
odes = TRUE)
x <- xpathSApply(pagetree, "//*/body", xmlValue)
# do some clean up with regular expressions
x <- unlist(strsplit(x, "\n"))
x <- gsub("\t","",x)
x <- sub("^[[:space:]]*(.*?)[[:space:]]*$", "\\1", x, perl=TRUE)
x <- x[!(x %in% c("", "|"))]
ap.corpus <- Corpus(DataframeSource(data.frame(as.character(x))))
ap.corpus <- tm_map(ap.corpus, removePunctuation)
ap.corpus <- tm_map(ap.corpus, content_transformer(tolower))
ap.corpus <- tm_map(ap.corpus, function(x) removeWords(x, stopwords("engli
sh")))

R Graphical Manual
R Tips / StatsRus

Romain Francois blog


"R" you ready?
Learning R

i'm a chordata! urochordata!


Taiyun Wei blog
SAS and R

Data visualization (in R)

Diego Valle's Food @ Fishing Blog


Rosetta Code

Intelligent Machines

www.dataminingblog.com
Math Blog

e-mb blog

Bioinformatics Zen

Tom Moertel's Weblog


Quantitative Ecology

Rante - Italian R User Group


Twitter Updates

follow me on Twitter

live

r Questions
There is a dateset of timehow
can i group by
month,day ,morning ,afternoon
and sum the records with R? -

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_NewYorkTimes_Community.png", width=1280,height=800)
wordcloud(ap.d$word,ap.d$freq, scale=c(8,.2),min.freq=2,
max.words=Inf, random.order=FALSE, rot.per=.15, colors=pal2)
dev.off()

enter image description here like:


1 2014-03-10 22:54:24 2 201403-10 22:53:16 3 2014-03-10
22:53:01 4 2014-03-10 22:52:38
5 2014-03-10 22:52:00 6 2...
34 minuti fa

R-bloggers
New features in imager 0.20 imager, an R package for image
processing, has been updated to
v0.20 on CRAN. Its a major
upgrade with a lot of new
features, better documentation
and a m...
2 ore fa

Johnny Chung Lee blog


Congrats... - If
there was a mic
drop moment for
Space X, this is
would it.
3 settimane fa

Posted by Paolo Sonego at 16:30

+33 Consiglialo su Google

Labels: package, plot, tag cloud, text filtering, text mining, visualization

56 commenti:
Noam Lpez 30 luglio 2011 06:44

ben fry
This here is a ghost town - This
blog was created in 2008 and
hasnt been actively updated for
several years. For more recent
work, please visit the Fathom
site, where you can see cur...
1 anno fa

TeachStreet

Find online
and local
Statistics
Lessons

Statistics Lessons | Add your site

The post is interesting and I could replicate your second example. But I don't know how
to do it if I have a text in a txt file or a word file. Your example just works with a html
table but very often we have whole texts. I will be very grateful if you can make a world
cloud using a txt file.

FeedBurner FeedCount

Noam

Visitors

Rispondi
Paolo 30 luglio 2011 07:35

Dear Noam,
You can find both the answer to your question and a nice introduction to text mining in R
in the vignette of the tm package:
install.packages("tm")
library("tm")
vignette("tm")
HIH!
Rispondi

Visualizzazioni totali

1046008
Who am I?

Paolo Sonego
Segui

Risposte
Anonimo 20 settembre 2013 01:23

Might be helpful to suggest


install.packages("tm",dependencies=TRUE)
Rispondi

Noam Lpez 31 luglio 2011 17:09

completo

Visualizza il mio profilo

Science, Evolution,
and
Creationism ...

Thank you Paolo, I'm going to read about the tm package. This is my first meet with text
mining bacause I just use R for my classes of statistics.
Noam

Rispondi
Paolo 31 luglio 2011 19:23

You are welcome Noam!


I'm not a text mining expert as well but the tm package seems to provide a collection of

Read this FREE online!


Full Book | PDF Summary |
Podcast

tools that can be useful for solving both basic and more advanced problems in this
interesting field.
Rispondi

cooksappe 3 settembre 2011 15:34


wow *_*
Rispondi

tankjn 21 ottobre 2011 20:57

Very nice. Liked it and probably will use it.


Rispondi

Darwin Correspondence Project

Get Google
Chrome

A faster way to
browse the
web. Stable,
free & installs in
seconds!

Anonimo 30 dicembre 2011 19:24

A great example. However sometime in the past two weeks back from 2011/11/30 the
directory
and
file
was
removed.
So
"http://cran.r-project.org/web/packages/available_packages_by_date.html" is not found
because the "packages" directory is no longer there. How about using another web site
as an example?
Rispondi

Paolo Sonego

30 dicembre 2011 22:42

Thanks for the update! Feel free to suggest a web site of interest as an alternative.
Rispondi

Anonimo 31 dicembre 2011 02:05

Thanks Paolo, this might be impossible but how about any text on a basic news web
page like www.washingtonpost.com. Ignore pictures and pick phrases/sentences based
on commas, periods and breaks "-". We could manually input a target web page and the
example would wordwrap the page.
Thanks, Jim
Rispondi

Paolo Sonego

31 dicembre 2011 09:58

Thanks Jim for your suggestion! I have updated the post in accordance with your advice
(more or less).
Rispondi

deepakagastya 12 febbraio 2012 00:51

how does one increase the plotted area of the word cloud...by increasing the the
dimensions of the png image, I am only getting a bigger image..with most of it being
blank white space, and a small word cloud at the middle of the plot
Rispondi

Paolo Sonego

14 febbraio 2012 08:59

It seems that this problem (bug?) is related to the graphics device driver you decides to
use (pdf, svg, png, etc.). I think that Ian Fellows, the author of the package, could
answer your questions more appropriately than me!
Rispondi

Hamish 22 febbraio 2012 08:14


Hi,

you can add some really nice colors to your word cloud using the Free color brewer color
rules. download their spreadsheet to add the capability into your code. see
colorbrewer2.org
Rispondi

Paolo Sonego

22 febbraio 2012 08:33

Thanks for stepping in. The RColorBrewer package allows users to access the beautiful
and well conceived colorbrewer palettes from R, take a look at it!

Except where otherwise noted,


content on this site is licensed under
a Creative Commons Attribution 3.0
License.

Rispondi
Julian 30 marzo 2012 16:11

This sounds very promising. I didn't know that R let you create this kind of
visualizations. I used wordle in the past, and R for a bioinformatic project at the
University.
Rispondi

ArunD 23 aprile 2012 08:10

Thanks for the post..when i run the second example nothing happens...just checking if
the png wordcloud files should be in any particular folder
Thanks
Arun David
Rispondi

Paolo Sonego

23 aprile 2012 08:59

Dear Arun,
I checked the code for the second example and it seems to work without a hitch. If you
have used the exact same code presented in the post, the image should be generated in
your working directory and named wordcloud_packages.png.
HIH!

Rispondi
Anonimo 16 maggio 2012 14:39

I am a beginner with R. How can I create a "phrase" cloud? Basically I have a list of 100
strings/phrases which i want to present as a cloud.
Rispondi

Paolo Sonego

16 maggio 2012 15:09

I have difficulty understanding the goal of your exercise. A word cloud is a visual tool
which can help in perceiving the most prominent (frequent) terms in a collection of
words using either color or size. In your case I can imagine your phrases are all different
among them; therefore a representation based on frequency make little sense to me.
Rispondi

Risposte
Anonimo 16 maggio 2012 15:17

The list of phrases has been derived based on importance; hence it is in order
of importance. Is it possible to represent them like a cloud? How?
Maybe give the phrases descending frequencies?
More importantly, the examples above are for single words. What about
phrases?
Rispondi

Paolo Sonego

16 maggio 2012 15:38

Try something like this:


Put your data in a file phrases.txt with a single phrase for each raw:
all work and no play
makes jack
a dull boy
1) Import the phrases in R
my.phrases <- scan("phrases.txt", what="char", sep="\n")
2) import or create a vector with the frequencies (convert your order of importance in
same way to frequencies), e.g.
my.freq <- c(10,20,15)
3) Plot the wordcloud
library(wordcloud)
wordcloud(my.phrases, my.freq)

Rispondi
Risposte
Anonimo 16 maggio 2012 16:22
thanks a million!
Paolo Sonego

You are welcome!

16 maggio 2012 16:26

Anonimo 16 maggio 2012 17:37

Is there a limit for the word cloud? Just a handful of items are visible. I set
frequency for every 10 items as the same; hence, 10 for first 10 items, 9 for
next 10 items...
1< arthik 3 settembre 2015 00:46
thank you!
Rispondi

Paolo Sonego

17 maggio 2012 08:20

See ?wordcloud. Take a look at min.freq and max.words arguments.


Rispondi

Amol Kokate 24 maggio 2012 08:30

hi this is good !! but it depends on word frequency,i will try on sentiment wordcloud
along with frequency it means positive word show different color and negative one show
different color.can any one help me.
Rispondi

Hari 26 dicembre 2012 09:22

Hi Paolo, I was able to build word cloud from csv file with little modification of above
code. Would like to know if it is possible to create different shape like what tagxedo
provides?
Rispondi

Risposte
Dhaval Mistry 9 gennaio 2014 10:02

Can you help me with how you loaded the csv file. I am newbie in R and
getting stuck in it
Rispondi

Paolo Sonego

26 dicembre 2012 09:31

Dear Hari, from what I can see from the help page this feature is not currently available
in the wordcloud package. You could suggest it to the author.
Rispondi

Hari 27 dicembre 2012 09:03

FYI
Hello Mr.Ian,
I am using the package Word Cloud authored by you in R. The package creates a word
cloud in a circle shape, would like to know if it is possible to make different shapes of
word cloud like what tagxedo provides.
Rispondi

Paolo Sonego

27 dicembre 2012 09:07

Dear Hari, in order to contact the author of the wordcloud package you should use the
information
you
can
find
at
http://cran.r-project.org/web/packages/wordcloud/index.html
I am not related to the author of this package nor have any connection with him.

Rispondi
Anonimo 15 marzo 2013 16:03
Great post!! Super useful!
Rispondi

Anonimo 21 marzo 2013 17:49

I get a lot of errors on this:


Error:
failed
to
load
external
entity
"http://cran.r-project.org/web/packages/available_packages_by_date.html"
> ap.corpus <- Corpus(DataframeSource(data.frame(as.character(t[,3]))))
Error in t[, 3] : object of type 'closure' is not subsettable
> ap.corpus <- tm_map(ap.corpus, removePunctuation)
Error in tm_map(ap.corpus, removePunctuation) :
object 'ap.corpus' not found
> ap.corpus <- tm_map(ap.corpus, tolower)
Error in tm_map(ap.corpus, tolower) : object 'ap.corpus' not found
> ap.corpus <- tm_map(ap.corpus, function(x) removeWords(x, stopwords("english")))
Error in tm_map(ap.corpus, function(x) removeWords(x, stopwords("english"))) :
object 'ap.corpus' not found
> ap.tdm <- TermDocumentMatrix(ap.corpus)
Error in TermDocumentMatrix(ap.corpus) : object 'ap.corpus' not found
> ap.m <- as.matrix(ap.tdm)
Error in as.matrix(ap.tdm) : object 'ap.tdm' not found
> ap.v <- sort(rowSums(ap.m),decreasing=TRUE)
Error in is.data.frame(x) : object 'ap.m' not found
> ap.d <- data.frame(word = names(ap.v),freq=ap.v)
Error in data.frame(word = names(ap.v), freq = ap.v) :
object 'ap.v' not found
> table(ap.d$freq)
Error in table(ap.d$freq) : object 'ap.d' not found
> 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)
Error in wordcloud(ap.d$word, ap.d$freq, scale = c(8, 0.2), min.freq = 3, :
object 'ap.d' not found
Rispondi

Paolo Sonego

21 marzo 2013 20:15

I checked the code again and, with R 2.15.2 (on both Windows and Linux) and a recent
version of the loaded packages, everything works as expected. Two suggestions: 1)
check all the packages are installed and loaded. 2) Check your internet connection and
firewall settings.
HIH
Rispondi

Ved Gupta 26 agosto 2013 08:19

Hi, I am using the latest version of R. I copy pasted your code in R but I am not getting
any graph/World Cloud. I have installed all the required packages. Can you please help?
Rispondi

Paolo Sonego

26 agosto 2013 08:28

Dear Ved,
Of course I can only guess but, from my experience, if both the installation of the
different required packages and the sourced code didn't throw any error, this mean that
the word cloud image was produced and saved in your workspace directory with the
name wordcloud.png.
HIH

Rispondi
Pradeepta Mishra 29 agosto 2013 09:52

Hi,
The second example gives me a picture with black background as "Invalid Image". Pleas
suggest how to get the image correctly for the word cloud. I am using the same example
as mentioned.
Thanks

Rispondi

Risposte
Paolo Sonego

29 agosto 2013 10:07

Using my configuration(Ubuntu Linux 13.10, R_3.0.1, current version of the


different packages)the example works as expected.
My guess is the device was not properly closed (i.e. you didn't type dev.off() at
the end of the script).
HIH
Rispondi

Dhaval Mistry 9 gennaio 2014 10:04

Can you help me with how you loaded the csv file. I am newbie in R and getting stuck in
it
Rispondi

Paolo Sonego

9 gennaio 2014 10:23

Dear Dhaval, csv importing is a very common starting point you have to do when you
are going to use R or any other programming language for analyzing data. I suggest you
to take a look at any introductory R book/tutorial you can find (see the R/CRAN website
for tens of choices). Furthermore if you are still stuck at some point, you can get a lot of
useful responses on the StackOverflow Q & A website (use the [r] tag).
Rispondi

Risposte
Anvi Modi 5 agosto 2014 16:00
Hi,

Can you help me to remove duplicates from one column using the tm_map (TM
package) and corpus method?
Thanks,
Anvi
Rispondi

Anonimo 9 febbraio 2014 05:46

???
Error en .overlap(x1, y1, sw1, sh1, boxes) :
el paquete 'dataptr' no ofrece la funcin 'Rcpp'
> dev.off()
null device
por que me sale esto?
donde esta mi error
mi
Platform: x86_64-w64-mingw32/x64 (64-bit)
Rispondi

Paolo Sonego

9 febbraio 2014 10:08

No easy solution: I checked on a Windows installation (R version 3.0.2) and everything


seems work properly! Some advise: install the current version of R with all the updated
packages required by the tutorial.
Rispondi

Paicyclopedia 27 febbraio 2014 16:35

Hi Paolo,
I was trying to form the wordcloud for NYTimes community comments.
After I type,
recent.news <- community(what=what, key=my.key)
It gives me an error,saying : Error: Forbidden
What could be the reason beind this error? I have successfully obtained the API Key for
NYTimes Community API.
Rispondi

Risposte

Paolo Sonego

1 marzo 2014 10:30

@Paicyclopedia I did manually some calls to the NYTimes API and they seen to
work properly. Not 100% sure but it could be that the RNYTimes package is no
more capable to use the API: you could ask the authors of the package to take
a look at their code and see if it is really a problem related to the way the
current API should be call from a wrapper.
Rispondi

singularity 4 giugno 2014 03:54

I got the same error as Paicyclopedia. I think the problem is related to the security level
of your computer.
Rispondi

Diane 19 luglio 2014 00:13

It works. I have R-3.1.1 on Windows 8.1 64-bit.


In example 1 I have changed line 10 to
xkcd.corpus <- tm_map(xkcd.corpus, content_transformer(tolower))
and in example 2 the same in line 9:
ap.corpus <- tm_map(ap.corpus, content_transformer(tolower))
Example 3: "three" changes
0. I have installed RCURL.
1. I have downloaded the package RNYTimes_0.1-1.tar.gz and changed line 5 to
install.packages("G:\\RFiles\\RNYTimes_0.1-1.tar.gz", repos=NULL, type = "source")
After the first start I deleted line 5.
2. Line 20 is changed to
ap.corpus <- tm_map(ap.corpus, content_transformer(tolower))
I have got the key for the Comment API.
Great, thank you for these useful examples.
Rispondi

Risposte
Paolo Sonego

19 luglio 2014 09:45

Thanks to you fer the useful feedback! :-)


Rispondi

Mr. Inflatable 5 ottobre 2014 17:20

Another install alternative for the NYTimes package (Win8.1, Rstudio 3.1.1)
install.packages("RNYTimes",repos="http://www.omegahat.org/R",
type="source",
dependencies=TRUE)
Rispondi

Risposte
Paolo Sonego

5 ottobre 2014 17:35

Thanks for your contribution! :-)


Rispondi

Sayan Kundu 2 maggio 2015 20:02

Hi i'm getting an error:


ap.tdm <- TermDocumentMatrix(ap.corpus)
Error: inherits(doc, "TextDocument") is not TRUE
Pls help & i have no clue about the depth of my problem as i'm totally new to R
Rispondi

Paolo Sonego

2 maggio 2015 22:11

Dear Sayan,
Thanks for the useful feedback! As you can see from the timestamp this is a very old
post which took advantage of a old version of the tm package. A fix which work with a
current version of tm (version 0.6 here) could be: adding the below line

ap.corpus <- Corpus(VectorSource(ap.corpus))


before
ap.tdm <- TermDocumentMatrix(ap.corpus)
I got this fix from this post. The aforementioned post was published on
http://stackoverflow.com/: If you are new to R I strongly recommend you to make use
of this valuable resource!
Rispondi

kyaw thu 28 aprile 2016 09:35

I tried run the code in Example 1, I got err


Error in
"UseMethod("meta", x) :
no applicable method for 'meta' applied to an object of class "character".."
at the following code>
tdm <- TermDocumentMatrix(xkcd.corpus)
Rispondi

Risposte
Paolo Sonego

28 aprile 2016 09:51

Thanks kyaw thu for reporting this issue!


Fixed thanks to the suggestions found at this link.
Rispondi

Inserisci il tuo commento...

Commenta come:
Pubblica

Post pi recente

Seleziona profilo...

Anteprima

Iscriviti a: Commenti sul post (Atom)

Home page

Post pi vecchio

Modello Simple. Powered by Blogger.

You might also like