gpt4 book ai didi

python - Matplotlib.pyplot 标签不在标签中显示印地语文本,

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:27 26 4
gpt4 key购买 nike

我有一个函数,它看起来有点像这样,它显示了一个分布图,其中有印地语的 y 轴标签。

def dispersionPlot(text, words):
tokens = tok.wordtokenize(text)
print(words)
x_length = len(tokens)
y_length = len(words)
x_list = []
y_list = []
for i in range(0 , x_length):
for j in range(0 , y_length):
if tokens[i] == words[j]:
x_list.append(i+1)
y_list.append(j)
plt.plot(x_list, y_list, "b|", scalex=.1)
plt.yticks(list(range(len(words))), words, color="b")
plt.ylim(-1, len(words))
plt.xlabel("Lexical Distribution")
plt.show()

现在,当我尝试使用印地语文本调用该函数时。然后我得到类似这样的输出。

text = "प्रदूषण आज के समय का सबसे बड़ा अभिशाप है जो हमारे विज्ञानं की देन है। प्रदूषण के बढ़ने से हमारे धरती पे बहुत सी समस्याएं पैदा हो गई जिसे अगर समय रहते न रोक गया तो वो दिन दूर नही जब धीरे-धीरे सब खतम हो जायेगा। प्रदुषण के तत्त्व मनुष्यों द्वारा उत्पन्न किया गया पदार्थ या वेस्ट मटेरियल होता है जो की प्राकृतिक संसाधन जैसे की वायु, जल और भूमि आदि को प्रदूषित करते है| प्रदूषण जहरीली गैस, कीटनाशक, शाकनाशी, कवकनाशी, ध्वनि, कार्बनिक मिश्रण, रेडियोधर्मी पदार्थ हो सकते है। दिन पर दिन वनो की कटाई, कारखानो का प्रदूषित धुआं, वाहनो का धुँआ हमारे पूरे वातावरण को दूषित करता जा रहा है। प्रदूषण कई तरह के होते है परन्तु इनमे से सबसे हानिकारक जल प्रदूषण, वायु प्रदूषण, और ध्वनि प्रदूषण है। नगरो का सारा कूड़ा करकट और मल जल में डाल दिया जाता है जिससे हमारे पीने का पानी अशुद्ध हो गया है और इसके सेवन से हमारे शरीर को अनेक तरह की बीमारियां लग रही है। वायु प्रदूषण हमारे द्वारा उत्पन की गई गसो से पूरी हवा में फ़ैल जाता है और वही दूषित हवा को हम श्वास के साथ अंदर लेते है और कई तरह की बिमारियों का शिकार बन जाते है। ध्वनि प्रदूषण का कारण बढ़ती जनसख्या है जिसके कारण शोरगुल बढ़ता जा रहा है जैसे की वाहनो का शोर, कारखानो में मशीनो का शोर इत्यादि । प्रदूषण पर नियंत्रण पाने के लिए संयुक्त प्रयास की आवश्यकता है जिससे की हम एक स्वस्थ्य और प्रदुषण मुक्त वातावरण पा सके।"
words = ["है", "प्रदूषण"]
dispersionPlot(text, words)

Output

如您所见,y 刻度中的印地语单词未显示。难道我做错了什么?有办法解决这个问题吗?

最佳答案

显然 matplotlib 不知道如何渲染字符。解决这个问题的一种方法是告诉 matplotlib 使用哪种字体。例如,假设您将使用“Nirmala”。将字体文件放在合适的位置,你可以这样编码:

注意:我不确定你的 tok.wordtokenize(text) 是如何工作的(类似于 nltkword_tokenize(s) ?)。所以我将该行更改为 tokens = text.split()。希望你不会介意。

from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties

def dispersionPlot(text, words):
tokens = text.split()
print(words)
x_length = len(tokens)
y_length = len(words)
x_list = []
y_list = []
for i in range(0 , x_length):
for j in range(0 , y_length):
if tokens[i] == words[j]:
x_list.append(i+1)
y_list.append(j)
plt.plot(x_list, y_list, "b|", scalex=.1)
hindi_font = FontProperties(fname = 'Nirmala.ttf')
plt.yticks(list(range(len(words))), words, color="b", fontproperties=hindi_font)
plt.ylim(-1, len(words))
plt.xlabel("Lexical Distribution")
plt.show()

text = "प्रदूषण आज के समय का सबसे बड़ा अभिशाप है जो हमारे विज्ञानं की देन है। प्रदूषण के बढ़ने से हमारे धरती पे बहुत सी समस्याएं पैदा हो गई जिसे अगर समय रहते न रोक गया तो वो दिन दूर नही जब धीरे-धीरे सब खतम हो जायेगा। प्रदुषण के तत्त्व मनुष्यों द्वारा उत्पन्न किया गया पदार्थ या वेस्ट मटेरियल होता है जो की प्राकृतिक संसाधन जैसे की वायु, जल और भूमि आदि को प्रदूषित करते है| प्रदूषण जहरीली गैस, कीटनाशक, शाकनाशी, कवकनाशी, ध्वनि, कार्बनिक मिश्रण, रेडियोधर्मी पदार्थ हो सकते है। दिन पर दिन वनो की कटाई, कारखानो का प्रदूषित धुआं, वाहनो का धुँआ हमारे पूरे वातावरण को दूषित करता जा रहा है। प्रदूषण कई तरह के होते है परन्तु इनमे से सबसे हानिकारक जल प्रदूषण, वायु प्रदूषण, और ध्वनि प्रदूषण है। नगरो का सारा कूड़ा करकट और मल जल में डाल दिया जाता है जिससे हमारे पीने का पानी अशुद्ध हो गया है और इसके सेवन से हमारे शरीर को अनेक तरह की बीमारियां लग रही है। वायु प्रदूषण हमारे द्वारा उत्पन की गई गसो से पूरी हवा में फ़ैल जाता है और वही दूषित हवा को हम श्वास के साथ अंदर लेते है और कई तरह की बिमारियों का शिकार बन जाते है। ध्वनि प्रदूषण का कारण बढ़ती जनसख्या है जिसके कारण शोरगुल बढ़ता जा रहा है जैसे की वाहनो का शोर, कारखानो में मशीनो का शोर इत्यादि । प्रदूषण पर नियंत्रण पाने के लिए संयुक्त प्रयास की आवश्यकता है जिससे की हम एक स्वस्थ्य और प्रदुषण मुक्त वातावरण पा सके।"
words = ["है", "प्रदूषण"]
dispersionPlot(text, words)

enter image description here

关于python - Matplotlib.pyplot 标签不在标签中显示印地语文本,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44526794/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com