diff --git a/Project.toml b/Project.toml index 39cc084..981264c 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "WordCloud" uuid = "6385f0a0-cb03-45b6-9089-4e0acc74b26b" authors = ["guoyongzhi "] -version = "0.13.4" +version = "0.13.5" [deps] ColorSchemes = "35d6a980-a343-548e-a6ea-1d62b119f2f4" diff --git a/src/textprocessing.jl b/src/textprocessing.jl index b5948e2..52abf5e 100644 --- a/src/textprocessing.jl +++ b/src/textprocessing.jl @@ -1,5 +1,5 @@ module TextProcessing -export countwords, processtext, html2text, STOPWORDS, casemerge!, rescaleweights, settokenizer!, setlemmatizer!, setstopwords! +export countwords, processtext, html2text, STOPWORDS, casemerge!, rescaleweights, settokenizer!, setlemmatizer!, setstopwords!, detect_language using StopWords using LanguageIdentification diff --git a/src/wc-class.jl b/src/wc-class.jl index 0be8dee..1b4ced5 100644 --- a/src/wc-class.jl +++ b/src/wc-class.jl @@ -73,6 +73,7 @@ wordcloud(wordsweights::Tuple; kargs...) = wordcloud(wordsweights...; kargs...) wordcloud(counter::AbstractDict; kargs...) = wordcloud(keys(counter) |> collect, values(counter) |> collect; kargs...) wordcloud(counter::AbstractVector{<:Union{Pair,Tuple,AbstractVector}}; kargs...) = wordcloud(first.(counter), [v[2] for v in counter]; kargs...) function wordcloud(text; language=:auto, stopwords=:auto, stopwords_extra=nothing, maxnum=500, kargs...) + language = detect_language(text, language) wordcloud(processtext(text, language=language, stopwords=stopwords, stopwords_extra=stopwords_extra, maxnum=maxnum); language=language, kargs...) end wordcloud(words, weight::Number; kargs...) = wordcloud(words, repeat([weight], length(words)); kargs...) @@ -249,8 +250,7 @@ function getstylescheme(words, weights; colors=:auto, angles=:auto, mask=:auto, Render.recolor!(mask, maskcolor) # tobitmap后有杂色 https://github.com/JuliaGraphics/Luxor.jl/issues/160 end end - lang = language in DEFAULTSYMBOLS ? "" : language - fonts in DEFAULTSYMBOLS && (fonts = randomfonts(lang)) + fonts in DEFAULTSYMBOLS && (fonts = randomfonts(detect_language(words, language))) fonts = Iterators.take(iter_expand(fonts), length(words)) |> collect colors, angles, mask, svgmask, fonts, transparent end