Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #234 from rmelick/emoji-support
Add support for emoji.
- Loading branch information
Showing
6 changed files
with
95 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,3 +5,5 @@ wordcloud/query_integral_image.so | |
doc/_build | ||
doc/auto_examples | ||
doc/generated | ||
.venv/ | ||
.idea/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
#!/usr/bin/env python | ||
""" | ||
Emoji Example | ||
=============== | ||
A simple example that shows how to include emoji. Note that this example does not seem to work on OS X, but does | ||
work correctly in Ubuntu. | ||
There are 3 important steps to follow to include emoji: | ||
1) Read the text input with io.open instead of the built in open. This ensures that it is loaded as UTF-8 | ||
2) Override the regular expression used by word cloud to parse the text into words. The default expression | ||
will only match ascii words | ||
3) Override the default font to something that supports emoji. The included Symbola font includes black and | ||
white outlines for most emoji. There are currently issues with the PIL/Pillow library that seem to prevent | ||
it from functioning correctly on OS X (https://github.com/python-pillow/Pillow/issues/1774), so try this | ||
on ubuntu if you are having problems. | ||
""" | ||
import io | ||
import string | ||
from os import path | ||
from wordcloud import WordCloud | ||
|
||
d = path.dirname(__file__) | ||
|
||
# It is important to use io.open to correctly load the file as UTF-8 | ||
text = io.open(path.join(d, 'happy-emoji.txt')).read() | ||
|
||
# the regex used to detect words is a combination of normal words, ascii art, and emojis | ||
# 2+ consecutive letters (also include apostrophes), e.x It's | ||
normal_word = r"(?:\w[\w']+)" | ||
# 2+ consecutive punctuations, e.x. :) | ||
ascii_art = r"(?:[{punctuation}][{punctuation}]+)".format(punctuation=string.punctuation) | ||
# a single character that is not alpha_numeric or other ascii printable | ||
emoji = r"(?:[^\s])(?<![\w{ascii_printable}])".format(ascii_printable=string.printable) | ||
regexp = r"{normal_word}|{ascii_art}|{emoji}".format(normal_word=normal_word, ascii_art=ascii_art, | ||
emoji=emoji) | ||
|
||
# Generate a word cloud image | ||
# The Symbola font includes most emoji | ||
font_path = path.join(d, 'fonts', 'Symbola', 'Symbola.ttf') | ||
wordcloud = WordCloud(font_path=font_path, regexp=regexp).generate(text) | ||
|
||
# Display the generated image: | ||
# the matplotlib way: | ||
import matplotlib.pyplot as plt | ||
plt.imshow(wordcloud) | ||
plt.axis("off") | ||
plt.show() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
The symbola font was downloaded from George Douros at http://users.teilar.gr/~g1951d/ | ||
|
||
On that site (and inside the pdf), the license is described as follows: | ||
In lieu of a licence; fonts and documents in this site are free for any use; George Douros |
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
happy happy happy happy happy happy happy happy happy happy | ||
smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley | ||
happy happy happy happy happy happy happy happy happy happy | ||
smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley | ||
happy happy happy happy happy happy happy happy happy happy | ||
smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley | ||
π π π π π π π π π π | ||
:) :) :) :) :) :) :) :) :) :) | ||
π π π π π π π π π π | ||
:) :) :) :) :) :) :) :) :) :) | ||
π π π π π π π π π π | ||
:) :) :) :) :) :) :) :) :) :) | ||
π π π π π π π π π π | ||
:) :) :) :) :) :) :) :) :) :) | ||
π π π π π π π π π π | ||
:) :) :) :) :) :) :) :) :) :) | ||
smile smile smile smile smile smile smile smile smile smile | ||
face face face face face face face face face face face face | ||
contented, content, cheerful, cheery, merry, joyful, jovial, jolly, joking, jocular, gleeful, carefree, untroubled, delighted, smiling, beaming, grinning, glowing, satisfied, gratified, buoyant, radiant, sunny, blithe, joyous, beatific, blessed | ||
π | ||
|
||
π Smileys & People | ||
|
||
π Grinning Face | ||
π Grinning Face With Smiling Eyes | ||
π Face With Tears of Joy | ||
π€£ Rolling on the Floor Laughing | ||
π Smiling Face With Open Mouth | ||
π Smiling Face With Open Mouth & Smiling Eyes | ||
π Smiling Face With Open Mouth & Cold Sweat | ||
π Smiling Face With Open Mouth & Closed Eyes | ||
π Winking Face | ||
π Smiling Face With Smiling Eyes | ||
π Face Savouring Delicious Food | ||
π Smiling Face With Sunglasses | ||
π Smiling Face With Heart-eyes | ||
π Face Blowing a Kiss | ||
π Kissing Face | ||
π Kissing Face With Smiling Eyes | ||
π Kissing Face With Closed Eyes | ||
βΊοΈ Smiling Face | ||
π Slightly Smiling Face |