ホームページ  >  記事  >  バックエンド開発  >  Python を使用していくつかのワード クラウド図を描画し、誰もが驚きました

Python を使用していくつかのワード クラウド図を描画し、誰もが驚きました

王林
王林転載
2023-04-13 12:28:021527ブラウズ

Python を使用していくつかのワード クラウド図を描画し、誰もが驚きました

データ視覚化チャートでは、ワード クラウド チャートの適用がいたるところで見られます。通常、入力テキストから単語の出現頻度を抽出し、単語の出現頻度に応じて高頻度の単語を集中的に表示します。シンプルで直感的かつ効率的です。今日は絶妙なワード クラウドの描画方法を共有します。 Pythonでグラフを作成します。

ちょっとしたテスト

まず、Python の wordcloud モジュールを使用して簡単なワード クラウド図を描いてみましょう。

import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt

Weテキストコンテンツをインポートし、改行とスペースを削除します。コードは次のとおりです:

text = open(r"明朝那些事儿.txt",encoding='utf8').read()
text = text.replace('n',"").replace("u3000","")

単語に分割する必要があります。このとき、jieba モジュールを使用する必要があります。コードは次のとおりです:

text_cut = jieba.lcut(text)
# 将分好的词用某个符号分割开连成字符串
text_cut = ' '.join(text_cut)

もちろん、結果には見る必要のない無関係なコンテンツがたくさんあるかもしれません。現時点では、ストップワードを使用する必要があります。それは自分で構築することも、私たちが構築することもできます。他のものを直接使用します。ストップ ワード リストが作成されています。ここのエディタでは後者を使用します。コードは次のとおりです:

stop_words = open(r"常见中文停用词表.txt").read().split("n")

以下は、ワード クラウド チャートを描画するためのコア コードです。

word_cloud = WordCloud(font_path="simsun.ttc",# 设置词云字体
background_color="white", # 词云图的背景颜色
stopwords=stop_words) # 去掉的停词
word_cloud.generate(text_cut)
word_cloud.to_file("1.png")

output

Python を使用していくつかのワード クラウド図を描画し、誰もが驚きました

このような非常にシンプルなワードクラウド図が完成しました。もちろん、これに背景画像を追加することもできます。下の図では、

Python を使用していくつかのワード クラウド図を描画し、誰もが驚きました

追加する必要がある主なコードは次のとおりです:

background = Image.open(r"5.png")
graph = np.array(background)

次に、WorCloud にマスク パラメーターを追加します

# 使用WordCloud生成词云
word_cloud = WordCloud(font_path="simsun.ttc",# 设置词云字体
background_color="white", # 词云图的背景颜色
stopwords=stop_words, # 去掉的停词
mask=graph)
word_cloud.generate(text_cut)
word_cloud.to_file("1.png")

output

Python を使用していくつかのワード クラウド図を描画し、誰もが驚きました

詳細な最適化

さらに、別のモジュールによって描画されたワード クラウド マップもありますstylecloud. 非常にクールで、主に以下の機能を使用します。

gen_stylecloud(text=None,
icon_name='fas fa-flag',
colors=None,
palette='cartocolors.qualitative.Bold_5',
background_color="white",
max_font_size=200,
max_words=2000,
stopwords=True,
custom_stopwords=STOPWORDS,
output_name='stylecloud.png',
)

一般的に使用されるパラメータの一部は次のとおりです。

  • icon_name: ワード クラウド グラフの形状
  • max_font_size: 最大フォント サイズ
  • max_words: 収容できる単語の最大数
  • stopwords: 一般的なストップ ワードをフィルターするために使用されます
  • Custom_stopwords: セルフがある場合-構築されたストップワードリスト、使用できます
  • パレット: パレット

ワードクラウドチャートを描画してみましょう。コードは次のとおりです:

stylecloud.gen_stylecloud(text=text_cut,
 palette='tableau.BlueRed_6',
 icon_name='fas fa-apple-alt',
 font_path=r'田英章楷书3500字.ttf',
 output_name='2.png',
 stopwords=True,
 custom_stopwords=stop_words)

output

Python を使用していくつかのワード クラウド図を描画し、誰もが驚きました

palette パラメータはパレットとして使用され、任意に変更できます。詳細は https:// を参照してください。 jiffyclub.github.io/palettetable/ このウェブサイト。

pyecharts

最後に、Pyecharts モジュールを使用してワード クラウド図を描画する方法を見てみましょう。コードは次のとおりです。

from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
words = [
 ("皇帝", 10000),
 ("朱元璋", 6181),
 ("明朝", 4386),
 ("朝廷", 4055),
 ("明军", 2467),
 ("士兵", 2244),
 ("张居正", 1868),
 ("王守仁", 1281)
]
c = (
 WordCloud()
 .add("", words, word_size_range=[20, 100])
 .set_global_opts(title_opts=opts.TitleOpts(title="基本示例"))
 )
c.render("1.html")

出力

Python を使用していくつかのワード クラウド図を描画し、誰もが驚きました

結果は少し単純ですが、pyecharts の WordCloud() メソッドによって渡されるデータは、指定された単語とその頻度であることに注意してください。これは前の操作とは異なります

以上がPython を使用していくつかのワード クラウド図を描画し、誰もが驚きましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。