λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT/Python

[Python] 3. Daum λ‹€μŒ μ˜ν™” μ‚¬μ΄νŠΈ 데이터 μˆ˜μ§‘ 웹크둀링 (데이터 μ „μ²˜λ¦¬ 및 μ‹œκ°ν™” μ›ν˜• κ·Έλž˜ν”„)

by ITyranno 2023. 12. 12.
728x90
λ°˜μ‘ν˜•

 

 

 

 

 

 

 

ν”„λ‘œκ·Έλž˜λ° 세계λ₯Ό νƒκ΅¬ν•©μ‹œλ‹€.

 

 

 

 

 

 

 

 

1, 2νŽΈμ€ 이전 κ²Œμ‹œκΈ€ μ°Έκ³  λ°”λžλ‹ˆλ‹€.

 

2023.12.08 - [IT/Python] - [Python] 1. Daum λ‹€μŒ μ˜ν™” μ‚¬μ΄νŠΈ 데이터 μˆ˜μ§‘ 웹크둀링

 

[Python] 1. Daum λ‹€μŒ μ˜ν™” μ‚¬μ΄νŠΈ 데이터 μˆ˜μ§‘ 웹크둀링

ν”„λ‘œκ·Έλž˜λ° 세계λ₯Ό νƒκ΅¬ν•©μ‹œλ‹€. μˆ˜μ§‘λ°μ΄ν„° μ˜ν™”μ œλͺ©, 평점, λŒ“κΈ€ 생성할 데이터 긍정/λΆ€μ • URL https://movie.daum.net HOME Daumμ˜ν™”μ—μ„œ μžμ„Έν•œ λ‚΄μš©μ„ ν™•μΈν•˜μ„Έμš”! movie.daum.net λ‹€μŒμ˜ν™” > λž­ν‚Ή > λ°•μŠ€μ˜€

ityranno.tistory.com

 

 

2023.12.11 - [IT/Python] - [Python] 2. Daum λ‹€μŒ μ˜ν™” μ‚¬μ΄νŠΈ 데이터 μˆ˜μ§‘ 웹크둀링 (데이터 μ „μ²˜λ¦¬ 및 μ‹œκ°ν™” λ§‰λŒ€κ·Έλž˜ν”„, 점(뢄포) κ·Έλž˜ν”„)

 

[Python] 2. Daum λ‹€μŒ μ˜ν™” μ‚¬μ΄νŠΈ 데이터 μˆ˜μ§‘ 웹크둀링 (데이터 μ „μ²˜λ¦¬ 및 μ‹œκ°ν™” λ§‰λŒ€κ·Έλž˜ν”„, 점(

ν”„λ‘œκ·Έλž˜λ° 세계λ₯Ό νƒκ΅¬ν•©μ‹œλ‹€. 1νŽΈμ€ 이전 κ²Œμ‹œκΈ€ μ°Έκ³  λ°”λžλ‹ˆλ‹€. 2023.12.08 - [IT/Python] - [Python] 1. Daum λ‹€μŒ μ˜ν™” μ‚¬μ΄νŠΈ 데이터 μˆ˜μ§‘ 웹크둀링 [Python] 1. Daum λ‹€μŒ μ˜ν™” μ‚¬μ΄νŠΈ 데이터 μˆ˜μ§‘ 웹크둀

ityranno.tistory.com

 

 

 

 

 

 

 

<  Daum λ‹€μŒ μ˜ν™” μ‚¬μ΄νŠΈ λ°μ΄ν„° μˆ˜μ§‘ μ›Ήν¬λ‘€λ§ (데이터 μ „μ²˜λ¦¬ λ° μ‹œκ°ν™”)  >

 

 

 

 

 

 

μˆ˜μ§‘λ°μ΄ν„°

μ˜ν™”μ œλͺ©, 평점, λŒ“κΈ€

 


 μƒμ„±ν•  데이터

긍정/λΆ€μ •

 

 

 

 

 

URL

 

https://movie.daum.net

 

HOME

Daumμ˜ν™”μ—μ„œ μžμ„Έν•œ λ‚΄μš©μ„ ν™•μΈν•˜μ„Έμš”!

movie.daum.net

 

 

 

 

 

<  μ›ν˜• κ·Έλž˜ν”„ 그리기  >

 

 

 

 

긍정, λΆ€μ •, 기타에 λŒ€ν•œ μ›ν˜• κ·Έλž˜ν”„ μ‹œκ°ν™”ν•˜κΈ°

 

 

### 긍정, λΆ€μ •, 기타에 λŒ€ν•œ μ›ν˜• κ·Έλž˜ν”„ μ‹œκ°ν™”ν•˜κΈ°
# - λΉ„μœ¨μ΄ κ°€μž₯ 높은 경우 : pink색, λ‘λ²ˆμ§Έ : gold색, μ„Έλ²ˆμ§Έ : whitesmokeμƒ‰μœΌλ‘œ ν‘œν˜„
# - subplot μ‚¬μš©
fig, axs = plt.subplots(5, 2, figsize=(15,25))

axs = axs.flatten()

## λΉˆλ„ λΉ„μœ¨λ³„ 색상 μ •μ˜
colors = ["pink", "gold", "whitesmoke"]

### 라벨 μ •μ˜
labels_dict = {0 : "λΆ€μ •(1~4점)", 1 : "긍정(8~10점)", 2: "기타(5~7점)"}

### 평점 평균에 λŒ€ν•œ μ›ν˜• κ·Έλž˜ν”„ 그리기
for title, ax in zip(avg_score.keys(), axs) :
    ### μ˜ν™”λ³„ 건수 ν•„ν„°λ§ν•˜κΈ°
    num_reviews = len(df_new[df_new["title"]==title])
    # print(f"num_reviews = {num_reviews}")

    ### label 컬럼의 λ²”μ£Όλ³„λ‘œ 갯수 ν•„ν„°λ§ν•˜κΈ°
    values = df_new[df_new["title"]==title]["label"].value_counts()
    # print(f"values = {values

    ### μ›ν˜• κ·Έλž˜ν”„μ— ν‘œμ‹œν•  라벨값 μ •μ˜ν•˜κΈ°
    # - μ˜ν™”λ³„λ‘œ 긍정 λ˜λŠ” λΆ€μ • λ˜λŠ” 기타 쀑에 ν•˜λ‚˜λΌλ„ μ—†μœΌλ©΄ μ²˜λ¦¬κ°€ ν•„μš”ν•¨
    label_list = df_new[df_new["title"]==title]["label"].unique()
    labels = []
    for k in label_list :
        ### μ˜ν™”λ³„ μ‹€μ œ μ‘΄μž¬ν•˜λŠ” 긍정/λΆ€μ •/기타 라벨 μ •μ˜ν•˜κΈ°
        labels.append(labels_dict[k])

    ### 각 κ·Έλž˜ν”„ 제λͺ© λ„£κΈ°
    ax.set_title(f"{title} ({num_reviews}λͺ…)", fontsize=15)

    ### μ›ν˜•(pie) κ·Έλž˜ν”„ 그리기
    ax.pie(values,
           # μ›ν˜•κ·Έλž˜ν”„μ— ν‘œμ‹œν•  라벨 지정
           labels = labels,
           # μ›ν˜• κ·Έλž˜ν”„μ— ν‘œμ‹œν•  κ°’μ˜ μ†Œμˆ«μ  자리수 지정
           autopct = "%1.1f%%",
           # μ›ν˜• κ·Έλž˜ν”„ 각 μ˜μ—­μ˜ 색상 지정
           colors=colors,
           # 그림자 효과 μ§€μ •ν•˜κΈ°
           shadow=True,
           # κ·Έλž˜ν”„μ˜ μ‹œμž‘μœ„μΉ˜λ₯Ό 12μ‹œ λ°©ν–₯으둜
           startangle=90)

### 이미지 μ €μž₯ν•˜κΈ°
plt.savefig("./img/긍정_λΆ€μ •_μ›ν˜•κ·Έλž˜ν”„_μ‹œκ°ν™”.png")

plt.show()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

μ΅œμ’… μ „μ²˜λ¦¬λœ λ°μ΄ν„°λŠ” 파일둜 κ΄€λ¦¬ν•˜κΈ°

 

### μ΅œμ’… μ „μ²˜λ¦¬λœ λ°μ΄ν„°λŠ” 파일둜 κ΄€λ¦¬ν•˜κΈ°
# - 파일λͺ… df_new.csv, μΈλ±μŠ€λŠ” ν¬ν•¨ν•˜μ§€ μ•ŠκΈ°
# - μ €μž₯ μœ„μΉ˜ : data 폴더
df_new.to_csv("./data/df_new.csv" , index=False)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
λ°˜μ‘ν˜•

loading