如何使用 + 符号生成词云

问题描述

我正在尝试生成一个词云,其中一个词中有一个 + 符号。我知道 + 符号在 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

但这在词云显示如下:

enter image description here

解决方法

假设默认情况下 WordCloud 仅使用单词(例如类似于 r'\w' 的正则表达式)。 为了将 + 符号视为单词的一部分,我建议您遵循以下原则:

r'[a-zA-z\+]+'

这个should work