Appia의 IT세상

파이썬[Python] 추출된 카톡 대화에서 사람마다 말한횟수 카운팅 하기 본문

Python/Python 응용

파이썬[Python] 추출된 카톡 대화에서 사람마다 말한횟수 카운팅 하기

Appia 2021. 8. 21. 06:55
반응형

파이썬[Python] 추출된 카톡 대화에서 사람마다 말한횟수 카운팅 하기

파이썬[Python] 추출된 카톡 대화에서 사람마다 말한횟수 카운팅 하기

이번 포스팅은 카카오톡의 대화을 분석하는 방법에대해서 이야기를 해보고자 합니다. 게임을 하던지, 아니면 다른 업무를 하던지 카카오톡 단체대화를 많이 사용합니다. 이럴 경우, 카카오톡에서 대화를 추출하여 분석작업을 하곤 합니다. 그래서 이번 포스팅에서는 카카오톡에서 추출된 대화를 바탕으로 사용자마다 몇회 이야기를 했는지에 대해서 분석해보도록 하겠습니다. 

 

먼저 다음 포스팅을 하기 위해서는 카카오톡 대화를 추출하셔야 합니다. 관련해서는 다음 링크에보이는 부분을 참조하여 주시길 바랍니다. 

 

[윈도우10 Windows10]카카오톡 대화방 대화내용 추출하기

 

[윈도우10 Windows10]카카오톡 대화방 대화내용 추출하기

[윈도우10 Windows10]카카오톡 대화방 대화내용 추출하기 카카오톡을 사용하다보면, 다양한 대화 내용들에 대해서 확인할 수 있습니다. 그래서 이 부분들을 활용해야는 경우도 생각보다 많이 있

appia.tistory.com

그럼 먼저 대화를 추출하시면 다음과 같은 화면을 볼 수 있습니다. 

카카오톡 대화 내용 추출 결과 

보시는 바와 같이 다음과 같은 형태로 대화가 추출이됩니다. 

 

[아이디] [시간] 내용

그럼 위의 부분을 바탕으로 파일로 추출되어 있는 카카오톡 내용을 추출해보도록 하겠습니다. 먼저 전체 코드를 살펴보겠습니다. 

import re

def reading_source(path):
    list = []
    listv = {}
    sourcecode = open(path,"r+", encoding='utf-8')
    data=sourcecode.readlines()
    condition = 0
    for idata in data :

        if idata[0] =="[" :
            name = idata.split(']')
            name = name[0][1:]
            print(name)
            if name not in list:
                print(name + " 추가되었습니다.")
                list.append(name)
                listv[name]= 1
            else :
                listv[name] = listv[name] +1
    for i in listv :
        print(i +"\t" + str(listv[i]))


    print(listv)

if __name__ == '__main__':
    mylist = r"C:\Users\Appia\Desktop\0820.txt"

    reading_source(mylist)

먼저 파일을 불러와서, 파일을 realines을 이용하여 각 내용을 줄단위로 읽어옵니다. 그런 후에 첫 부분이 "["부분을 선별하고, 그런후에 "]"기반으로 분리합니다. 그럼 첫번째 맴버가 다음과 같은 형태가 될 것입니다. 

[아이디

이 때 name[0][1:] 부분을 이용하여 이름을 추출합니다. 그런후에 이름 여부를 확인하여 딕셔너리에 선언하고 그렇지 않을 경우에 해당 name부분을 키로 이용하여 해당 값에 1을 추가해줍니다. 

    list = []

...         
            if name not in list: # 리스트 포함 여부 확인 (없을 경우)
                print(name + " 추가되었습니다.")
                list.append(name) # 리스트 맴버 추가 
                listv[name]= 1 #딕서너리 값 추가 
            else : 
                listv[name] = listv[name] +1 (해당 이름이 존재하면 그쪽으로 값을 한개씩 추가)

이와 같은 방법으로 해당 코드를 카운트를 하게 됩니다. 그런 결과를 보면 다음과 같은 결과를 얻을 수 있습니다. 

결과 

이와 같이 각 아이디마다 사람수의 카톡이 명시가 됩니다.

[윈도우10 Windows10]카카오톡 대화방 대화내용 추출하기

 

[윈도우10 Windows10]카카오톡 대화방 대화내용 추출하기

[윈도우10 Windows10]카카오톡 대화방 대화내용 추출하기 카카오톡을 사용하다보면, 다양한 대화 내용들에 대해서 확인할 수 있습니다. 그래서 이 부분들을 활용해야는 경우도 생각보다 많이 있

appia.tistory.com

이번 포스팅에서는 파이썬[Python] 추출된 카톡 대화에서 사람마다 말한횟수 카운팅 하기라는 주제로간단히 포스팅을해봤습니다. 단체카톡이나, 단체톡에 내용에 대해서 사용해보면 약간의 재미를 느낄 수 있습니다. 혹 궁금하신 점이나 무의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 

반응형
Comments