워드클라우드 색상 변경, 9개 색상, 파이썬 소스 제공

워드클라우드는 텍스트 데이터에서 단어의 빈도를 시각적으로 표현하는 멋진 방법 중 하나입니다. 이번에 소개할 코드는 텍스트 파일에서 단어 빈도를 분석하고, 선택한 색상으로 워드클라우드를 생성하는 프로그램입니다.  이 파이썬 소스 코드에서는 9개의 색상을 선택할 수 있으며, 커스텀 색상은 본인이 원하는 것으로 색상 변경이 가능합니다.

 

워드클라우드 색상 변경, 9개 색상

앞에서 설명한 것과 이번에 소개할 코드는 워드클라우드를 생성하되, 색상을 사용자가 선택하여 변경할 수 있는 기능을 추가하였으며, 총 9개의 색상 메뉴가 표시됩니다.  또한 커스텀 색상은 본인이 원하는 것을 지정할 수 있습니다.  이러한 기능을 활용하면 좀 더 다양한 워드클라우드를 만들 수 있습니다.

결과부터 설명하면, 이제 곧 출시되는 갤럭시S24 기사에 대한 워드클라우드를 아래와 같이 생성하였습니다.

워드클라우드 색상 변경
워드클라우드 색상 변경

 

이 워드클라우드 색상은 아래와 같은 메뉴에서 커스텀 색상으로 선택을 한 것 입니다.

워드클라우드 색상 변경 메뉴
워드클라우드 색상 변경 메뉴

 

< 워드클라우드 색상 변경, 9개 색상 파이썬 코드 >

import re

import matplotlib.pyplot as plt
from wordcloud import WordCloud
def generate_wordcloud_with_color(color):
    # 워드 클라우드 생성
    wordcloud = WordCloud(font_path=’C:/Windows/Fonts/malgun.ttf’,
                          background_color=color,
                          width=800,
                          height=600).generate_from_frequencies(word_counts)
    # 워드 클라우드를 화면에 표시
    plt.figure(figsize=(10, 8))
    plt.imshow(wordcloud, interpolation=’bilinear’)
    plt.axis(‘off’)
    plt.show()
# 텍스트 파일을 읽습니다 (utf-8 인코딩으로 지정)
with open(“wordcloud6.txt”, “r”, encoding=”utf-8″) as f:
    text = f.read()
# 문자열을 정규 표현식으로 분리합니다
words = re.split(r”\W+”, text)
# 문자열의 빈도수를 계산합니다
word_counts = {}
for word in words:
    if word not in word_counts:
        word_counts[word] = 1
    else:
        word_counts[word] += 1
while True:
    print(“\nChoose a color for the WordCloud:”)
    print(“1. White”)
    print(“2. Black”)
    print(“3. Red”)
    print(“4. Blue”)
    print(“5. Green”)
    print(“6. Yellow”)
    print(“7. Purple”)
    print(“8. Pink”)
    print(“9. Custom Color”)
    print(“0. Exit”)
    choice = input(“Enter your choice: “)
    if choice == ‘0’:
        print(“Exiting the program.”)
        break
    elif choice == ‘9’:
        custom_color = input(“Enter a custom color (e.g., ‘orange’, ‘#FF5733’): “)
        generate_wordcloud_with_color(custom_color)
    else:
        color_options = [‘white’, ‘black’, ‘red’, ‘blue’, ‘green’, ‘yellow’, ‘purple’, ‘pink’]
        try:
            color_choice = color_options[int(choice) – 1]
            generate_wordcloud_with_color(color_choice)
        except (ValueError, IndexError):
            print(“Invalid choice. Please enter a number between 1 and 9 or 0 to exit.”)

 

위의 코드는 크게 두 부분으로 나눌 수 있습니다. 첫 번째 부분은 텍스트 파일을 읽어와 단어의 빈도를 계산하는 부분이며, 두 번째 부분은 사용자에게 색상을 선택받아 워드클라우드를 생성하는 부분입니다.

텍스트 파일 읽기 및 빈도 계산, open 함수를 사용하여 “wordcloud6.txt” 파일을 utf-8 인코딩으로 읽어옵니다. 정규표현식을 활용하여 단어를 분리하고, 각 단어의 빈도를 계산합니다.

사용자에게 색상 선택받아 워드클라우드 생성, 무한 루프를 통해 사용자에게 색상 선택지를 제공하고, 선택에 따라 워드클라우드를 생성합니다. ‘0’을 입력하면 프로그램이 종료됩니다.

위 코드는 사용자 친화적인 인터페이스를 가지고 있어 파이썬 초보자도 쉽게 사용할 수 있습니다. ‘Custom Color’ 옵션을 통해 사용자가 직접 원하는 색상을 입력할 수도 있어 더욱 다양한 시각화를 가능케 합니다.

이제 텍스트 데이터를 시각적으로 탐험하고, 워드클라우드를 통해 특정 키워드들을 강조하는 방법에 대해 알게 되었습니다. 파이썬의 강력한 라이브러리를 활용하여 데이터 시각화의 즐거움을 느껴보세요.

워드클라우드 관련 글

위에서 워드클라우드 텍스트로 사용한 기사

결론

이 코드를 사용하면 텍스트 파일에서 단어 빈도를 분석하고, 사용자가 선택한 9가지 색상 또는 사용자 지정 색상으로 워드클라우드를 생성할 수 있습니다. 이를 통해 다양한 주제의 워드클라우드를 만들어내고, 사용자 친화적인 인터페이스를 통해 간편하게 시각화할 수 있습니다. 코드는 파이썬 초보자도 쉽게 사용할 수 있도록 설계되었으며, ‘Custom Color’ 옵션을 통해 더 많은 색상 선택이 가능하므로 사용자는 자신만의 독특한 시각화를 즐길 수 있습니다.