word cloud模块的包装器,用于创建波斯语(和其他rtl语言)wordcloud。
wordcloud-fa的Python项目详细描述
wordcloudfa
此模块是一个易于使用的包装器,用于word戋cloud模块
原始模块不支持波斯语文本。但是通过使用wordcloudfa,您可以从 包括波斯语和英语单词的文本。
这个模块不仅是一个包装器,还为原来的模块添加了一些功能。
如何安装
要安装此模块,您只需运行
pip安装wordcloud fa
这个模块在python 3上测试
wordcloudfa取决于numpy
和枕头
此外,还应该有hazm
模块。通常,当您使用
pip
如本节开头所述。
要将wordcloud保存到文件中,还可以安装matplotlib。
注意
您的系统上需要有python3的python dev
。如果没有,可以在操作系统上安装
使用apt
作为包管理器(如ubuntu)的用户:
sudo apt get安装python3 dev
您可以将它安装到那些使用yum
作为包管理器的操作系统上(比如redhat、fedora和…)
使用以下命令:
sudo yum install python3 devel
如何使用
要从文本创建单词云,首先应将类导入到代码中:
从wordcloud导入wordcloud fa
您可以创建此类的实例,例如:
wodcloud=wordcloudfa()
可以将不同的参数传递给构造函数。你可以看到他们的全部文件 wordcloud文档
有两个参数不在原始类中。
首先是波斯语规范化。如果使用true
值传递此参数,则使用
hazm正常执行器。建议始终传递此参数。将取代
阿拉伯文字母和波斯文字母,还有其他一些东西。
此参数的默认值为false
wodcloud=wordcloudfa(波斯语,normalize=true)
第二个参数是include_numbers
它不在发布的原始模块中。如果将此参数设置为false
,
所有波斯语、阿拉伯语和英语数字都将从您的数据中删除。
此参数的默认值为true
wodcloud=wordcloudfa(包括u numbers=false)
从文本生成单词云
要从字符串生成word cloud,只需调用实例的generate
方法即可:
wodcloud=WordCloudFa(persian_normalize=True)wc=wodcloud.generate(text)image=wc.to_image()image.show()image.save('wordcloud.png')
从频率生成词云
你可以从频率生成一个词云。您可以使用process_text
方法的输出作为频率。
你也可以用这样的字典。
wodcloud=WordCloudFa()frequencies=wodcloud.process_text(text)wc=wodcloud.generate_from_frequencies(frequencies)
generate_from_frequencies
此模块中的方法将排除停止字。但原始模块不会排除它们
当你使用这种方法时。此外,您也可以使用波斯语单词作为频率dict的键,而不会有任何问题。
使用停止字
词尾是我们不想考虑的词。如果您不传递任何停止字,则 停止字将被视为 停止语。你根本不想用它们,你想选择你的停止语?当
您正在从wordcloudfa
创建一个实例,并将一组单词传递给它。
stop_words=set(['کلمهی اول','کلمهی دوم'])wc=WordCloudFa(stopwords=stop_words)
如果要在默认的stopWords中添加其他单词,只需调用
wordcloudfa
的实例,并将iterable类型(list
,set
,…)传递给它。
wc=WordCloudFa()wc.add_stop_words(['کلمهی اول','کلمهی دوم'])
也可以从文件中添加停止字。该文件应包括停止字,每个字应在一个单独的行中。
为此,您应该使用add_stop_words_from_file
方法。唯一的参数
方法是到stop words文件的相对或绝对路径。
wc=WordCloudFa()wc.add_stop_words_from_file("stopwords.txt")
遮罩图像
你可以用一个图像来掩盖最终的单词云。例如,此文档的第一个图像是一个被图像屏蔽的wordcloud
伊朗国家的地图。设置掩码时,应传递mask
参数。
但在这之前,你首先要确定你有一个黑白图像。因为其他图像不会产生好的效果。
然后,您应该将该图像转换为numpy数组。为此,您应该这样做:
importnumpyasnpfromPILimportImagemask_array=np.array(Image.open("mask.png"))
您只需添加这两个导入,但不必担心安装它们,因为它们已经 作为此模块的依赖项安装。
然后,您可以将该数组传递给wordcloudfa
类的构造函数来屏蔽结果。
wodcloud=WordCloudFa(mask=mask_array)
现在您可以像以前一样使用WorldCloud实例。
重塑单词
当你把你的文本传递到这个类的一个实例中时,所有的单词都会被重新塑造,以一种合适的方式显示 避免波斯语或阿拉伯语单词的无效形状(拆分字母和反字母)。
如果您想在此模块之外执行相同的操作,可以调用重塑单词
静态方法。
reshaped_words=WordCloudFa.reshape_words(['کلمهی اول','کلمهی دوم'])
此方法获取一个iterable
作为输入,并返回一个重塑单词的列表。
不要忘记,不应将重塑的单词传递给此类的方法,而此静态方法仅用于此模块之外的用法
示例
您可以在考试中看到示例代码ples目录
字体
默认字体为未知!支持波斯语和英语字母的字体。所以你不需要为
正在获取结果。但如果要更改字体,可以传递字体路径
参数。
波斯语教程
如果您想阅读一个关于如何使用波斯语(波斯语)这个包的简短教程,可以 单击此链接
贡献
我们想让这个库保持新鲜,对所有伊朗开发者都有用。因此,我们需要您的帮助来添加新功能、修复错误和添加更多文档。
你想知道你能为这个项目做些什么?下面是您可以做的事情的列表:
- 文件不够?您可以添加更多文档来帮助我们。
- 现在的代码会更好吗?您可以使这个更干净或更快。
- 你认为遗漏了一个有用的功能吗?你可以打开一个问题并告诉我们。
- 你找到一个很好的支持波斯语和英语的开放和免费字体了吗?您可以通过拉取请求或打开问题通知我们
有什么问题吗?
如果您有问题,发现一些错误或需要一些功能,您可以打开一个问题并告诉我们。因为一些奇怪的原因这是不可能的?请通过以下电子邮件与我联系:salam@alihoseiny.ir
引文
示例
目录中的文本来自
这是维基百科页面。