0

pytagcloudを使用して、Python でワード クラウドを作成しようとしています。今の雲なら雲を生成できますが、単語はすべて同じサイズです。単語のサイズが頻度に応じて表示されるようにコードを変更するにはどうすればよいですか?

私のテキストファイルには、それぞれの頻度カウントが既に含まれている単語が既に含まれています。形式は、「ジョージ、44」改行「ハロルド、77」、改行、「アンドリュー、22」、改行などです。言葉、それはまたそれと一緒に頻度を表示します。

with open ("MyText.txt", "r") as file:
   Data =file.read().replace('\n', '')

tags = make_tags(get_tag_counts(Data), maxsize=150)

create_tag_image(tags, 'Sample.png', size=(1200, 1200),background=(0, 0, 0, 255),  fontname='Lobstero', rectangular=True)

import webbrowser
webbrowser.open('Sample.png')
4

1 に答える 1

2

結果をタプルにキャストする必要があります。質問を入力テキストとして使用すると、期待される結果が得られます。

from pytagcloud import create_tag_image, make_tags
from pytagcloud.lang.counter import get_tag_counts

TEXT = '''I am trying to create a word cloud in python. With my current cloud, I can generate a cloud, but the words all are the same size. How can I alter the code so that my words' sizes appear in relation to their frequency?'''

counts = get_tag_counts(TEXT)
tags = make_tags(counts, maxsize=120)
create_tag_image(tags, 'cloud_large.png', size=(900, 600), fontname='Lobster')

ここに画像の説明を入力

変数を見る価値がありますcounts:

[('cloud', 3), 
('words', 2), 
('code', 1), 
('word', 1), 
('appear', 1), ...

これは単なるタプルのリストです。入力テキスト ファイルにはタプルのリストが含まれているため、その情報を に渡すだけですmake_tags

編集:このようなファイルを読むことができます

counts = []
with open("tag_file.txt") as FIN:
   for line in FIN:
       # Assume lines look like: word, number
       word,n = line.strip().split()
       word = word.replace(',','')
       counts.append([word,int(n)])
于 2015-03-25T19:23:26.750 に答える