在 Google-Colab 中使用 Python3 创建词云时应该如何使用 Arial 字体?
How should I use Arial font while creating word-cloud while using Python3 in Google-Colab?
我有一个推特文本数据集,它混合了英语、阿拉伯语和波斯语。我想用它创建一个词云。不幸的是,我的词云在照片中显示了阿拉伯语和波斯语单词的空方块。我碰巧听说了解决这个问题的三种方法:
使用不同的编码:我试过 "UTF-8"、"UTF-16"、"UTF-32" 和 "ISO-8859-1" 都没有解决问题
使用arabic_reshaper:没用
使用同时支持三种语言的字体,如"Arial"字体:尝试将字云中的字体更改为Arial时,出现以下错误:
输入
wordcloud = WordCloud(font_path = 'arial',stopwords = stopwords, background_color = "white", max_font_size = 50, max_words = 100).generate(reshaped_text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
输出
cannot open resource
这段代码在Anaconda中运行良好,但在Google-Colab中运行不佳。唯一需要解决的是我应该进入什么路径font_path 在 Google-Colab
使用波斯语您需要解决三个问题:
- 波斯语字符显示不正确。这将通过我认为您已经解决的编码或字体来解决。
- 波斯字符出现但它们是分开的,在这种情况下你应该使用
arabic_reshaper
的reshape
功能。请记住,这并不能完全解决您的问题,您需要执行第 3 步。
- 从左到右书写的波斯语单词,你应该用
python-bidi
库解决这个问题。
举个例子,我用下面的代码成功创建了词云:
import matplotlib.pyplot as plt
import arabic_reshaper
from bidi.algorithm import get_display
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
txt = '''I would love to try or hear the sample audio your app can produce. I do not want to purchase, because I've purchased so many apps that say they do something and do not deliver.
Can you please add audio samples with text you've converted? I'd love to see the end results.
Thanks!
سلام حال سلام سلام سلام حال شما چطوره است نیست
'''
word_cloud = WordCloud(font_path='arial', stopwords=STOPWORDS, background_color="white", max_font_size=50, max_words=100)
word_cloud = word_cloud.generate_from_text(get_display(arabic_reshaper.reshape(txt)))
plt.imshow(word_cloud, interpolation='bilinear')
plt.axis("off")
plt.show()
我将字体上传到我的 google 驱动器并使用了有效的代码:
wordcloud = WordCloud(font_path='/content/drive/My Drive/ARIAL.TTF',stopwords=stopwords, background_color="white", max_font_size=50, max_words=100).generate(get_display(arabic_reshaper.reshape(all_tweets)))
您可能想测试这些特定的波斯语词云库。
也看看这些:
和
我有一个推特文本数据集,它混合了英语、阿拉伯语和波斯语。我想用它创建一个词云。不幸的是,我的词云在照片中显示了阿拉伯语和波斯语单词的空方块。我碰巧听说了解决这个问题的三种方法:
使用不同的编码:我试过 "UTF-8"、"UTF-16"、"UTF-32" 和 "ISO-8859-1" 都没有解决问题
使用arabic_reshaper:没用
使用同时支持三种语言的字体,如"Arial"字体:尝试将字云中的字体更改为Arial时,出现以下错误:
输入
wordcloud = WordCloud(font_path = 'arial',stopwords = stopwords, background_color = "white", max_font_size = 50, max_words = 100).generate(reshaped_text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
输出
cannot open resource
这段代码在Anaconda中运行良好,但在Google-Colab中运行不佳。唯一需要解决的是我应该进入什么路径font_path 在 Google-Colab
使用波斯语您需要解决三个问题:
- 波斯语字符显示不正确。这将通过我认为您已经解决的编码或字体来解决。
- 波斯字符出现但它们是分开的,在这种情况下你应该使用
arabic_reshaper
的reshape
功能。请记住,这并不能完全解决您的问题,您需要执行第 3 步。 - 从左到右书写的波斯语单词,你应该用
python-bidi
库解决这个问题。
举个例子,我用下面的代码成功创建了词云:
import matplotlib.pyplot as plt
import arabic_reshaper
from bidi.algorithm import get_display
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
txt = '''I would love to try or hear the sample audio your app can produce. I do not want to purchase, because I've purchased so many apps that say they do something and do not deliver.
Can you please add audio samples with text you've converted? I'd love to see the end results.
Thanks!
سلام حال سلام سلام سلام حال شما چطوره است نیست
'''
word_cloud = WordCloud(font_path='arial', stopwords=STOPWORDS, background_color="white", max_font_size=50, max_words=100)
word_cloud = word_cloud.generate_from_text(get_display(arabic_reshaper.reshape(txt)))
plt.imshow(word_cloud, interpolation='bilinear')
plt.axis("off")
plt.show()
我将字体上传到我的 google 驱动器并使用了有效的代码:
wordcloud = WordCloud(font_path='/content/drive/My Drive/ARIAL.TTF',stopwords=stopwords, background_color="white", max_font_size=50, max_words=100).generate(get_display(arabic_reshaper.reshape(all_tweets)))
您可能想测试这些特定的波斯语词云库。
也看看这些:
和