问题描述
我正在尝试生成一个词云,其中一个词中有一个 +
符号。我知道 +
符号在 RegEx 中具有特殊含义,我也知道 regexp
中有一个 WordCloud()
参数。但是,我不确定如何调整它以允许 +
显示在词云输出中?
以下是我当前的代码:
import matplotlib.pyplot as plt
%matplotlib inline
from wordcloud import WordCloud,STOPWORDS
# Define a function to plot word cloud
def plot_cloud(wordcloud):
# Set figure size
plt.figure(figsize=(40,30))
# display image
plt.imshow(wordcloud)
# No axis details
plt.axis("off");
file1 = open(r"word_cloud.txt")
text = file1.read()
wordcloud = WordCloud(width = 3000,height = 500,random_state=1,background_color='white',colormap='viridis',collocations=False,stopwords = STOPWORDS).generate(text)
plot_cloud(wordcloud)
非常感谢您对此的任何帮助。
编辑
编辑显然我最初的问题不清楚。
目标:创建包含符号 +
的词云。
在上面的代码中,它生成了词云,但带有 +
符号的词没有它,即 C++ 这个词作为 C 出现了。我创建了一组新的 {{1 }} 所以这个参数不是问题。我相信它与 STOPWORDS
函数的 regexp
参数有关 - 但我不确定,因为我对正则表达式了解不多。
为了进一步详细说明,我在 WordCloud()
文件中有以下内容:
word_cloud.txt
解决方法
我假设默认情况下 WordCloud
仅使用单词(例如类似于 r'\w'
的正则表达式)。
为了将 +
符号视为单词的一部分,我建议您遵循以下原则:
r'[a-zA-z\+]+'
这个should work。