미나랑 해보자

미니 프로젝트: 도서 제목 분석을 통한 x, y, z 세대의 가치관 파악 본문

데이터청년캠퍼스/머신러닝_딥러닝

미니 프로젝트: 도서 제목 분석을 통한 x, y, z 세대의 가치관 파악

미나랑 2021. 9. 17. 16:40

1. 개요


7/26일~8/3에는 머신러닝/딥러닝 수업과 함께 짧게 진행할 수 있는 미니프로젝트를 진행했다.
우리 조는 도서데이터에 관심이 있었고 이걸로 뭘 해보고자 했는데 주제를 정하기까지 오래걸렸다.
처음에는 개인취향을 반영한 도서추천시스템을 만들고 싶었지만 개인별 도서구매내역이나 대출내역에 대한 데이터를 구할 수 없어 실패..
그래서 아예 데이터 분석쪽으로 방향을 전환했다. 팀원분 중에 <90년대생이 간다>책을 보고 x, y, z세대별로 대출하는 도서에 나타나는 특징이 있지 않을까하는 방향을 제시하셨다. 사실 세대별로 향유하는 취미생활이 아주 다르다고 생각하는데, 독서는 유일하게 모든 세대의 취미가 되니까 팀 전체가 아이디어를 긍정적으로 보았고, 그 아이디어가 낙찰되어 다같이 워드클라우드, 대응분석, word2vec을 이용해 도서 제목을 분석해보았다. 이 게시물에서는 분석법에 대한 간단한 소개와 결과를 기록할 예정이다. 코드 리뷰는 다음 게시물에!

2. 연구 방법

 

1) 데이터

도서관 정보나루 OPEN API(https://www.data4library.kr/apiUtilization)를 통해 인기대출도서 조회를 신청하였다.
정보나루는 공공도서관에서 수집된 데이터를 개방하여 공유하고 있는데

우리 팀의 경우 각 연도별+나이대별로 인기대출도서의 순위, 서명(도서 제목), 저자, 출판사, 출판년도, 권, ISBN, ISBN부가기호, KDC, 대출건수에 대한 데이터를 추출했다(각 세대별 3000건씩, 총 9000건)

우리 조는 팀장님이 open api사용을 해본 경험이 있으셔서 담당으로 우리가 원하는 데이터를 추출해주셨다.
고생..많으셨..(--)(__)(--)

2) 세대 구분

도서관 정보나루에서는 연도를 선택하면 나이대별로 인기대출도서를 볼 수 있게 해줘서 정확한 x, y, z세대에 대한 추적은 어려웠다. 그래서 그에 대한 대안으로 비슷한 나이대로 추적하는 방식으로 분석을 진행했다. 각 세대에 대한 나이의 반영은 다음과 같다.

세대/연도 00년도 10년도 20년도
X 20대 30대 40대
Y 10대 20대 30대
Z 10대 이하 10대 20대

후에 이 주제로 더 연구할 일이 있다면 그때는 연도도 00년~09년의 자료를 종합하고, 각 세대별로 조금 더 촘촘하게 데이터를 모을 수 있는 방법을 찾아보는게 좋을 것 같다. 이 자체로는 데이터가 너무 단편적이라서..

3. 연구결과

1) 워드클라우드

워드클라우드는 텍스트 빈도분석을 통해 나타나는 키워드를 시각화해서 보여주는 방법이다. 시각화를 통해 데이터의 키워드나 주제, 개념 등을 한 눈에 보여준다는 장점이 있다. 우리 조도 도서 제목에서 나타나는 키워드를 분석하기 위해 워드클라우드를 사용했다. 얻은 결과는 아래와 같다.

팀원분 중에 역시나 시각화부분에 강점이 있는 분이 계셔서 결과를 예쁘게 정리해주셨다. 분석결과, 크게 파란색초록색으로 구분되어 특징이 나타났다.
파란색의 경우 X, Y, Z세대 중 10대와 20대의 데이터로 주로 '장편소설, 소설, 이야기' 등이 두드러진 키워드로 나타났다. 이와 달리 초록색은 x, y, z세대 중 10대 이하와 30, 40대에게서 나타났다. 이들의 키워드는 '엄마, 만화'였다.
특히나 30, 40대에서는 '메이플스토리, 마법천자문'등의 데이터가 나타난 것으로 보아 본인보다는 자녀의 도서를 많이 대출한 것을 볼 수 있었다.

즉, 우리 조는 X, Y, Z세대 별로 나름의 데이터를 분류했기 때문에 각 세대별로 차이가 나타날 것이라고 예상했지만 결과는 이와 달랐다. 세대보다는 나이대별로 공통된 키워드가 추출되는 경향이 발견되었다.

각 나이대별로 특징을 자세히 살펴보자.

<10대>

10대의 경우 주로 장편소설과 관련된 키워드가 추출되었고, Y세대와 Z세대의 차이가 나타났다.
2000년대 10대였던 Y세대는 소설 중 특히 판타지 소설에 대한 관심이 많았다면
2010년대 z세대는 판타지소설에 대한 흥미는 떨어진 것을 확인할 수 있었다.

<20대>


20대의 경우에도 장편소설과 관련된 키워드가 나왔지만 X, Y, Z에 대한 분석에서 조금의 차이가 존재했다.
2000년대 20대였던 X세대는 소설 외에도 자기계발을 위한 영어, 길라잡이, 초보자 등의 키워드가 나타났다.
2010년대 y세대의 경우 여자, 인생, 심리학 등 삶과 심리학에 대한 관심이 높았던 것을 확인할 수 있었다.
마지막으로, 2020년대 z세대는 부자, 투자 등 경제에 대한 키워드의 빈도가 증가했고 에세이, 산문, 나를 등의 키워드가 나타난 것으로 볼 때 "마음과 내면을 돌보는 내용"이 증가한 것을 알 수 있었다.

<30대>

30대는 키워드분석을 해보았을 때 자신의 책 보다는 자녀의 책을 많이 대출하였다.
2010년대 x세대에 비해 2020년의 y세대가 성인 도서보다는 메이플스토리, 마법천자문아동도서의 비중이 높은 것을 확인할 수 있었다. 이는 30대에 육아를 시작한 사람들이 자신보다는 ‘아이’의 도서를 많이 대출하기 때문에 나타난 현상으로 추측할 수 있다.
2010년 x세대의 경우 아동도서나 만화와 관련된 키워드가 있었지만 y세대에 비해 소설과 관련된 키워드가 더 많이 등장했다.

2) 대응분석

두 범주형 변수들 간의 관계는 흔히 동질성 검정 혹은 독립성 검정을 통해 알아볼 수 있다. 그러나 위 검정방법들은 단순히 연관이 되어있다/아니다의 정도만 나타낼 뿐이라 직접적인 관계를 보여주는 것에는 한계가 있다. 이러한 한계를 극복한 것이 대응분석이다. 대응분석은 다변량 범주형 자료를 대상으로 변수들간의 상관관계와 어떤 패턴으로 관련되어있는지 볼 수 있는 데이터분석기법이다. 위 프로젝트에서는 각 시대별 x, y, z세대가 대출한 책 제목들의 품사를 특징으로 각 세대 별 대출도서의 특징과 이것이 다른 연령층, 세대와 어떤 연관성을 가지는지 알아보았다.

- 동사 및 형용사(/VA|/VV|/MAG)

동사 및 형용사는 각 9개의 자료에서 책제목을 형태소분석 후에 동사와 형용사(/VA|/VV|/MAG)만을 추출하였고 이를 통합하여 총 1199개의 형태소 중 자주 쓰인 상위 90개의 형태소 어휘로 대응분석을 실시하였다.

그 결과
10대 이하의 경우 재미있다, 함께하다, 배우다, 쉽다직관적인 단어 위주로 키워드를 발견할 수 있었다.
10대와 20대의 경우 사랑하나, 바꾸다 행복하다, 찾다자신의 삶에 대한 고민이 드러나는 키워드가 발견되었습니다. 이와 달리 30대와 40대는 관심사가 나에서 가족으로 옮겨가는 현상을 볼 수 있었습니다. 키우다, 먹다, 주다, 나다 등 부모와 육아에 관련된 동사를 볼 수 있었다.

- 명사(/NP|/NNG)

명사 대응분석은 동사와 같이 9개의 자료에서 도서제목을 형태소 분석 후, 명사(/NP|/NNG)를 추출하고 통합하여 총 5655개의 형태소 중 사용빈도가 높은 상위90개의 형태소 어휘로 분석을 실시하였다.

그 결과
부모가 된 세대와 되지 않은 세대 간의 극명한 차이가 나타난 것을 확인할 수 있었다.
부모다 된 세대(2020년 y, 2010, 2020 x세대)의 경우 아동도서를 대출하는 경향을 보였다.
즉, 도서를 대출하는 목적이 자신보다는 가족이나 아이를 위한 것임을 알 수 있다.
이와 반대로, 부모가 되지 않은 이전의 x세대와 y, z세대는 판타지 소설이나 에세이를 대출하는 성향을 강하게 보였다.
도서를 대출하는 장르 뿐만 아니라 대출 주제 역시 사람, 나, 마음자아와 관련된 주제의 도서를 열람하였음을 알 수 있습니다.

3) Word2vec

Word2vec은 단어 임베딩 방법 중 하나로 밀집표현으로 단어를 벡터화하는 방법이다. 밀집표현으로 단어를 나타낸다는 것은 희소표현(예: 원-핫 인코딩)과 같이 단어 벡터의 크기를 단어 집합의 차원으로 정하는 것이 아니라 사용자가 설정한 값으로 차원을 맞춰 실수 값으로 단어벡터를 표현한 것을 의미한다. 단어의 수가 많을 때 훨씬 더 적은 차원으로 단어를 나타낼 수 있고, 단어간 유사도나 연관성을 그래프와 수치로 나타낼 수 있다는 장점이 있다.  

 

워드클라우드 분석의 경우 구체적인 맥락의 단어보다 장편소설 등 소설의 장르나 인생 등 보편적인 단어가 등장하는 경향이 나타났다. 따라서 word2vec의 단어의 유사도 분석을 통해 위의 한계를 보충할 수 있었다.

먼저 각 세대별 대출도서를 단어단위로 쪼갠 뒤 워드투벡을 통해 백터화했다.

그리고, 워드클라우드에서 발견한 각 세대의 키워드와 각 세대는 자신을 무엇이라고 생각하는지를 나타낼 수 있는 키워드(예: '나의')와 유사한 단어는 무엇인지 탐색해보았다.

 

이 부분은 구글링을 통해 찾은 word2vec코드를 활용했으며,

책 제목분석에 대한 원 코드(청와대 국민청원 데이터 word2vec)가 보고싶은 분들은 여기를 참고해주면 된다.
그 결과 세가지의 특징을 발견할 수 있었다.

 

- 키워드 '부자, 주식, 투자' 

2020년대의 z세대와 y세대에게 부자, 주식, 투자 등 경제와 관련된 공통적인 키워드가 나타났다.

하지만 20대인 z세대의 경우 코로나 이후 높아진 투자열풍과 제테크에 대한 개인의 관심을 의미한다면 3

0대인 y세대의 경우 부자라는 단어의 초점이 가족에 맞추어져 있었다.

또한, 부자가 되는 길을 지혜와 같은 어휘로 접근하는 것을 알 수 있었다.

 

- 키워드 '심리학'

2010년대 이후의 키워드로 심리학과 마음이 등장하였다.

2010년의 y세대는 심리학이라는 키워드에 유사단어로 힐링,

2020년의 z세대는 심리학 키워드에 요가라는 유사단어를 가지고 있었다.

이는 2010년 이후 나타난 힐링열풍의 일환으로, 2020년 코로나 이후 힐링에 대한 열풍이 더 강해져 마음과 같은 키워드가 나타난 것을 볼 수 있다.

- '나의'

나의라는 키워드에 대한 유사단어 분석을 통해 각 세대별로 자신을 어떻게 생각하는지가 드러났다.

먼저 10대 이하인 2000년대의 z세대의 경우 학년으로 자아를 인지하고 캡숑짱과 같은 아이 어휘가 보였다.

 

이와 달리 20대의 경우 세대별로 자아의 인식양상이 다르게 나타났다.

2000년대 x세대가 자신을 주인공으로 인식하며 주체성을 보였던 것과 달리,

y세대는 사랑받는, 홀로등의 어휘를 볼 때 관계적으로 자아를 인식한다는 것을 볼 수 있었다.

또한, 현재의 20대인 z세대는 무기력하다, 무너진 등의 관련어가 나왔는데

이는 코로나 등의 원인으로 무력해진 현재 20대의 모습을 나타낸다고 추측할 수 있었다.

 

마지막으로, 2000년대에는 자신을 주체적으로 생각했던 x세대가 2020년도에 부모가 되면서

나와 관련된 유사어가 잃어버린, 키워야, 참는으로 변한 것을 확인할 수 있었다.

이를 통해 육아로 인해 자신을 잃어버리고 참아야 하는 존재가 되어버린 x세대의 고민을 엿볼 수 있었다.

 

4. 결론 및 향후 연구방향

먼저, 결론으로는 세대가 아닌 나이대별로 키워드 관심사가 묶이는 양상을 발견하였다.

X, Y ,Z보다는 10, 20, 30 별로 비슷한 주제와 장르의 책을 읽는 것을 확인할 수 있었다.

 

또한, 각 세대가 나이대별로 읽었던 책의 주제를 분석해 제테크에 대한 관심이나, 심리학 등 시대의 흐름을 분석할 수 있었다.

마지막으로 30, 40대가 아동도서를 많이 대출하는 경향을 보이고, ‘여자, 엄마, 아이 키워드가 나타나는 것으로 볼 때 여성이 주 도서관 이용층임을 알 수 있었다.

 

향후 연구를 지속한다면 도서 내용 데이터와 각 사용자별로 어떤 도서를 대여했는지에 대한 데이터를 통해 세대간 차이를 파악할 수 있을 것이라고 생각했다.

5. 후기


우리 조의 결과는...
두구두구두구
6조 중 1등이었다!

 

우리가 잘 한 점은

1) 신선한 주제(자연어데이터로 도서데이터를 이용한 것을 다들 신선하게 봐주었다.)

2) 아름다운 시각화(워드클라우드나 대응분석같은 시각화를 좋게 봐주셨다.)

3) 연구결과에 발표를 집중한 것

(다른 조는 연구 과정을 길게 설명했다면 우리는 결과와 해석을 보여주는 것에 집중했다.)

4) 예쁜 발표자료와 나의 발..표?ㅋㅋㅋ

이정도인 것 같다. 함께 공부하는 사람들에게 좋은 평가를 받아서 뿌듯했다. 

 

도서데이터로 할 수 있는 분석과 개발할 수 있는 서비스는 더 다양할 것이라고 생각한다.

ISBN(책의 일련번호)를 분석해 각 세대별로 어떤 장르를 선호하는지, 요즘 인스타그램과 같은 sns에는 에세이가 유행인데 이러한 흐름이 실제 도서대출에도 반영되어있을지 궁금하다.

또한, 책 소개 데이터도 분석해서 실제 소개가 없는 책들은 책 소개를 자동화로 만들어줄 수 없을까하는 고민도 있었고.. 여기서 더 나아간 분석과 서비스가 더 많아졌으면 좋겠다

 

 

6. 참고한 사이트

1) 대응분석 설명:
https://syj9700.tistory.com/44

 

대응분석(Correspondence Analysis, CA)

두 범주형 변수 간의 연관성은 흔히 열별 혹은 행별 동질성 검정 혹은 독립성 검정 등 소위 카이제곱 검정을 통해 살펴본다. 그러나 카이제곱 검정은 두 범주형 변수의 연관성 여부를 결정하는

syj9700.tistory.com

2) word2vec설명:

https://dreamgonfly.github.io/blog/word2vec-explained/

 

쉽게 씌어진 word2vec | Dreamgonfly's blog

텍스트 기반의 모델 만들기는 텍스트를 숫자로 바꾸려는 노력의 연속이다. 텍스트를 숫자로 바꾸어야만 알고리즘에 넣고 계산을 한 후 결과값을 낼 수 있기 때문이다. 텍스트를 숫자로 바꾸는

dreamgonfly.github.io

3) word2vec 코드(코랩으로 열립니다):
https://colab.research.google.com/github/yooseonghwan/OpenDataWrangling/blob/master/03_word2vec%EC%9C%BC%EB%A1%9C_%EB%8B%A8%EC%96%B4%EC%9C%A0%EC%82%AC%EB%8F%84_%EB%B3%B4%EA%B8%B0_teacher.ipynb

 

03 word2vec으로 단어유사도 보기

Run, share, and edit Python notebooks

colab.research.google.com

--> 청와대 국민청원 데이터분석에 관심이 있으시다면 이 분의 깃헙을 참고해주세요!
https://github.com/corazzon/petitionWrangling

 

GitHub - corazzon/petitionWrangling: 청와대 국민청원 데이터 분석

청와대 국민청원 데이터 분석. Contribute to corazzon/petitionWrangling development by creating an account on GitHub.

github.com