Это не столько связано с самим wordcloud, сколько с рендерингом: вы используете (по умолчанию это) шрифт, который просто не содержит «определений» для ивритских символов. Таким образом, вместо этого он просто отображает прямоугольники.
Однако мы можем использовать шрифт, который поддерживает ивритские символы, например FreeSansBold . Мы можем передать путь к шрифту через конструктор WordCloud
:
from wordcloud import WordCloud
from matplotlib import pyplot as plt
text="""תחילתו של חורף מאכזב למדיי, מומחי המים בישראל מאמינים כי לראשונה השנה מפלס הכנרת יעלה בצורה משמעותית מגשמי הסערה שתחל היום"""
wordcloud = WordCloud(<b>font_path='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf'</b>).generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
, тогда генерируется следующее слово:
Я не очень знаком с ивритом, но у меня сложилось впечатление, что слова пишутся слева направо, а не справа налево. В любом случае, если это проблема, мы можем использовать python-bidi
, чтобы сначала обработать направление языка, например:
from wordcloud import WordCloud
from matplotlib import pyplot as plt
from bidi.algorithm import get_display
text="""תחילתו של חורף מאכזב למדיי, מומחי המים בישראל מאמינים כי לראשונה השנה מפלס הכנרת יעלה בצורה משמעותית מגשמי הסערה שתחל היום"""
bidi_text = <b>get_display(text)</b>
wordcloud = WordCloud(font_path='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf').generate(bidi_text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
Для данного текста мы получаем следующее изображение: