这与wordcloud本身没有太多的关系,而是与渲染有更多的关系:您使用的字体(默认为)只是不包含希伯来语字符的任何“定义”。因此,它只呈现矩形。
但是,我们可以使用支持希伯来文字符的字体,例如
弗赖桑斯博尔德
. 我们可以通过
WordCloud
构造函数:
from wordcloud import WordCloud
from matplotlib import pyplot as plt
text="""ת××××ª× ×©× ××רף ××××× ×××××, ××××× ×××× ××שר×× ××××× ×× ×× ×ר×ש×× × ××©× × ×פ×ס ××× ×¨×ª ××¢×× ×צ××¨× ×ש××¢×ת×ת ××ש×× ××¡×¢×¨× ×©×ª×× ××××"""
wordcloud = WordCloud(font_path='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf').generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
然后生成以下单词cloud:
我不太熟悉希伯来语,但我觉得这些单词是从左到右写的,而不是从右到左。不管怎样,如果这是个问题,我们可以使用
python-bidi
首先处理语言的方向,如:
from wordcloud import WordCloud
from matplotlib import pyplot as plt
from bidi.algorithm import get_display
text="""ת××××ª× ×©× ××רף ××××× ×××××, ××××× ×××× ××שר×× ××××× ×× ×× ×ר×ש×× × ××©× × ×פ×ס ××× ×¨×ª ××¢×× ×צ××¨× ×ש××¢×ת×ת ××ש×× ××¡×¢×¨× ×©×ª×× ××××"""
bidi_text = get_display(text)
wordcloud = WordCloud(font_path='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf').generate(bidi_text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
对于给定的文本,我们随后获得以下图像: