[Act as an expert python visualization developer]

Add these functionalities to the code given below:

1. Add bar plots wherever line plots have been given. Use color as green.
2. Add stopwords distribution bar plot.
2. Add bar plot to Part of speech tagging and counts.
3. Add bar plot for Word and character counts by category
2. Give wordcloud plots side by side

code:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word\_tokenize
from nltk.probability import FreqDist
from wordcloud import WordCloud

# Load the text data set as a Pandas DataFrame
df = pd.read\_csv("cleaned\_df\_20.csv", encoding='ISO-8859-1')

# 1. Descriptive statistics
print(df.describe(include='object'))

print("\n")
print("=======================================================")
print("\n")

df['text\_data']=df['Description']

# 2. Word count, word length, character count, and length

print('Description variable: Word count, word length, character count, and length')
print("\n")
df['word\_count'] = df['text\_data'].apply(lambda x: len(str(x).split()))
df['word\_length'] = df['text\_data'].apply(lambda x: np.mean([len(word) for word in x.split()]))
df['char\_count'] = df['text\_data'].apply(lambda x: len(str(x)))
#df['length'] = df['text\_data'].apply(lambda x: len(str(x).split()))
print(df[['word\_count', 'word\_length', 'char\_count']].describe())

print("\n\n")
print("=======================================================")
print("\n")

# 3. Part of speech tagging and counts

print('Part of speech tagging and counts for Description variable')
print("\n")
nltk.download('averaged\_perceptron\_tagger')
df['pos\_tags'] = df['text\_data'].apply(lambda x: nltk.pos\_tag(word\_tokenize(x)))
tag\_counts = {}
for row in df['pos\_tags']:
 for word, tag in row:
 if tag not in tag\_counts:
 tag\_counts[tag] = 1
 else:
 tag\_counts[tag] += 1
print(tag\_counts)

print("\n")
print("=======================================================")
print("\n")

# 4. 20 most common words and plot

stop\_words = set(stopwords.words('english'))
df['text\_data'] = df['text\_data'].apply(lambda x: ' '.join([word for word in x.split() if word.lower() not in stop\_words]))
fdist = FreqDist(df['text\_data'].str.cat(sep=' ').split())
print('20 most common words for Description variable ')
print("\n")
print(fdist.most\_common(20))
print("\n")
print('20 most common Words distribution plot for Description variable ')
fdist.plot(20)

print("\n")
print("=======================================================")

# 5. Rare words distribution and plot
rare\_words = fdist.hapaxes()
print('count of rare word: {}'.format(len(rare\_words)))
print("\n")
print('Rare words distribution plot for Description variable ')
fdist\_rare = FreqDist(rare\_words)
fdist\_rare.plot(20)

print("\n")
print("=======================================================")

# 6. Word and character counts by category
print('Word and character counts by category for Description variable ')
print("\n")
category\_counts = df.groupby('Category').agg({'word\_count': 'sum', 'char\_count': 'sum'})
print(category\_counts)

print("\n")
print("=======================================================")
print("\n")

# 7. Word cloud for each category

print('Category wise Wordcloud ')
print("\n")

categories = df['Category'].unique()
for category in categories:
 text = ' '.join(df[df['Category'] == category]['text\_data'].tolist())
 wordcloud = WordCloud(width = 800, height = 800, 
 background\_color ='white', 
 stopwords = stop\_words, 
 min\_font\_size = 10).generate(text) 
 plt.figure(figsize = (8, 8), facecolor = None) 
 plt.imshow(wordcloud) 
 plt.axis("off") 
 plt.tight\_layout(pad = 0) 
 plt.title(category)
 plt.show()
전문 파이썬 시각화 개발자처럼 행동하기]

아래 코드에 다음 기능을 추가합니다:

1. 선 플롯이 주어진 곳에 막대 플롯을 추가합니다. 색상은 녹색을 사용합니다.
2. 중지어 분포 막대 그래프를 추가합니다.
2. 품사 태그 및 개수에 막대 그래프를 추가합니다.
3. 카테고리별 단어 및 문자 수에 막대 그래프 추가하기
2. 워드클라우드 플롯을 나란히 배치합니다.

코드:

임포트 팬더로 PD
numpy를 np로 가져옵니다.
matplotlib.pyplot을 plt로 가져옵니다.
seaborn을 sns로 가져옵니다.
import nltk
nltk.corpus에서 스톱워드 가져오기
nltk.tokenize에서 단어\_tokenize를 가져옵니다.
nltk.probability에서 FreqDist를 가져옵니다.
워드클라우드에서 워드클라우드 가져오기

# 텍스트 데이터 세트를 판다스 데이터 프레임으로 로드합니다.
df = pd.read\_csv("cleaned\_df\_20.csv", encoding='ISO-8859-1')

# 1. 설명 통계
print(df.describe(include='object'))

print("\n")
print("=======================================================")
print("\n")

df['text\_data']=df['설명']

# 2. 단어 수, 단어 길이, 문자 수 및 길이

print('설명 변수: 단어 수, 단어 길이, 문자 수 및 길이')
print("\n")
df['word\_count'] = df['text\_data'].apply(lambda x: len(str(x).split()))
df['word\_length'] = df['text\_data'].apply(lambda x: np.mean([len(word) for word in x.split()])))
df['char\_count'] = df['text\_data'].apply(lambda x: len(str(x)))
#df['length'] = df['text\_data'].apply(lambda x: len(str(x).split()))
print(df[['word\_count', 'word\_length', 'char\_count']].describe())

print("\n\n")
print("=======================================================")
print("\n")

# 3. 품사 태깅 및 개수

print('설명 변수에 대한 품사 태깅 및 개수')
print("\n")
nltk.download('평균\_퍼셉트론\_tagger')
df['pos\_tags'] = df['text\_data'].apply(lambda x: nltk.pos\_tag(word\_tokenize(x)))
tag\_counts = {}
for row in df['pos\_tags']:
 단어의 경우 행의 태그:
 tag\_counts에 없는 경우
 tag\_counts[tag] = 1
 else:
 tag\_counts[tag] += 1
print(tag\_counts)

print("\n")
print("=======================================================")
print("\n")

# 4. 가장 일반적인 단어 20개와 플롯

stop\_words = set(stopwords.words('english'))
df['text\_data'] = df['text\_data'].apply(lambda x: ' '.join([word for word in x.split() if word.lower() not in stop\_words]))
fdist = FreqDist(df['text\_data'].str.cat(sep=' ').split()))
print('설명 변수에 대한 가장 일반적인 단어 20개')
print("\n")
print(fdist.most\_common(20))
print("\n")
print('Description 변수에 대한 가장 일반적인 단어 20개 분포도')
fdist.plot(20)

print("\n")
print("=======================================================")

# 5. 희귀 단어 분포 및 플롯
rare\_words = fdist.hapaxes()
print('희귀 단어 수: {}'.format(len(rare\_words)))
print("\n")
print('설명 변수에 대한 희귀 단어 분포도')
fdist\_rare = FreqDist(rare\_words)
fdist\_rare.plot(20)

print("\n")
print("=======================================================")

# 6. 카테고리별 단어 및 문자 수
print('설명 변수에 대한 범주별 단어 및 문자 수 ')
print("\n")
category\_counts = df.groupby('Category').agg({'word\_count': 'sum', 'char\_count': 'sum'})
print(category\_counts)

print("\n")
print("=======================================================")
print("\n")

# 7. 각 카테고리에 대한 워드 클라우드

print('카테고리별 워드클라우드')
print("\n")

categories = df['Category'].unique()
카테고리의 카테고리에 대해
 text = ' '.join(df[df['Category'] == category]['text\_data'].tolist())
 워드클라우드 = 워드클라우드(너비 = 800, 높이 = 800, 
 background\_color ='white', 
 중지 단어 = 중지\_words, 
 min\_font\_size = 10).generate(text) 
 plt.figure(figsize = (8, 8), facecolor = None) 
 plt.imshow(워드클라우드) 
 plt.axis("off") 
 plt.tight\_layout(pad = 0) 
 plt.title(category)
 plt.show()