我正在使用Python中的Wordcloud包直接从文本文件生成词云。以下是我从StackOverflow中重新使用的代码:
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None):
h = int(360.0 * 45.0 / 255.0)
s = int(100.0 * 255.0 / 255.0)
l = int(100.0 * float(random_state.randint(60, 120)) / 255.0)
return "hsl({}, {}%, {}%)".format(h, s, l)
file_content=open ("xyz.txt").read()
wordcloud = WordCloud(font_path = r'C:\Windows\Fonts\Verdana.ttf',
stopwords = STOPWORDS,
background_color = 'white',
width = 1200,
height = 1000,
color_func = random_color_func
).generate(file_content)
plt.imshow(wordcloud,interpolation="bilinear")
plt.axis('off')
plt.show()
我得到的是单词云。在WordCloud()函数中,是否有参数可以传递n-gram而不需要格式化文本文件。
我想要bigram的词云。或者在显示中使用下划线连接的单词。例如:machine_learning(Machine和Learning将是2个不同的单词)
file_content
,使用一些不同的东西,你可以通过处理file_content
获得。 - mkrieger1WordCloud
接受一个正则表达式,该表达式会影响输入文本的分词。 - mkrieger1