카톡 대화 내용을 가지고 여러가지를 해볼 수 있을 것 같다. 아이디어는 이렇다.
아이디어
TXT 원본 파일 데이터 정제
대화 점유율 확인
특정 대화방의 갬성 추출(특정인은 유의미할까?) + 대화방 데이터끼리 합쳐서 나의 갬성 추출?
한글 형태소 분석 -> 텍스트 분석
그리고 시각화
기타 등등
효과
친구, 가족끼리 재미용
오카방에서 내쫓을 명분 데이터 확인
카톡 원본 대화 추출

카톡방 삼바리 메뉴 > 대화 내용 > 대화 내보내기를 누르면 txt 파일로 내보낼 수 있다.
pc와 모바일 카톡 대화의 싱크가 간혹 안 맞을 때가 있는데, 일반적으로 pc 카톡을 많이 쓰기 때문에 pc 카톡 데이터를 쓴다
카톡 대화 형식 둘러보기

형식을 보면
1. '[이름] [오전or오후 시간] 내용' 형식을 갖추고 있다.
2. 대화방을 나간경우 '[이름]님이 나가셨습니다.' 형식을 갖추고 있다.
이제 위 내용을 정규화하여 텍스트 파일을 dataframe 형태로 만들자.
def katalk_msg_parser(file_path):
katalk_data= list()
out_counting = { }
katalk_msg_pattern = "\[(.*)\] \[(오. [0-9]{1,2}:[0-9]{1,2})\] (.*)"
outoftalk_pattern = "(.*)님이 나갔습니다."
for line in open(file_path, encoding='utf-8'):
if(re.match(katalk_msg_pattern, line)):
katalk_data.append({'user_name': re.match(katalk_msg_pattern,line).group(1),
'date_time': re.match(katalk_msg_pattern,line).group(2),
'text': re.match(katalk_msg_pattern,line).group(3)})
katalk_df = pd.DataFrame(katalk_data)
return katalk_df
우선, 1번과 2번의 패턴을 정규화로 만들었다. 까먹었던 정규화를 다시 보느라 귀차니즘 발동.
katalk_data 리스트에 추가할 때 이름, 시간, 내용을 그룹으로 뽑아서 저장할 수 있게 하였다.
방을 나갔을 때 정규화식은 적었는데, 파이썬 어떤 자료형이 적절할지 나중에 생각거리로 냅두었다.
파일 입력/출력을 UI 상으로 가능할 수 있게 하려고 하는데, 파일을 열 때 인코딩을 명시해줘야 한다는걸 배웠다.
데이터 프레임으로 데이터는 써먹을 수 있게 했으니 다음 공부를 하러 가자.
'Programming > Python' 카테고리의 다른 글
| 로깅 파헤치기 - python logging 모듈 사용기 (0) | 2022.03.11 |
|---|---|
| 정규표현식 연습하기2(feat. 연습문제) (0) | 2022.02.25 |
| 정규표현식 연습하기 with Python (0) | 2022.02.24 |
Comment