[8기 자녀방] Copilot과 협업 하여 파이썬 코딩해 보기


[GPTers 챌린지 - 8기 부트캠프] 대화 내용을 txt 형식으로 저장한 파일을 가지고 "#인증" 횟수를 카운팅하는 파이썬 프로그램을 AI의 도움으로 짜 보았습니다.

원래 ChatGPT로 할 생각이였는데, 오늘(11/22) 오전 ChatGPT가 아픈 관계로 부득이하게 Edge의 Copilot을 이용하게 되었는데, 결과적으로 너무나 편하게 작업을 한 듯 합니다.

먼저, 작업 환경은 다음과 같습니다.

  • 왼쪽 노트북 : Google CoLab / 오른쪽 모니터 : Edge(+ Copilot)

  • Edge 화면 : 대화 내용 txt 파일 / Copilot

  • Copilot 모드 : "보다 정밀한 모드"

AI의 도움으로 문제를 해결한다는 것을 목적으로 하였기 때문에, 가급적이면 코딩을 잘 모른다라는 느낌으로 하나 하나 진행을 하였습니다. (“자녀와 함께 AI”라는 부트캠프의 컨셉에 맞게)

[다운 받은 대화 내용 txt 파일 형태]

...
...
GPT에게 SNS 발행에 필요한 해시태그를 나열해달라고 했습니다
[닉네임] [23:58] 사진
[닉네임] [23:58] 사진 2장
[닉네임] [23:58] #인증
과거에 산 룰루레몬 여름재질 조거 사이즈 기반으로 겨울재질 조거 사이즈 추천을 gpt 유료, 무료에게 각각 물어봤는데 이건 유료보다 무료가 오히려 추천을 잘하는 것 같은.. 
[닉네임] [23:59] #인증
생성AI의 발전으로 인한 유망직업과 위협받는 직업
--------------- 2023년 11월 21일 화요일 ---------------
[닉네임] [00:00] 사진
[닉네임] [00:00] #인증
급하게 지피티로 질문하나 해봅니다 ㅠ 
[닉네임] [00:00] 하지만 늦었네요 ㅎㅎ
배움이님이 들어왔습니다.
[닉네임] [04:14] #인증
...
...


[edge에 txt 파일을 띄운 후 Copilot과의 작업 시작]


  1. Copilot한테 할 수 있는지 확인 —> 1번에 바로 기본 틀 완성!!!

** 질문

이 문서에서 아이디별로 "#인증"이라는 글을 몇 번 남겼는지를 카운팅하고 싶은데, 이걸 파이썬으로 코딩해 줄 수 있겠어 ?
** 답변

네, 파이썬을 사용하여 특정 텍스트를 카운팅하는 코드를 작성할 수 있습니다. 아래는 간단한 예시입니다:

```python
# 필요한 라이브러리를 불러옵니다.
import re

# 문서를 문자열로 표현합니다.
# 이 부분은 실제 문서의 내용으로 대체해야 합니다.
document = """
user1: #인증
user2: #인증
user1: #인증
user3: #인증
"""

# 아이디와 '#인증'이 함께 있는 부분을 찾습니다.
matches = re.findall(r'(user\d+): #인증', document)

# 각 아이디별로 '#인증'이 몇 번 나왔는지 카운팅합니다.
counts = {}
for user in matches:
    if user not in counts:
        counts[user] = 0
    counts[user] += 1

# 결과를 출력합니다.
for user, count in counts.items():
    print(f'{user}: {count}')
```

이 코드는 문서 내에서 '#인증'이라는 글을 남긴 아이디를 찾아서, 각 아이디가 '#인증'을 몇 번 남겼는지 카운팅합니다. 'document' 변수에 실제 문서의 내용을 넣어주시면 됩니다. 이 코드는 아이디가 'user'로 시작하고 뒤에 숫자가 붙는 형태를 가정하고 작성되었습니다. 실제 아이디의 형태에 따라 정규 표현식을 적절히 수정해주셔야 합니다. 또한, 이 코드는 아이디와 '#인증' 사이에 콜론과 공백이 있는 것을 가정하고 있습니다. 실제 문서의 형태에 따라 이 부분도 적절히 수정해주시면 됩니다. 이 코드를 실행하면, 각 아이디가 '#인증'을 몇 번 남겼는지 출력해줍니다. 이 코드를 참고로 하여, 원하시는 작업을 수행하는 코드를 작성하실 수 있을 것입니다.


  1. “#인증” 부분의 구조 알려 줌.

** 질문

“#인증”이 있는 부분의 형식이 예를 들어, “[닉네임] [17:51] #인증“

이렇게 되었는데, 이걸 반영해 줘.
** 답변

네, 그런 형식을 가진 문서에 대해 작동하는 코드를 아래에 제공드립니다:

```python
# 필요한 라이브러리를 불러옵니다.
import re

# 문서를 문자열로 표현합니다.
# 이 부분은 실제 문서의 내용으로 대체해야 합니다.
document = """
[소나짱(청강)] [17:51] #인증
[소나짱(청강)] [18:51] #인증
[청강짱(소나)] [19:51] #인증
"""

# 아이디와 '#인증'이 함께 있는 부분을 찾습니다.
matches = re.findall(r'\[(.+)\] \[\d+:\d+\] #인증', document)

# 각 아이디별로 '#인증'이 몇 번 나왔는지 카운팅합니다.
counts = {}
for user in matches:
    if user not in counts:
        counts[user] = 0
    counts[user] += 1

# 결과를 출력합니다.
for user, count in counts.items():
    print(f'{user}: {count}')
```

이 코드는 문서 내에서 '#인증'이라는 글을 남긴 아이디를 찾아서, 각 아이디가 '#인증'을 몇 번 남겼는지 카운팅합니다. 'document' 변수에 실제 문서의 내용을 넣어주시면 됩니다. 이 코드는 아이디가 대괄호 안에 있고, 그 뒤에 시간이 대괄호 안에 있는 것을 가정하고 작성되었습니다. 이 코드를 실행하면, 각 아이디가 '#인증'을 몇 번 남겼는지 출력해줍니다. 이 코드를 참고로 하여, 원하시는 작업을 수행하는 코드를 작성하실 수 있을 것입니다.
** 출력 결과

소나짱(청강): 7
GPTers - 윤누리: 20
드론: 2
kuri: 15
박정기: 53
미또/제조/기획: 22
...
...
...


  1. 결과 출력 업그레이드

** 질문

결과 출력하는 부분에 다음을 적용시켜 줘. 
* 테이블 형태로 출력
* 컬럼은 : "아이디", "인증 개수"
* count를 내림차순으로 정렬
** 출력 결과

아이디                          인증 개수
----------------------------  -----------
박정기                                 53
GPTGPS ellie Kim                       32
미또/제조/기획                         22
DECK                                   22
GPTers - 윤누리                        20
이른아침에                             20
광밤 | 자녀와함께AI                    19
키믄별                                 18
kuri                                   15
...
...
...


  1. 날짜별 카운팅 / 출력

날짜별로 카운팅 해서 출력해 줘.

  1. 대화 내용 파일 입력 방식 변경

(txt 파일을 직접 입력 받는 방식으로 수정해 줘.)


  1. 결과 출력 형식 고도화

출력하는 부분에서는 윤누리님의 올려 주신 양식을 캡처해서 이렇게 해 줘 라고 하니, 바로 알아 먹고 반영해 주었습니다. 


  1. 최종 출력 결과


마지막 단계에서 일부 애로 사항이 있어서 CoLab에서 Jupiter Notebook으로 갈아 타기는 했지만, 테이블 형태로 출력하고 csv 파일로 저장하는 것 까지 잘 마무리하였습니다.


느낀 점

  • 최종 결과물을 만들어 내는 데 한 시간 정도 시간이 걸린 듯 한데, 혼자 힘으로는 그 짧은 시간에 절대 하지 못했을 듯. (아니, 아예 시도 자체를 안 했을 거라고 생각합니다.)

  • 다시금 AI의 힘은 대단하구나라는 것을 느꼈습니다. 대충 얘기해도 알아 듣고 처리하는 것도 그렇고, 결과물의 품질도 그렇고.. 특히나.. 결과를 만들어 내는 속도감은…

  • 어제(11/21) CanRobot님의 수업이 도움이 되었습니다~ 감사합니다!!

  • 앞으로 ChatGPT나 Copilot이라는 친구의 도움이 있다면 지금까지 생각하지 못한 여러 가지 일들을 과감히 시도해 볼 수 있을 듯 합니다.


2
2개의 답글

👉 이 게시글도 읽어보세요

모집 중인 AI 스터디