์†Œ์…œ๋กœ๊ทธ์ธ ์ค‘๋‹จ ์•ˆ๋‚ด

๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์ด 2023๋…„ 11์›” 16์ผ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„์ด๋ณด์Šค ๊ณ„์ •์ด ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์€ ์ ˆ๋Œ€ ์•„๋‹ˆ๋ฉฐ, ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•ด ๋กœ๊ทธ์ธ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ–ถ๏ธ ์ž์„ธํ•œ ๊ณต์ง€์‚ฌํ•ญ ํ™•์ธ

๋ฐ์ดํ„ฐ ์ง๋ฌด ๋‰ด์Šค๋ ˆํ„ฐ '๋ฐ์„ ๋ฐฐ๋“ค'ยท338ยท2025. 01. 24

๐Ÿ“‘ ์›Œ๋“œํด๋ผ์šฐ๋“œ๋กœ ๋Œ์•„๋ณด๋Š” 2024 ์‚ฌํšŒ ์ด์Šˆ!

[๋‰ด์Šค๋ฐ์ดํ„ฐ๋กœ ์ฝ˜ํ…์ธ  ์ œ์ž‘ํ•ด๋ณด๊ธฐ, ๋น…์นด์ธ์ฆˆ]

์•ˆ๋…•ํ•˜์„ธ์š”, ๋‰ด์Šค๋ ˆํ„ฐ '๋ฐ์„ ๋ฐฐ๋“ค'์ž…๋‹ˆ๋‹ค!


์ด๋ฒˆ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ง›๋ณด๊ธฐ์—์„œ๋Š” ์ƒˆํ•ด๋ฅผ ๋งž์•„ ์กฐ๊ธˆ ํŠน๋ณ„ํ•œ ์ฃผ์ œ๋ฅผ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋‰ด์Šค ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด ์ฝ˜ํ…์ธ ๋ฅผ ์ œ์ž‘ํ•ด๋ณด๋Š” ์—ญ๋Ÿ‰์„ ๊ธฐ๋ฅด๊ณ  ์‹ถ๋‹ค๋ฉด ์˜ค๋Š˜ ๋‚ด์šฉ ์ฃผ๋ชฉํ•ด์ฃผ์„ธ์š”!


๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์Šคํ‚ฌ,

๋ฐ์ดํ„ฐ ๊ด€๋ จ ์ง๋ฌด์— ์ข…์‚ฌํ•˜๊ณ  ์žˆ๋Š” ํ˜„์ง์ž ์ธํ„ฐ๋ทฐ๊ฐ€ ๊ถ๊ธˆํ•˜์‹œ๋‹ค๋ฉด

ํ•˜๋‹จ ํ”„๋กœํ•„์—์„œ ๋‰ด์Šค๋ ˆํ„ฐ ๋ฒ„ํŠผ์„ ํด๋ฆญ ํ•ด์ฃผ์„ธ์š”๐Ÿ’Œ 



2024๋…„์—๋Š” ์–ด๋–ค ์ผ์ด ์žˆ์—ˆ์ง€?๐Ÿค”
์›Œ๋“œํด๋ผ์šฐ๋“œ๋กœ ๋Œ์•„๋ณด๋Š” 2024 ์‚ฌํšŒ ์ด์Šˆ!

๊ตญ๋‚ด ์ตœ๋Œ€ ๋‰ด์Šค ๋ถ„์„ ์„œ๋น„์Šค, โ€˜๋น…์นด์ธ์ฆˆโ€™

๋น…์นด์ธ์ฆˆ๋Š” ๊ตญ๋‚ด ์ตœ๋Œ€์˜ ๊ธฐ์‚ฌDB์— ๋น…๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ธฐ์ˆ ์„ ์ ‘๋ชฉํ•œ ์ƒˆ๋กœ์šด ๋‰ด์Šค ๋ถ„์„ ์„œ๋น„์Šค์˜ˆ์š”. ๊ตญ๋‚ด 54๊ฐœ ์–ธ๋ก ์‚ฌ์˜ ๋‰ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ , ํŠน์ • ํ‚ค์›Œ๋“œ๊ฐ€ ๋‰ด์Šค ์†์—์„œ ์–ด๋–ค ์ธ๋ฌผ๊ณผ ์žฅ์†Œ์™€ ํ•จ๊ป˜ ์–ธ๊ธ‰๋˜๋Š”์ง€ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์š”. ํŠน์ • ์ฃผ์ œ๋‚˜ ์ธ๋ฌผ๊ณผ ๊ด€๋ จํ•ด ๋‰ด์Šค ์† ๋ฐœ์–ธ ๋นˆ๋„์™€ ๊ด€๊ณ„๋„๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ์›Œ๋“œํด๋ผ์šฐ๋“œยทํŠธ๋ Œ๋“œ ์ฐจํŠธ ๋“ฑ ์‹œ๊ฐํ™”๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.




์›Œ๋“œํด๋ผ์šฐ๋“œ๋กœ ๋Œ์•„๋ณด๋Š” 2024 ์‚ฌํšŒ ์ด์Šˆ!


ํ•œ๊ตญPRํ˜‘ํšŒ๊ฐ€ 2024๋…„์„ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ โ€˜์˜ฌํ•ด์˜ ์†Œํ†ต ํ‚ค์›Œ๋“œ TOP 10โ€™์„ ๋ฐœํ‘œํ–ˆ์–ด์š”. ์ด ํ‚ค์›Œ๋“œ๋งŒ ๋ด๋„ 2024๋…„์— ์–ด๋–ค ์ผ์ด ์žˆ์—ˆ๋Š”์ง€ ํ•œ๋ˆˆ์— ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”.

ํ‚ค์›Œ๋“œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํŠธ๋ Œ๋“œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ ํ™œ์šฉ ์ง๋ฌด์— ํ•œ ๊ฑธ์Œ ๋‹ค๊ฐ€๊ฐˆ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ์š”?


๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ ํ‚ค์›Œ๋“œ๋ฅผ ํ™œ์šฉํ•ด ๐Ÿ”Ž์›Œ๋“œํด๋ผ์šฐ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๋ ค๊ณ  ํ•ด์š”!


์›Œ๋“œํด๋ผ์šฐ๋“œ๋Š” ๋‹จ์–ด์˜ ๋“ฑ์žฅ ๋นˆ๋„์— ๋”ฐ๋ผ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ด, ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ๋‹จ์–ด๋Š” ๋” ํฌ๊ฒŒ, ๋œ ๋“ฑ์žฅํ•˜๋Š” ๋‹จ์–ด๋Š” ๋” ์ž‘๊ฒŒ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์Šคํ‚ฌ์ด์—์š”.


๐Ÿ’ก ์—ฌ๊ธฐ์„œ ์ž ๊น, ์ธ๊ณต์ง€๋Šฅ(AI)์ด 1์œ„๋ฅผ ์ฐจ์ง€ํ–ˆ๋„ค์š”! ์ธ๊ณต์ง€๋Šฅ์ด ํฌ๊ฒŒ ๋ฐœ์ „ํ•˜๋ฉฐ 2024๋…„์— ๋งŽ์€ ๊ด€์‹ฌ์„ ๋ฐ›์•˜์ฃ . 
'๋ฐ์„ ๋ฐฐ๋“ค'์—์„œ๋„ ๋ ˆํ„ฐ์— ์ƒ์„ฑํ˜• AI์™€ ๊ด€๋ จํ•œ ๋‚ด์šฉ์„ ์ž์„ธํžˆ ๋‹ค๋ฃจ์—ˆ๋‹ต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ ์ธ๊ณต์ง€๋Šฅ์„ ์ œ์™ธํ•˜๊ณ  2024๋…„์— ์ผ์–ด๋‚œ ์‚ฌํšŒ์  ์ด์Šˆ์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฃจ์–ด๋ณด๋ ค๊ณ  ํ•ด์š”.
์ธ๊ณต์ง€๋Šฅ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•œ ๋ฐํ›„๋ฐฐ๋“ค์€ โ€˜๐Ÿ’ป ๋ฌธ๊ณผ๋„ Chat GPT๋กœ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?๐Ÿค“โ€™ ํšŒ์ฐจ๋ฅผ ํ•œ ๋ฒˆ ์ฝ์–ด๋ณด์„ธ์š”!


'๋ฐ์„ ๋ฐฐ๋“ค'์—์„œ๋Š” ์˜ฌํ•ด์˜ ์†Œํ†ต ํ‚ค์›Œ๋“œ 2์œ„์ธ โ€˜์˜๋ฃŒ๋Œ€๋ž€โ€™์„ ํ™œ์šฉํ•ด ์›Œ๋“œํด๋ผ์šฐ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋ดค์š”.


โ€˜์ •๋ถ€โ€™, โ€˜์˜๋Œ€โ€™, โ€˜์‘๊ธ‰์‹คโ€™, โ€˜์ „๊ณต์˜โ€™, โ€˜์ง‘๋‹จํ–‰๋™โ€™๊ณผ ๊ฐ™์€ ํ‚ค์›Œ๋“œ๊ฐ€ ๋ˆˆ์— ๋„๋Š”๋ฐ์š”!

ํ•ด๋‹น ํ‚ค์›Œ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์‹์œผ๋กœ ๋‰ด์Šค ์ฝ˜ํ…์ธ ๋ฅผ ํ•ด์„ํ•˜๋ฉด, ์˜๋ฃŒ๋Œ€๋ž€ ์ด์Šˆ๋ฅผ ํ•œ ์ธต ๋” ๊นŠ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ ?

๋ฐ์ดํ„ฐ ๋น„์ „๊ณต์ž๋„ ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๋‹ค ํ•จ๊ป˜ ๋„์ „ํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š” :)



ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋Š” ๋‰ด์Šค ๋น…๋ฐ์ดํ„ฐ ๋ถ„์„ ํ”Œ๋žซํผ โ€˜๋น…์นด์ธ์ฆˆ(Bigkinds)โ€™์—์„œ ๋‚ด๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ์›Œ๋“œํด๋ผ์šฐ๋“œ๋Š” ํŒŒ์ด์ฌ(Python) ํ™˜๊ฒฝ์—์„œ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

ํŒŒ์ด์ฌ์€ ์ฝ”๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ํŒŒ์ด์ฌ ํ™˜๊ฒฝ์ด๋ผ๊ณ  ํ•ด์š”.

์ด๋ฒˆ์—” ๊ตฌ๊ธ€ ์ฝ”๋žฉ(Google Colab)์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ด๋“œ๋ฆด๊ฒŒ์š”!


์˜ค๋Š˜์˜ ๋กœ๋“œ๋งต

โœ… ๋ฐ์ดํ„ฐ์…‹ ๋‹ค์šด๋ฐ›๊ธฐ

โœ… ์›Œ๋“œํด๋ผ์šฐ๋“œ ์ƒ์„ฑํ•˜๊ธฐ

  • ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
  • ํ‚ค์›Œ๋“œ ์ปฌ๋Ÿผ ์ถ”์ถœํ•˜๊ธฐ
  • ๋ถˆ์šฉ์–ด ์ œ๊ฑฐํ•˜๊ธฐ
  • ํ•œ๊ธ€ ํฐํŠธ ์„ค์น˜ํ•˜๊ธฐ
  • ์›Œ๋“œํด๋ผ์šฐ๋“œ ์ƒ์„ฑํ•˜๊ธฐ

โœ… Mask ์ ์šฉํ•˜๊ธฐ




๋ฐ์ดํ„ฐ์…‹ ๋‹ค์šด๋ฐ›๊ธฐ

1๏ธโƒฃ ๋‰ด์Šค๋ถ„์„ ์นดํ…Œ๊ณ ๋ฆฌ์˜ โ€˜๋‰ด์Šค๊ฒ€์ƒ‰ยท๋ถ„์„โ€™ ํด๋ฆญ


    2๏ธโƒฃ ๋‰ด์Šค ๊ฒ€์ƒ‰์— ์›ํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅ

    ์ €ํฌ๋Š” ํ•œ๊ตญPRํ˜‘ํšŒ์˜ ์˜ฌํ•ด์˜ ์†Œํ†ต ํ‚ค์›Œ๋“œ 2์œ„ โ€˜์˜๋ฃŒ๋Œ€๋ž€โ€™์„ ์ž…๋ ฅํ–ˆ์–ด์š”.

    3๏ธโƒฃ โ€˜๊ธฐ๊ฐ„โ€™ ์„ค์ •

    ์ €ํฌ๋Š” 2024๋…„ 4๋ถ„๊ธฐ ํŠธ๋ Œ๋“œ ํŒŒ์•…์„ ์œ„ํ•ด, ๊ธฐ๊ฐ„์€ โ€˜3๊ฐœ์›”โ€™๋กœ ์„ค์ •ํ–ˆ์–ด์š”.


    ๐Ÿ“ข ๋น„ํšŒ์›์€ 3๊ฐœ์›”๊นŒ์ง€ ๊ธฐ๊ฐ„ ์„ค์ • ๊ฐ€๋Šฅํ•˜๊ณ  ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋ฉด 1๋…„๊นŒ์ง€ ๊ฐ€๋Šฅํ•ด์š”. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•˜๋‹ต๋‹ˆ๋‹ค!


    4๏ธโƒฃ โ€˜์–ธ๋ก ์‚ฌโ€™ ํ•„ํ„ฐ๋ง

    ๊ตญ๋‚ด 54๊ฐœ ์–ธ๋ก ์‚ฌ ์ค‘ ์›ํ•˜๋Š” ๋งค์ฒด์˜ ๊ธฐ์‚ฌ๋งŒ์„ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์–ด์š”.


    5๏ธโƒฃ โ€˜ํ†ตํ•ฉ ๋ถ„๋ฅ˜โ€™ ์„ ํƒ

    ์›ํ•˜๋Š” ๋ถ„๋ฅ˜๋ฅผ ํ•„ํ„ฐ๋ง ํ•ด ๊ธฐ์‚ฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”. ๊ผญ ํ•„์š”ํ•œ ๊ธฐ์‚ฌ๋งŒ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด โ€˜์ •์น˜โ€™, โ€˜๊ฒฝ์ œโ€™ ๋ถ„๋ฅ˜๋งŒ ์ฒดํฌํ–ˆ์–ด์š”.


    6๏ธโƒฃ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํ™•์ธ

    ๋‰ด์Šค ๊ฒ€์ƒ‰ ์„ค์ •์„ ๋๋‚ธ ํ›„ โ€˜์ ์šฉํ•˜๊ธฐโ€™๋ฅผ ํด๋ฆญํ•˜๋ฉด ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™€์š”.


    7๏ธโƒฃ โ€˜๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œโ€™ํ•˜๊ธฐ

    โ€˜๋ถ„์„ ๊ฒฐ๊ณผ ๋ฐ ์‹œ๊ฐํ™”โ€™๋ฅผ ํด๋ฆญ ํ›„, ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ โ€˜์—‘์…€ ๋‹ค์šด๋กœ๋“œโ€™๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ผ์ž, ์–ธ๋ก ์‚ฌ, ๊ธฐ๊ณ ์ž, ์ œ๋ชฉ, ํ‚ค์›Œ๋“œ, ํŠน์„ฑ์ถ”์ถœ(๊ฐ€์ค‘์น˜ ์ƒ์œ„ 50๊ฐœ), ๋ณธ๋ฌธ ๋“ฑ ๋ถ„๋ฅ˜๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์—‘์…€ ํŒŒ์ผ๋กœ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š”.


    ์›Œ๋“œํด๋ผ์šฐ๋“œ ์ƒ์„ฑํ•˜๊ธฐ

    • ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

    ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋Š” csv ํŒŒ์ผ๋กœ ์ €์žฅํ•ด์„œ ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ์— ์˜ฎ๊ฒจ ์ฃผ์„ธ์š”.


    * ๋“œ๋ผ์ด๋ธŒ ๋งˆ์šดํŠธํ•˜๊ธฐ (๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ์™€ ๊ตฌ๊ธ€ ์ฝ”๋žฉ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค)

    from google.colab import drive
    
    drive.mount('/content/drive')

    * ์—‘์…€ ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

    import pandas as pd
    
    df = pd.read_csv("๋ฐ์ดํ„ฐ์…‹ ํŒŒ์ผ๊ฒฝ๋กœ")


    • ํ‚ค์›Œ๋“œ ์ปฌ๋Ÿผ ์ถ”์ถœํ•˜๊ธฐ

    ๋ฐ์ดํ„ฐ์…‹ ์•ˆ์˜ ํ‚ค์›Œ๋“œ ์ปฌ๋Ÿผ์„ ์ถ”์ถœํ•ด์„œ ๊ฐ๊ฐ์˜ ํ‚ค์›Œ๋“œ๋ฅผ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ €์žฅํ•  ๊ฑฐ์˜ˆ์š”.

    # 'ํ‚ค์›Œ๋“œ' ์ปฌ๋Ÿผ๋งŒ ์ถ”์ถœ (NaN์ด ์žˆ์„ ๊ฒฝ์šฐ ์ œ๊ฑฐ)

    keywords = df['ํ‚ค์›Œ๋“œ'].dropna()


    # ๊ฐ ํ–‰๋งˆ๋‹ค ํ‚ค์›Œ๋“œ๋ฅผ ๊ตฌ๋ถ„์ž(์˜ˆ: ์‰ผํ‘œ)๋กœ ๋‚˜๋ˆ„์–ด tokens ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€

    tokens = []

    for row in keywords:

    # ์‰ผํ‘œ(,)๋ฅผ ๊ธฐ์ค€์œผ๋กœ split

    split_words = row.split(',')

    # ๋ถ„๋ฆฌ๋œ ํ† ํฐ๋“ค์„ tokens ๋ฆฌ์ŠคํŠธ์— ํ™•์žฅ

    tokens.extend(split_words)

    print(tokens[:50]) # ์ž˜ ๋“ค์–ด๊ฐ”๋Š”์ง€ ์ƒ์œ„ 50๊ฐœ ์ •๋„๋งŒ ํ™•์ธ


    • ๋ถˆ์šฉ์–ด ์ œ๊ฑฐํ•˜๊ธฐ

    ๋ถˆ์šฉ์–ด๋ž€ ๋ถ„์„์— ํฐ ์˜๋ฏธ๊ฐ€ ์—†๋Š” ๋‹จ์–ด๋“ค์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

    from collections import Counter


    # ๋ถˆ์šฉ์–ด ๋ฆฌ์ŠคํŠธ ์ •์˜

    stopwords = ['์˜๋ฃŒ','์˜์‚ฌ','์ง„๋ฃŒ','๊ต์ˆ˜','์ „๊ณต','๋ณ‘์›','์˜๋ฃŒ๋Œ€๋ž€','์˜์‚ฌ๋“ค','๋Œ€ํ•™','ํ˜„์žฅ','์ƒํ™ฉ','์ด๋‚ ','๋ณด๊ฑด']


    # ๋ถˆ์šฉ์–ด๋ฅผ tokens์—์„œ ์ œ๊ฑฐ

    filtered_tokens = [token for token in tokens if token not in stopwords]


    # ๋ถˆ์šฉ์–ด๊ฐ€ ์ œ๊ฑฐ๋œ ํ›„์˜ ํ‚ค์›Œ๋“œ ์นด์šดํŠธ

    filtered_nouns_counter = Counter(filtered_tokens)

    ์ด์ œ๋ถ€ํ„ฐ ์›Œ๋“œํด๋ผ์šฐ๋“œ ์ƒ์„ฑ์— filtered_nouns_counter๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ˆ ์ฃผ์˜ํ•ด์ฃผ์„ธ์š”!


    • ํ•œ๊ธ€ ํฐํŠธ ์„ค์น˜ํ•˜๊ธฐ

    ์›Œ๋“œํด๋ผ์šฐ๋“œ๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„  ํ•œ๊ธ€ ํฐํŠธ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ด์š”. ํŒŒ์ด์ฌ์˜ ์›Œ๋“œํด๋ผ์šฐ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ•œ๊ธ€์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

    # 1) ๋‚˜๋ˆ” ๊ธ€๊ผด ์„ค์น˜

    !apt-get update -qq

    !apt-get install fonts-nanum -qq


    # 2) ํฐํŠธ ๋งค๋‹ˆ์ €์— ํฐํŠธ ๋“ฑ๋ก

    import matplotlib.font_manager as fm

    import matplotlib.pyplot as plt


    font_files = fm.findSystemFonts(fontpaths=['/usr/share/fonts/truetype/nanum'])

    for font_file in font_files:

    fm.fontManager.addfont(font_file)


    # 3) wordcloud์— ์‚ฌ์šฉํ•  ํฐํŠธ ์„ค์ •

    plt.rc('font', family='NanumGothic') # or 'NanumBarunGothic'


    • ์›Œ๋“œํด๋ผ์šฐ๋“œ ์ƒ์„ฑ

    # ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž„ํฌํŠธ

    from wordcloud import WordCloud, STOPWORDS

    from collections import Counter

    import matplotlib.pyplot as plt


    # ์›Œ๋“œํด๋ผ์šฐ๋“œ ๊ฐ์ฒด ์ƒ์„ฑ

    wc = WordCloud(

    width=3000,

    height=2000,

    random_state=1,

    background_color='white',

    colormap='Set2',

    collocations=False,

    font_path='./font/NanumBarunGothic.ttf' # ํฐํŠธ ๊ฒฝ๋กœ (๋ณธ์ธ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ˆ˜์ •)

    )


    # filtered_nouns_counter์˜ ๋‹จ์–ด-๋นˆ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์›Œ๋“œํด๋ผ์šฐ๋“œ ์ƒ์„ฑ

    wc.generate_from_frequencies(filtered_nouns_counter)


    # ์›Œ๋“œํด๋ผ์šฐ๋“œ ์‹œ๊ฐํ™”

    plt.figure(figsize=(12, 12))

    plt.imshow(wc, interpolation='bilinear')

    plt.axis("off")

    plt.show()


    • ๊ฒฐ๊ณผ


    โ€˜์˜๋ฃŒ๋Œ€๋ž€โ€™ ํ‚ค์›Œ๋“œ ๊ด€๋ จ ๋‰ด์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•œ ์›Œ๋“œํด๋ผ์šฐ๋“œ์ž…๋‹ˆ๋‹ค.


    ์›Œ๋“œํด๋ผ์šฐ๋“œ๋ฅผ ๋ณด๋‹ค ์ฐฝ์˜์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ์š”?


    Mask ์ ์šฉํ•˜๊ธฐ


    ์ฒญ์ง„๊ธฐ ์•„์ด์ฝ˜์„ ์ด์šฉํ•ด์„œ ์›Œ๋“œํด๋ผ์šฐ๋“œ๋ฅผ ์ฒญ์ง„๊ธฐ ๋ชจ์–‘์œผ๋กœ ๋งŒ๋“ค์–ด๋ณผ ๊ฑฐ์˜ˆ์š”. ์ด์ฒ˜๋Ÿผ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•ด ์›Œ๋“œํด๋ผ์šฐ๋“œ์˜ ํ˜•ํƒœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •์„ โ€˜๋งˆ์Šคํฌ ์ ์šฉโ€™์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ต๋‹ˆ๋‹ค.


    ๋งˆ์Šคํฌ๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋ฏธ์ง€์— '์ˆœ๋ฐฑ์ƒ‰'(white)์— ๋Œ€ํ•œ array ๋ณ€ํ™˜ ๊ฐ’ "255" ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ด์š”. ๊ทธ๋ ‡์ง€ ๋ชปํ•œ ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ์—๋Š” Numpy๋ฅผ ์ด์šฉํ•ด "0" ๊ฐ’์„ "255"๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.


    • ์ˆ˜์ • ํ›„

    import numpy as np

    from PIL import Image


    # mask ์ ์šฉํ•  ์ด๋ฏธ์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ

    mask = np.array(Image.open("์ด๋ฏธ์ง€ ํŒŒ์ผ ๊ฒฝ๋กœ"))

    mask


    • ๊ฒฐ๊ณผ

    array([[[0, 0, 0, 0],

    [0, 0, 0, 0],

    [0, 0, 0, 0],

    ...,

    [0, 0, 0, 0],

    [0, 0, 0, 0],

    [0, 0, 0, 0]],


    ...,

    ๋ณด์‹œ๋‹ค์‹œํ”ผ 255๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— 0๊ฐ’์„ 255๋กœ ๋ณ€ํ™˜์‹œ์ผœ ๋ณผ๊ฒŒ์š”.


    # mask ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒ‰์ƒ๊ฐ’ ๋ณ€ํ™˜ํ•˜๊ธฐ

    trans_mask = np.where(mask == 0, 255, mask)

    trans_mask

    • ๊ฒฐ๊ณผ

    array([[[255, 255, 255, 255],

    [255, 255, 255, 255],

    [255, 255, 255, 255],

    ...,

    [255, 255, 255, 255],

    [255, 255, 255, 255],

    [255, 255, 255, 255]],


    ...,


    ๊ฐ’์ด ๋ณ€ํ™˜๋˜์—ˆ์œผ๋‹ˆ ๋งˆ์Šคํฌ๋ฅผ ์ ์šฉํ•ด๋ณผ๊ฒŒ์š”.

    from wordcloud import WordCloud, STOPWORDS # WordCloud์™€ STOPWORD ํ˜ธ์ถœ

    import matplotlib.pyplot as plt # matplotlib.pyplot๋ฅผ plt๋กœ ๋‹จ์ถ•

    import numpy as np # ์ด๋ฏธ์ง€๋ฅผ array ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜

    from PIL import Image # ์ด๋ฏธ์ง€ ๋ถ„์„ ๋ฐ ์ฒ˜๋ฆฌ


    mask = np.array(Image.open("/content/drive/MyDrive/แ„†แ…กแ„แ…ฆแ„แ…ตแ†ผ แ„‰แ…ณแ„แ…ฅแ„ƒแ…ต แ„‚แ…ฒแ„‰แ…ณแ„…แ…ฆแ„แ…ฅ/แ„‹แ…ฏแ„ƒแ…ณแ„แ…ณแ†ฏแ„…แ…กแ„‹แ…ฎแ„ƒแ…ณ แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผ/แ„‹แ…ดแ„…แ…ญแ„ƒแ…ขแ„…แ…กแ†ซ แ„แ…ตแ„‹แ…ฏแ„ƒแ…ณ/แ„‹แ…ดแ„…แ…ญแ„ƒแ…ขแ„…แ…กแ†ซ.png")) # ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ์–ด์™€ arrary ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜


    wc = WordCloud(width = 3000, height = 2000, random_state=1,

    background_color='white', colormap='Set1',

    collocations=False, stopwords = STOPWORDS,

    font_path='./font/NanumBarunGothic.ttf',

    mask=trans_mask)


    wc.generate_from_frequencies(filtered_nouns_counter) # ์›Œ๋“œ ํด๋ผ์šฐ๋“œ ์ƒ์„ฑ


    plt.figure(figsize=(10,10)) # ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์ง€์ •

    plt.imshow(wc, interpolation="bilinear") # ํ”ฝ์…€์„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ƒ‰์œผ๋กœ ์ฑ„์›€

    plt.axis("off")

    plt.show()

    • ๊ฒฐ๊ณผ


    ์ฒญ์ง„๊ธฐ ๋ชจ์–‘์˜ ์›Œ๋“œ ํด๋ผ์šฐ๋“œ๊ฐ€ ์ƒ์„ฑ๋์–ด์š”! โ€˜์ •๋ถ€โ€™, โ€˜์˜๋Œ€โ€™, โ€˜์‘๊ธ‰์‹คโ€™, โ€˜์ „๊ณต์˜โ€™, โ€˜์ง‘๋‹จํ–‰๋™โ€™ ๊ฐ™์€ ๋‹จ์–ด๋“ค์ด ์ฒญ์ง„๊ธฐ ํ˜•ํƒœ๋กœ ์‹œ๊ฐํ™”๋œ ๋ชจ์Šต์ธ๋ฐ์š”. ์ด ํ‚ค์›Œ๋“œ๋“ค์„ ์—ฐ๊ฒฐํ•ด๋ณด๋ฉด โ€˜์˜๋ฃŒ๋Œ€๋ž€โ€™์ด๋ผ๋Š” ์ด์Šˆ๋ฅผ ์‹ฌ์ธต์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์–ด์š”.


    ์ด์ฒ˜๋Ÿผ ๋‹จ์ˆœํžˆ ํŠธ๋ Œ๋“œ๋ฅผ ์š”์•ฝํ•ด์„œ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ๋ณด๋‹ค ์›Œ๋“œํด๋ผ์šฐ๋“œ ๊ฐ™์€ ์‹œ๊ฐํ™” ์ž๋ฃŒ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋ณด๋‹ค ํฅ๋ฏธ๋กญ๊ณ  ์ž„ํŒฉํŠธ ์žˆ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.


    '๋ฐํ›„๋ฐฐ'๋“ค๋„ ๊ด€์‹ฌ ์žˆ๋Š” ํ‚ค์›Œ๋“œ๋กœ ์›Œ๋“œํด๋ผ์šฐ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ํฌํŠธํด๋ฆฌ์˜ค์— ํ™œ์šฉํ•ด๋ณด์„ธ์š”!









    ๋ฐ์ดํ„ฐ๋ถ„์„๋ฐ์ดํ„ฐ
    ๋ฐ์„ ๋ฐฐ๋“ค
    ๋ฐ์ดํ„ฐ ๊ด€๋ จ ๋งˆ์ผ€ํŒ… ์ง๋ฌด๋ฅผ ํฌ๋งํ•˜์ง€๋งŒ,
    ์‰ฝ๊ฒŒ ๋„์ „ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ๊ณผ์ƒ ๋ฐ ๋น„์ „๊ณต์ž๋“ค์„ ์œ„ํ•œ ๋‰ด์Šค๋ ˆํ„ฐ '๋ฐ์„ ๋ฐฐ๋“ค'์ž…๋‹ˆ๋‹ค :)
    ๋Œ“๊ธ€ 0

    ์•„์ง ๋“ฑ๋ก๋œ ๋Œ“๊ธ€์ด ์—†์Šต๋‹ˆ๋‹ค.
    ๋ฐ์„ ๋ฐฐ๋“ค๋‹˜์˜ ๊ฒŒ์‹œ๊ธ€์— ์ฒซ๋ฒˆ์งธ ๋Œ“๊ธ€์„ ๋‚จ๊ฒจ๋ณด์„ธ์š”.

    ๋Œ“๊ธ€ ์ƒˆ๋กœ๊ณ ์นจ

    ๋‹น์‹ ์„ ์œ„ํ•œ ์ถ”์ฒœ ์นผ๋Ÿผ