我正在尝试绘制用arabic
编写的最常见单词的直方图,但我找不到解决方法。我所能得到的只是切片的字符,而不是编译的单词。
这是我得到的例子:
import seaborn as sns
import pandas as pd
res = {
'الذكاء': 8,
'الاصطناعي': 9,
'هو': 2,
'سلوك': 1,
'وخصائص': 1,
'معينة': 1,
'تتسم': 1
}
df = pd.DataFrame(res.items(), columns=['word', 'count'])
sns.set(style="whitegrid")
ax = sns.barplot(x="count", y="word", data=df)
如上图所示,我希望像在字典中提到的那样对那些字符进行编译。
答案 0 :(得分:1)
正如@Sheldore 所指出的,这似乎与 arabic_reshaper
和 bidi
运行良好。
import seaborn as sns
import pandas as pd
import arabic_reshaper
from bidi.algorithm import get_display
res = {
'الذكاء': 8,
'الاصطناعي': 9,
'هو': 2,
'سلوك': 1,
'وخصائص': 1,
'معينة': 1,
'تتسم': 1
}
res2 = {get_display(arabic_reshaper.reshape(k)): v for k,v in res.items()}
df = pd.DataFrame(res2.items(), columns=['word', 'count'])
sns.set(style="whitegrid")
ax = sns.barplot(x="count", y="word", data=df)