이전글
(1) 크롤링 + 빈도분석 : https://nthree.tistory.com/24
(2) word cloud : https://nthree.tistory.com/43
다음글
(4) 토픽 모델링 : https://nthree.tistory.com/45
분량을 잘못 나누어서 이번 포스팅은 되게 짧은 포스팅이 될 것이다.
지난번에 이어 한국 대중가요 가사 분석 프로젝트의 장소 어휘를 분석하는 과정을 진행했다.
당시 구글링을 하다가 비슷한 주제를 발견하여 참고하였다.
시작!
1
2
3
|
import os
import numpy as np
import pandas as pd
|
cs |
늘 그렇듯 구글 코랩환경에서 진행하였고 필요 라이브러리를 설치해주었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
df = pd.read_csv('/content/drive/MyDrive/textmining_rawdata.csv')
df1970 = pd.read_csv('/content/drive/MyDrive/1970년대.csv', encoding = "cp949")
df8090 = pd.read_csv('/content/drive/MyDrive/1980-1990.csv', encoding = "cp949")
df['lyrics'].replace(r'\s+|\\n', ' ', regex=True, inplace=True)
df1970['Lyrics'].replace(r'\s+|\\n', ' ', regex=True, inplace=True)
df8090['Lyrics'].replace(r'\s+|\\n', ' ', regex=True, inplace=True)
df1970 = df1970
df1980 = df8090.iloc[0:100]
df1990 = df8090.iloc[100:]
df2000 = df.iloc[0:200]
df2010 = df.iloc[200:400]
df2020 = df.iloc[400:]
|
cs |
나눠진 데이터를 로드해준 후 개행 문자를 제거해준 다음
70년대부터 20년대까지 나누어준다.
1
|
!pip install konlpy
|
cs |
1
2
3
4
5
6
|
from konlpy.tag import Okt
okt = Okt()
words = " ".join(df1970['Lyrics'].tolist())
words = okt.morphs(words,stem=True)
words
|
cs |
['그리움', '이', '눈', '처럼', '쌓이다', '거리', '를', '나', '혼자', '서', '걸다', '미련', '때문', '에', '흐르다', '세월', '따르다', '잊혀지다', '그', '얼굴', '이', '왜', '이다지', '속눈썹', '에', '또다시', '떠오르다', '정다웠던', '그', '눈길', '목소리', '어딜', '가다', '아프다', '가슴', '달래다', '찾다', '헤매다', '가을비', '우산', '속', '에', '이슬', '맺힌다', '잊다', '언젠가', '늘다', '세월', '흐름', '속', '에', '나', '혼자', '서', '잊다', '잊다', '보다', '슬픔', '도', '그리움', '도', '나', '혼자', '서', '잊다', '그러다가', '언젠가', '늘다', '잊다', '정다웠던', '그', '눈길', '목소리', '어딜', '가다', '아프다', '가슴', '달래다', '찾다', '헤매다', '가을비', '우산', '속', '에', '이슬', '맺힌다', '바람', '불다', '제주', '에는', '돌다', '많다', '인정', '많다', '마음씨', '곱다', '아가씨', '도', '많다', '감수', '광', '감수', '광', '나', '어떡하다', '렝', '감수', '광', '설릉사', '랑', '보내다', '엥', '가다', '혼', '조', '옵', '서예', '겨울', '오다', '한라산', '에', '눈', '이', '덮이다', '당신', '하다', '나', '사이', '에는', '봄', '이', '한창', '이', '라오', '감수', '광', '감수', '광', '나', '어떡하다', '렝', '감수', '광', '설릉사', '랑', '보내다', '엥', '가다', '혼', '조', '옵', '서예', '어쩌다가', '나르다', '두다', '떠나다', '다해', '도', '못', '잊다', '그리다', '혼자', '돌아오다', '서예', '감수', '광', '감수', '광', '나', '어떡하다', '렝', '감수', '광', '설릉사', '랑', '보내다', '엥', '가다', '혼', '조', '옵', '서예', '우리', '같이', '놀다', '뛰다', '뛰다', '공', '을', '차다', '놀다', '우리', '같이', '불다', '예쁘다', '노래', '곱다', '노래', '불다', '이마', '엔', '땀방울', '마음', '엔', '꽃', '방울', '나무', '에', '오르다', '하늘', '에', '오르다', '개구쟁이', '우리', '같이', '놀다', '뛰다', '뛰다', '공', '을', '차다', '놀다', '우리', '같이', '불다', '예쁘다', '노래', '곱다', '노래', '불다', '이마', '엔', '땀방울', '마음', '엔', '꽃', '방울', '나무', '에', '오르다', '하늘', '에', '오르다', '개구쟁이', '당신', '은', '무슨', '일로', '그리다', '합', '니까', '홀로', '이', '개', '여울', '에', '주저', '앉다', '파릇하다', '풀', '포기', '가', '돋다', '나오다', '잔', '물이', '봄바람', '에', '헤', '적', '일', '때', '에', '가도', '아주', '가지다', '않다', '노랗다', '그렇다', '약속', '이', '있다', '날', '마다', '개', '여울', '에', '나오다', '앉다', '하염없이', '무엇', '을', '생각', '하다', '가도', '아주', '가지다', '않다', '심다', '굳이', '잊다', '말', '라는', '부탁', '인지', '요', '가도', '아주', '가지다', '않다', '노랗다', '그렇다', '약속', '이', '있다', '날', '마다', '개', '여울', '에', '나오다', '앉다', '하염없이', '무엇', '을', '생각', '하다', '가도', '아주', '가지다', '않다', '심다', '굳이', '잊다', '말', '라는', '부탁', '인지', '요', '갈매기', '날다', '바닷가', '에도', '그대', '가', '없다', '쓸쓸하다', '파도', '가', '밀려오다', '속삭이다', '때', '도', '그대', '가', '없다', '쓸쓸하다', '행복', '이', '가득', '찬', '나', '의', '인생', '은', '그대', '가', '전', '해주다', '고귀하다', '선물', '이세', '상', '어디', '에', '서다', '그대', '가', '있다', '슬프다', '않다', '행복', '이', '가득', '찬', '나', '의', '인생', '은', '그대', '가', '전', '해주다', '고귀하다', '선물', '이세', '상', '어디', '에', '서다', '그대', '가', '있다', '슬프다', '않다', '술', '말다', '노래', '하고', '춤', '을', '추다', '보다', '가슴', '에는', '하나', '가득', '슬픔', '뿐', '이네', '무엇', '을', '하다', '것', '인가', '두르다', '보아', '도', '보이다', '건', '모두', '가', '돌다', '앉다', '자', '떠나다', '동해', '바다로', '삼', '등', '삼', '등', '완행열차', '기차', '를', '타고', '간밤', '에', '꾸다', '꿈', '의', '세계', '는', '아침', '에', '일어나다', '잊혀지다', '그래도', '생각나다', '내', '꿈', '하나', '는', '조그만', '예쁘다', '고래', '한', '마리', '자', '떠나다', '동해', '바다로', '신화', '처럼', '숨', '을', '쉬다', '고래', '잡다', '우리', '들', '사랑', '이', '깨지다', '다해', '도', '모든', '것', '을', '하다', '번', '에', '잃다', '해도', '우리', '들', '가슴속', '에는', '뚜렷', '이', '있다', '한', '마리', '예쁘다', '고래', '하나', '가', '자', '떠나다', '동해', '바다로', '신화', '처럼', '소리치다', '고래', '잡다', '자', '떠나다', '동해', '바다로', '신화', '처럼', '소리치다', '고래', '잡다', '눈물', '을', '닦다', '그리고', '날', '보다', '울다', '맘', '아프다', '내', '마음', '도', '아프다', '고개', '를', '들다', '한숨', '을', '거두다', '어차피', '우리', '는', '이제', '헤어지다', '하다', '사랑', '은', '그렇다', '후회', '는', '말다', '기쁘다', '만나다', '슬프다', '헤어지다', '그렇다', '알다', '우리', '사랑', '한', '것', '을', '울다', '사랑', '이', '다시', '찾다', '요', '사랑', '은', '그렇다', '후회', '는', '말다', '기쁘다', '만나다', '슬프다', '헤어지다', '그렇다', '알다', '우리', '사랑', '한', '것', '을', '울다', '사랑', '이', '다시', '찾다', '요', '그렇다', '알다', '우리', '사랑', '한', '것', '을', '울다', '사랑', '이', '다시', '찾다', '요', '-', '남쪽', '나라', '바다', '멀리', '물새', '가', '날다', '뒷동산', '에', '동백꽃', '도', '곱', '게', '피다', '뽕', '을', '따다', '아가씨', '들', '서울', '로', '가다', '정', '든', '고향', '정', '든', '사람', '잊다', '말', '인가', '찔레꽃', '이', '하다', '잎', '두', '잎', '물위', '에', '날다', '내', '고향', '에', '봄', '은', '가다', '서리', '도', '차다', '이', '바닥', '에', '정', '든', '사람', '어데', '로', '가다', '전해', '오다', '흙', '냄새', '를', '잊다', '말', '인가', '줄', '을', '타다', '행복하다', '춤', '을', '추다', '신', '이', '나다', '손', '풍금', '을', '울리다', '사랑', '노래', '부르다', '공', '굴리', '며', '좋아하다', '노래', '하다', '즐겁다', '희다', '분칠', '에', '빨갛다', '코로', '사랑', '얘기', '들려주다', '영원하다', '사랑', '하다', '맹세', '하다', '죽다', '변치', '말', '자', '언약', '하다', '울다', '보다', '소용없다', '후회', '하다', '소용없다', '어릿광대', '의', '서글프다', '사랑', '줄', '을', '타다', '행복하다', '춤', '을', '추다', '신', '이', '나다', '손', '풍금', '을', '울리다', '사랑', '노래', '부르다', '영원하다', '사랑', '하다', '맹세', '하다', '죽다', '변치', '말', '자', '언약', '하다', '울다', '보다', '소용없다', '후회', '하다', '소용없다', '어릿광대', '의', '서글프다', '사랑', '공', '굴리', '며', '좋아하다', '노래', '하다', '즐겁다', '희다', '분칠', '에', '빨갛다', '코로', '사랑', '얘기', '불다', '주다', '지금', '도', '마로니에', '는', '피고', '있다', '눈물', '속', '에', '봄비', '가', '흘러내리다', '임자', '잃다', '술잔', '에', '어리다', '그', '얼굴', '아', '청춘', '도', '사랑', '도', '다', '마시다', '버리다', '그', '길', '에', '마로니에', '잎', '이', '지다', '날', '지금', '도', '마로니에', '는', '피고', '있다', '지금', '도', '마로니에', '는', '피고', '있다', '바람', '이', '불', '고', '낙엽', '이', '지다', '덧', '없이', '사라지다', '다정하다', '그', '목소리', '아', '청춘', '도', '사랑', '도', '다', '마시다', '버리다', '그', '길', '에', '마로니에', '잎', '이', '지다', '날', '지금', '도', '마로니에', '는', '피고', '있다', '눈', '을', '감다', '저', '멀리', '서', '다가오다', '다정하다', '그림자', '옛', '얘기', '도', '잊다', '하자', '약속', '의', '말씀', '도', '잊다', '하자', '그러나', '눈', '감다', '잊다', '못', '한', '그', '사람', '을', '저', '멀리', '저', '멀리', '서', '무지개', '타고', '오다', '그러나', '눈', '감다', '잊다', '못', '한', '그', '사람', '을', '멀리', '저', '멀리', '서', '무지개', '타고', '오다', '그러나', '눈', '감다', '잊다', '못', '하다', '그', '사람', '을', '저', '멀리', '저', '멀리', '서', '무지개', '타고', '오다', '<', '제', '1', '절', '>', '모두', '들', '잠들다', '고요한', '이', '밤', '에', '어이', '하다', '나', '홀로', '자다', '이', '루나', '넘기다', '책속', '에', '수많다', '글', '들', '이', '어이', '하다', '한자', '도', '뵈다', '않다', '그', '건너', '그', '건너', '바로', '너', '때문', '이냐', '그', '건너', '그', '건너', '바로', '너', '때문', '이냐', '<', '2', '절', '>', '언제', '는', '비다', '종로', '거리', '를', '우산도', '않다', '받다', '혼자', '걸다', '우연히', '마주치다', ...]
한국어 NLP 패키지를 설치해주고 가사에서 단어들을 추출해준다.
1
2
3
4
5
6
7
8
9
|
from collections import Counter
with open('/content/drive/MyDrive/p_dict.txt', 'r') as f:
place_file = f.readlines()
place = place_file[0].split(",")
place1970 = [x for x in words if x in place]
#len(remove_stopwords)
Counter(place1970).most_common()
|
cs |
[('밭', 33), ('고향', 9), ('바닷가', 6), ('해변', 5), ('동해', 4), ('서울', 3), ('남쪽', 2), ('가로수', 2), ('골목길', 2), ('숲', 2), ('제주', 1), ('세계', 1), ('휴전선', 1), ('대동강', 1), ('북', 1), ('지평선', 1)]
단어들의 횟수를 계산해 준 다음 횟수가 많은 순으로 카운트를 해서 그 횟수와 함께 추출해주었다.
70년대에는 '밭', '고향', '바닷가'와 같은 자연과 농촌을 주제로 한 단어들이 많이 사용되었음을 알 수 있다.
1
2
3
4
5
6
7
8
9
10
11
|
okt = Okt()
words = " ".join(df2020['lyrics'].tolist())
words = okt.morphs(words,stem=True)
with open('/content/drive/MyDrive/p_dict.txt', 'r') as f:
place_file = f.readlines()
place = place_file[0].split(",")
place2020 = [x for x in words if x in place]
#len(remove_stopwords)
Counter(place2020).most_common()
|
cs |
[('지구', 3), ('이대', 2), ('서울', 2), ('클럽', 1), ('파티', 1), ('도시', 1), ('세계', 1), ('강', 1), ('홍대', 1), ('강남', 1), ('강북', 1), ('카페', 1)]
2020년대의 가사를 추출한 결과이다. 아직 2022년 뿐이라 단어의 개수가 부족하지만
70년대와 비교해서 도시적, 유흥적 단어가 더 많이 사용되었음을 알 수 있다.
오늘은 대중가요 가사의 장소 단어 사용 빈도를 분석하여 그 시대의 시대상과 가치관을 알아보았다.
마지막으로 다음 LDA를 통한 토픽모델링을 마지막으로 이 프로젝트를 끝내보겠다.
오늘은 끝!
'자연어처리 > 실습' 카테고리의 다른 글
NLP 감정 분류 실습 (feat. 데이콘) (0) | 2022.11.29 |
---|---|
한국 대중가요 가사 분석 프로젝트 (4) - 토픽 모델링 (LDA) (2) | 2022.10.25 |
한국 대중가요 가사 분석 프로젝트 (2) word cloud (0) | 2022.10.23 |
MRC(기계독해) 실습 1 : JSON 데이터셋 불러오기 (Groom Competition) (0) | 2022.10.06 |
구름 AI 자연어처리 team project bug search (0) | 2022.09.28 |
댓글