summary
Chatbot is the underlying technology of an interactive interface. One of the problems to be solved for popularization of chatbots is the unnaturalness of inhuman conversation. This presentation introduces the process of implementing emotion status reading based on Python 3 for human conversation implementation, and the experience of simulating the emotional state of the bot itself, with the demonstration. We also share the problems and solutions we encountered in implementing the emotional models.
๊ฐ์
์ฑ๋ด์ ๋ํํ ์ธํฐํ์ด์ค์ ๊ธฐ๋ฐ ๊ธฐ์ ์ด๋ค. ์ฑ๋ด์ ๋์คํ๋ฅผ ์ํด ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ์ค ํ๋๋ ๋น์ธ๊ฐ์ ๋ํ์์ ์ค๋ ๋ถ์์ฐ์ค๋ฌ์์ด๋ค. ์ด ๋ฐํ์์๋ ์ธ๊ฐ์ ์ธ ๋ํ ๊ตฌํ์ ์ํ์ฌ Python 3๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ ์ํ ์ฝ๊ธฐ๋ฅผ ๊ตฌํํ ๊ณผ์ ๊ณผ, ๋ด ์์ฒด์ ๊ฐ์ ์ํ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ ๊ฒฝํ์ ๋ฐ๋ชจ์ ํจ๊ป ์๊ฐํ๋ค. ๋ํ ๊ฐ์ ๋ชจํ์ ๊ตฌํํ๋ ๊ณผ์ ์์ ๋ง๋ฌ๋ ๋ฌธ์ ๋ค ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ณต์ ํ๋ค.
์์ธ
์ฑ๋ด์ ๋ํํ ์ธํฐํ์ด์ค ๋ฐ ์์ฑ ์ธ์๊ณผ์ ๊ฒฐํฉ์ ํตํ ๋ฌด์ ๋ ฅ ๋ฐฉ์ ์ธํฐํ์ด์ค์ ๊ธฐ๋ฐ ๊ธฐ์ ์ด๋ค. ์ฑ๋ด์ ๊ณ ๊ฐ์๋ด ์๋น์ค ๋ถ์ผ๋ถํฐ ์จ๋ผ์ธ ๊ตฌ๋งค, ๋์งํธ ์ด์์คํดํธ ๋ฑ์ ๋ค์ํ ๋ถ์ผ์ ๋๋ฌ ์ฌ์ฉ๋๋ฉฐ, ํ ์คํธ ๊ธฐ๋ฐ์ ๋ฉ์ ์ ๋ถํฐ ์์ฑ ์ธ์ ๊ธฐ๋ฐ์ ์ค๋งํธ ์คํผ์ปค๋ฑ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋น ๋ฅด๊ฒ ๋ณด๊ธ๋๊ณ ์๋ค. ์ด๋ฌํ ์ฑ๋ด์ ๋์คํ๋ ์ต๊ทผ ๋จธ์ ๋ฌ๋์ ๊ธฐ๋ฐ์ผ๋ก ํ ์์ฐ์ด ์ฒ๋ฆฌ ๊ธฐ์ ์ ์ฑ๋ฅ ํฅ์๊ณผ, ๋ฅ๋ฌ๋ ๋ถ์ผ์ ๋ฐ์ ์ ํ์ ์ด ๊ฐ๋ฅํด์ง end-to-end ๋ชจ๋ธ ๊ตฌํ์ ๊ธฐ์ ์ ์ผ๋ก ํฐ ์ํฅ์ ๋ฐ์๋ค.
์ฑ๋ด์ด ์์ฉ๋๋ ๋ถ์ผ๊ฐ ๋์ด์ง๊ณ ๋ค์ํ ๋ถ์ผ์์ ์ฑ๋ด ์๋น์ค ๋ฐ ์ฌ์ ์ด ์ฑ์ฅํจ์ ๋ฐ๋ผ '๋ถํธํ ๊ณจ์ง๊ธฐ ' ๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋น์ธ๊ฐ์ ๋ํ์์ ์ค๋ ํผ๋ก ๋ฌธ์ ๊ฐ ์ ์ฐจ ๋๋๋๊ณ ์๋ค. ๋น์ธ๊ฐ์ ๋ํ๊ฐ ๊ฐ์ ธ์ค๋ ํผ๋ก๋ ์ฌ์ฉ์ ๊ฒฝํ ๋ฐ ์ด์ฉ ์ง์์ฑ์ ์ํฅ์ ํฌ๊ฒ ๋ฏธ์น๋ค. ๋ฐ๋ผ์ ์ด ๋ฌธ์ ๋ ๋ํํ ๋์งํธ ์ด์์คํดํธ์ ๋์คํ ๊ณผ์ ์์ ์ด๋ ต์ง๋ง ์ฐ์ ์ ์ผ๋ก ํด๊ฒฐํด์ผ ํ ๊ณผ์ ๋ค ์ค ํ๋๊ฐ ๋์๋ค.
๊ฐ์ ๋ชจํ์ ๋น์ธ๊ฐ์ ๋ํ๋ฅผ ๋ฒ์ด๋ ์์ฐ์ค๋ฌ์ด ๋ํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค. ์ด ๋ฐํ์์๋ Python 3๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ ์ํ ์ฝ๊ธฐ๋ฅผ ๊ตฌํํ๊ณ , ๊ฐ์ ์ํ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋ ๊ณผ์ ์ ๋ํ ๊ฒฝํ๊ณผ ์ ๊ทผ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค. Python์ NLTK ํจํค์ง๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ ์ฌ์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ค. ๊ทธ ๋ค์ ๊ธฐ์กด ๋ํ ๋ฐ์ดํฐ๋ฅผ Python 3 ๋ฐ Pandas๋ฅผ ์ด์ฉํ์ฌ ์ด๋ฒ๊ฐ๊ณตํ๋ค. ๊ฐ๊ณตํ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ wordvec ๊ณต๊ฐ์ ์ ์ํ๋ค. Wordvec ๊ณต๊ฐ์ ๊ฐ ๋จ์ด์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ๋ง๋ ํ๊ทธ๋ฅผ ๋ถ์ฌ ์ ์ ํ ์์ ๊ณต๊ฐ์ ์ ์ํ๋ค. ์ดํ ์ค์๊ฐ ๋ํ์์ ๋ค์ด์ค๋ ๋จ์ด๋ค์ ์ผ์ ๋จ์๋ก ์ ๋ ฅํ์ฌ, ํ์ฌ ํ์์ ๊ฐ์ ์ํ ๋ฐ ๊ฐ์ ๋ณํ๋ฅผ ์ถ์ ํ๋ค. ์ดํ ๋ด์ ๊ฐ์ ์ ๋ด๋นํ๋ ๊ธฐ๊ณํ์ต ๋ชจํ์ ๋ง๋ค์ด ํ์ต์ํค๊ณ , ๋ด์ ํ์ฌ ๊ฐ์ ์ ๋ฐ๋ผ ๋ต๋ณ ๋ฌธ์ฅ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ๊ธฐํ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ดํํ๋๋ก ๊ตฌํํ๋ค. ์ต์ข ์ ์ผ๋ก๋ ๋ด ์ธํฐํ์ด์ค ๋ฐ ์ฌ๋ฏธ์๋ ์ธํฐํ์ด์ค ์์ด๋์ด์ ํจ๊ป ๋ฌถ์ด ๋ํ๋ฅผ ์์ฐํ๋ค.
์ด ๊ณผ์ ์์ ๊ฒช์ ๋ฌธ์ ๋ค ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํจ๊ป ์๊ฐํ๋ค. ์ฐ์ NLTK ํจํค์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ ์ฌ์ ์ ๋ง๋๋ ๊ณผ์ ๊ณผ, ๊ฐ์ ์ฌ์ ์ธ๋ฑ์ค๋ฅผ ํ๊ตญ์ด์ ๋ง๊ฒ ์ปค์คํ ํ๋ ๊ณผ์ ์ ์ค๋ช ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์ํ๋ฅผ ์ ์ํ ๊ณต๊ฐ์์ ๋ด์ ๊ฐ์ ๋ณํ๊ฐ ์ค์ ์ธ๊ฐ๊ณผ ๋ค๋ฅด๊ฒ ์ฌํ๊ฒ ํ๋ ๋ฌธ์ ๋ฅผ ๊ณ ๋ คํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. ๋ค์ํ ๋ฌธ์ ๋ค์ ํด๊ฒฐ ๋ฐฉ๋ฒ๊ณผ ํจ๊ป, ์ค์ ์๋น์ค๋ฅผ ์ํด ๋ฉํฐ ๋ชจ๋ ๋ชจ๋ธ ์ฒด์ธ์ ์ปจํ ์คํธ ์์ง ๋ฐ ๋ํ ์์ง๊ณผ ๊ฐ์ ๋ชจํ์ ์ฐ๊ฒฐํ๋ ๊ณผ์ ์ ์ฌ๋ฏธ์๋ ๋ฐ๋ชจ์ ํจ๊ป ๊ณต์ ํ๊ณ ์ ํ๋ค.