하나의 원문에서 전체 빈도표와 두 그래프를 만들고 수치에 근거한 해석까지 증명하기
오늘의 실습 목표 여덟 가지 보기
- 저작권과 개인정보 문제가 없는 수업 창작 텍스트 세 편 중 한 편을 선택할 수 있습니다.
- 선택한 원문을
raw_text에 보존하고 제목·출처·이용 조건을 기록할 수 있습니다. - 문장 분리, 문장부호 정리, 공백 기준 토큰화, 지정 토큰 제외의 순서를 설명할 수 있습니다.
- 제외 전후의 전체 토큰 수와 고유 토큰 수가 달라지는 이유를 확인할 수 있습니다.
word와count열을 가진 전체 빈도표 CSV를 저장할 수 있습니다.- 상위 열 개 토큰의 가로 막대그래프와 열두 문장의 길이 흐름 그래프를 만들 수 있습니다.
- 그래프에서 실제로 읽은 수치를 질문·관찰 두 문장·해석의 한계로 작성할 수 있습니다.
- 새 런타임 전체 실행에서 자동 검사 PASS를 받고 세 제출 파일을 완성할 수 있습니다.
자동 검사 PASS + 세 파일 제출 확인 = 즉시 귀가
0-5분의 공통 안내가 끝나면 각자 자신의 속도로 진행합니다. 마지막 셀에 완료 문구가 보이고, 실행 결과가 남은 노트북·전체 빈도표 CSV·포스터 PNG를 제출한 학생은 수업 종료 시각을 기다리지 않고 귀가합니다.
속도는 평가 항목이 아닙니다. 25분에 통과한 학생과 49분에 통과한 학생은 같은 필수 목표를 달성한 것입니다. 복사한 문장을 빨리 제출하는 것보다 선택한 텍스트의 실제 수치와 자신의 설명이 일치하는지가 중요합니다.
Colab 사본을 만들고 파일명부터 바꿉니다
학생이 직접 수정하는 곳은 STEP 1과 STEP 5입니다. 사본을 만든 뒤 week12_학번_이름.ipynb로 이름을 바꾸고 첫 번째 셀부터 실행합니다.
- 01준비사본과 파일명
- 02선택세 텍스트 중 한 편
- 03보존원문·출처·이용 조건
- 04분석문장·토큰·빈도
- 05시각화막대 10 + 점 12
- 06서술질문·관찰·한계
- 07저장전체 CSV + PNG
- 08검증새 런타임 PASS
- 09귀가세 파일 제출
최종 확인
완료 문구 + 실행 결과가 있는 노트북 + 다시 열리는 CSV·PNG
교수자는 자동 검사의 초록 표시, CSV의 전체 행, PNG의 크기와 글자 잘림, 세 파일의 동일한 학번·이름을 확인합니다. 포스터의 색 취향이나 먼저 끝낸 순서는 판정하지 않습니다.
이번 교시에 완성할 세 결과물
| 결과물 | 필수 내용 | 제출 파일명 |
|---|---|---|
| 실행 가능한 Colab 노트북 | 텍스트 선택, 원문 보존, 전처리, 빈도 계산, 두 그래프, 자신의 문장과 자동 검사 PASS | week12_학번_이름.ipynb |
| 전체 단어 빈도표 CSV | word와 count 두 열, 모든 분석 토큰의 종류와 반복 횟수 | week12_학번_이름_word_frequency.csv |
| 텍스트 패턴 포스터 PNG | 1600 × 2200픽셀, 막대 열 개, 문장 점 열두 개, 질문·관찰 두 문장·한계·출처·규칙 | week12_학번_이름_text_poster.png |
귀가 조건: 제출 전에 열다섯 가지 확인
처음에는 세 결과물과 수정할 셀 두 곳만 기억합니다. 제출 직전에 아래 목록을 펼쳐 자동 검사와 같은 순서로 확인합니다.
열다섯 가지 귀가 조건 펼쳐 보기
- 노트북 파일명
week12_학번_이름.ipynb형식으로 바꾸었습니다. - 제출 정보STEP 1의 학번과 이름을 자신의 정보로 수정했습니다.
- 텍스트 선택세 ID 중 하나를 정확히 입력했고 선택한 제목을 출력으로 확인했습니다.
- 원문 보존
raw_text와 제목·출처·이용 조건·지정 제외 목록을 바꾸지 않았습니다. - 문장 구조분리된 문장이 정확히 열두 개이며 문장 순서가 1부터 12까지 이어집니다.
- 토큰 수량지정 토큰 제외 전후의 전체 토큰 수와 고유 토큰 수가 선택한 텍스트의 기준값과 같습니다.
- 전체 빈도표CSV가 상위 열 개만이 아니라 모든 고유 토큰을
word와count열로 담습니다. - 빈도 막대상위 열 개 토큰과 실제 횟수가 가로 막대 및 수치 주석으로 보입니다.
- 문장 흐름문장 번호 1-12와 토큰 수 열두 개가 선과 점으로 정확히 연결됩니다.
- 분석 질문기본 문장과 다른 20자 이상의 질문을 작성하고 물음표를 넣었습니다.
- 빈도 관찰최상위 토큰과 실제 반복 횟수를 포함한 30자 이상의 문장을 작성했습니다.
- 흐름 관찰가장 긴 문장의 순서와 토큰 수를 포함한 30자 이상의 문장을 작성했습니다.
- 해석 한계공백 기준 토큰화 또는 형태소 분석과의 차이를 30자 이상으로 설명했습니다.
- 결과 크기CSV를 다시 열 수 있고 PNG가 정확히 1600 × 2200픽셀이며 글자가 잘리지 않습니다.
- 최종 검증새 런타임에서 모두 실행하여 완료 문구를 확인하고 세 파일을 제출했습니다.
자동 검사가 판정하는 것과 판정하지 않는 것
자동 검사는 실행 순서, 학번·이름, 텍스트 선택, 원문 보존, 문장·토큰 수, CSV 구조, 그래프 데이터, 문장별 필수 근거, 파일명과 이미지 크기를 확인합니다. 어떤 색이 더 아름다운지, 어느 텍스트를 골랐는지, 몇 분 만에 끝냈는지는 평가하지 않습니다.
50분 진행 기준
시간표는 기다려야 하는 시각이 아니라 현재 위치를 확인하는 기준입니다. 먼저 작업을 시작하고, 진행이 막혔을 때 상세 시간표를 펼쳐 자신의 위치를 찾습니다.
구간별 완료 표시가 있는 상세 시간표 펼쳐 보기
| 시간 | 수행 단계 | 완료 표시 |
|---|---|---|
| 0-5분 | 미션 안내, 노트북 열기, Drive 사본 저장, 학번·이름 입력, 텍스트 한 편 선택 | 자신의 노트북과 선택한 제목이 보임 |
| 5-11분 | 원문, 제목, 출처, 이용 조건, 지정 제외 토큰과 열두 문장 확인 | raw_text 미리보기와 문장 수 12 출력 |
| 11-19분 | 문장부호 정리, 공백 기준 토큰화, 지정 토큰 제외 전후 수량 확인 | 전체 토큰 수·고유 토큰 수와 상위 열 개 출력 |
| 19-28분 | 전체 빈도표 구조 확인, CSV 저장, 가로 막대 열 개와 횟수 검토 | word·count 전체 행과 막대 열 개 |
| 28-36분 | 열두 문장의 토큰 수와 순서별 흐름 그래프 검토 | 문장 번호 1-12, 점 열두 개, 각 점의 토큰 수 |
| 36-43분 | 질문, 빈도 관찰, 흐름 관찰, 공백 기준 토큰화 한계 작성과 포스터 생성 | 자신의 네 문장과 두 그래프가 있는 1600 × 2200 PNG |
| 43-47분 | 세 파일명과 수치 일치 점검, 새 런타임에서 모두 실행, 자동 검사 | 열다섯 개 초록 표시와 완료 문구 |
| 47-50분 | 실행 결과가 있는 노트북·전체 CSV·PNG 다운로드와 제출 | 세 파일 업로드 확인 후 즉시 귀가 |
35분에 모든 조건을 충족했다면 바로 새 런타임 검사를 실행하고 제출할 수 있습니다. 특정 단계에서 오래 머물렀다면 오류 메시지의 조건 이름을 먼저 읽고 해당 STEP만 고칩니다.
교수자 운영 메모 · 공통 설명은 어디까지 하는가?
0-5분에는 세 제출 파일, 편집 셀 두 개, 완료 문구와 귀가 절차만 시연합니다. 분석 코드를 다시 실시간으로 입력하지 않습니다. 학생이 막히면 FINAL CHECK의 실패 조건을 먼저 읽게 하고, 학번·선택 문제는 STEP 1, 해석 문장 문제는 STEP 5, 수량 문제는 수정하지 않아야 할 셀의 변경 여부를 확인하도록 안내합니다.
교수자 운영 메모 · 최종 확인을 1분 안에 하는 순서
완료 문구, 세 파일명, CSV의 두 열과 전체 행, PNG의 1600 × 2200 크기, 포스터 하단의 질문·관찰·한계·출처를 차례대로 확인합니다. 자동 검사와 파일 내용이 모두 일치하면 제출 시간을 기록하고 귀가를 승인합니다.
STEP 0 · 노트북 사본과 파일명 준비
- 위의 Colab에서 시작을 누르거나 내려받은
.ipynb를 Colab에 업로드합니다. - 파일 → Drive에 사본 저장을 선택합니다.
- 상단 파일명을 눌러
week12_학번_이름.ipynb로 바꿉니다. - 노트북에는 코드 셀이 아홉 개 있습니다. 학생이 수정하는 곳은
EDIT가 적힌 STEP 1과 STEP 5입니다. - 처음에는 STEP 0부터 STEP 4까지 순서대로 실행해 선택한 텍스트의 기준 수치를 확인합니다.
노트북이 Colab에서 직접 열리지 않을 때
노트북 내려받기를 눌러 파일을 저장합니다. Google Colab ↗ 첫 화면에서 업로드 탭을 선택하고 week-12-text-pattern-mission.ipynb를 엽니다.
왜 공개 원본을 바로 수정하지 않고 사본을 만드는가?
공개 파일은 모든 학생이 같은 조건에서 시작하는 기준입니다. Drive 사본을 만들면 자신의 학번·선택·관찰 문장과 실행 결과가 개인 파일에 남고, 잘못 수정했을 때 공개 원본과 비교하여 복구할 수 있습니다.
STEP 1 · 학번·이름 입력과 텍스트 선택
STEP 1의 세 값만 먼저 수정합니다. 학번과 이름에는 공백이나 슬래시를 넣지 않습니다. text_choice에는 아래 ID 가운데 하나를 철자까지 정확히 입력합니다.
student_id = "20261234"
student_name = "김하늘"
text_choice = "rain_garden"
| 텍스트 ID | 제목 | 주요 장면 | 문장 수 |
|---|---|---|---|
library_night | 밤의 도서관 | 빛·학생·지도·질문이 반복되는 늦은 도서관 | 12 |
rain_garden | 비 온 뒤의 정원 | 물방울·씨앗·꽃과 정원사의 기록 | 12 |
morning_market | 아침 시장의 목소리 | 사과·빵·꽃과 상인·손님의 대화 | 12 |
어떤 글을 선택해도 난이도와 점수는 같습니다. 선택은 분석 결과를 서로 다르게 만들기 위한 것이며, 특별히 더 쉬운 정답 텍스트는 없습니다.
STEP 1 출력에 자신의 학번·이름과 선택한 텍스트의 ID·제목이 함께 보입니다.
KeyError와 함께 텍스트 ID가 잘못되었다고 나올 때
library_night, rain_garden, morning_market 가운데 하나를 그대로 복사합니다. 한글 제목을 넣거나 하이픈을 사용하지 않습니다. 문자열 양쪽의 따옴표도 남겨 둡니다.
STEP 2 · 원문과 출처 정보 보존
STEP 2는 수정하지 않습니다. 선택한 레코드에서 원문과 메타데이터를 꺼내되, 각각 다른 변수에 저장합니다.
| 변수 | 담는 내용 | 보존 이유 |
|---|---|---|
raw_text | 문장부호까지 포함한 선택 원문 | 정제 과정이 원문을 바꾸지 않았는지 비교하기 위해 |
text_title | 작품 제목 | 포스터와 제출 결과에서 분석 대상을 밝히기 위해 |
text_source | 교수자 창작 자료라는 출처 | 텍스트의 제공자와 자료 성격을 기록하기 위해 |
text_usage | 수업 목적 이용 허용 조건 | 분석·시각화·제출의 허용 범위를 밝히기 위해 |
excluded_tokens | 텍스트별 지정 토큰 네 개 | 제외 선택을 감추지 않고 같은 조건으로 비교하기 위해 |
raw_text에서 조사나 문장부호를 직접 지우면 원문 보존 검사가 실패합니다. 분석용 변형은 다음 셀의 normalized_text와 tokens에 저장됩니다.
제목·출처·이용 조건, 원문 글자 수, 문장 수 12, 지정 제외 토큰 네 개와 원문 미리보기가 출력됩니다.
문장 수가 12가 아니라면
STEP 2 또는 텍스트 사전이 있는 STEP 0을 수정했을 가능성이 큽니다. 새 사본을 열거나 해당 셀을 공개 원본과 비교하여 복구합니다. 이번 미션에서는 학생이 직접 원문을 붙여 넣지 않습니다.
한글이 네모나 빈칸으로 보일 때
STEP 0을 다시 실행하여 Colab에 나눔글꼴이 설치되고 Matplotlib에 등록되었는지 확인합니다. 설치가 끝난 뒤 STEP 4와 STEP 6을 다시 실행합니다. 런타임을 새로 열었다면 글꼴도 다시 준비해야 합니다.
STEP 3 · 공백 기준 토큰화와 정확한 수량 확인
STEP 3은 같은 규칙을 세 텍스트에 적용합니다. 먼저 마침표·쉼표 같은 문장부호를 공백으로 바꾸고, split()으로 공백 기준 토큰을 만듭니다. 이어서 텍스트별 지정 토큰 네 개를 제외합니다.
re.split()으로 원문을 열두 문장으로 나눕니다.re.sub()로 분석에 쓰지 않는 문장부호를 공백으로 바꿉니다.split()으로 원문 토큰 목록인raw_tokens를 만듭니다.- 지정 토큰을 제외해 분석용
tokens를 만듭니다. Counter(tokens)로 모든 분석 토큰의 반복 횟수를 셉니다.- 각 문장은 지정 토큰을 빼기 전 공백 기준 토큰 수로 길이를 계산합니다.
| 제목 | 원문 토큰·종류 | 분석용 토큰·종류 | 최상위 토큰 | 문장 길이 범위 |
|---|---|---|---|---|
| 밤의 도서관 | 76 · 65 | 72 · 61 | 빛 3회 | 5-7토큰 |
| 비 온 뒤의 정원 | 82 · 70 | 78 · 66 | 비가 3회 | 5-8토큰 |
| 아침 시장의 목소리 | 91 · 83 | 87 · 79 | 빵 3회 | 6-9토큰 |
‘종류’는 서로 다른 토큰의 개수입니다. 빛이 세 번 나와도 토큰 종류에서는 하나로 셉니다. 반대로 빛, 빛은, 빛을은 공백 기준 규칙에서 서로 다른 문자열이므로 세 종류가 됩니다.
선택한 텍스트의 제외 전후 수량이 위 표와 같고, 상위 열 개 토큰과 열두 개의 문장 길이가 출력됩니다.
토큰 수가 기준표와 다를 때
STEP 0·2·3을 수정했는지 확인합니다. 원문, 정규식, 지정 제외 목록 가운데 하나가 바뀌면 수량이 달라집니다. 학생이 고치는 셀은 STEP 1과 STEP 5뿐이므로 분석 셀을 원래 상태로 되돌린 뒤 다시 실행합니다.
왜 문장 길이에서는 지정 토큰을 제외하지 않는가?
문장 길이는 원문에 나타난 공백 기준 단어 덩어리의 리듬을 보기 위한 값입니다. 빈도 분석에서만 지정 토큰을 제외하고, 문장 길이에는 원문의 모든 토큰을 포함합니다. 두 그래프가 서로 다른 질문에 답하므로 계산 규칙도 구분합니다.
STEP 4 · 전체 빈도표 CSV와 상위 열 개 막대 확인
frequency_df는 분석용 토큰의 모든 종류를 빈도순으로 담습니다. 포스터에는 읽기 쉬운 상위 열 개만 그리지만, CSV에는 나머지 토큰도 빠짐없이 저장합니다.
CSV 열word, count
밤의 도서관61 rows · count 합계 72
비 온 뒤의 정원66 rows · count 합계 78
아침 시장의 목소리79 rows · count 합계 87
- 표의 첫 두 열이
word와count인지 확인합니다. count가 큰 값부터 작은 값으로 이어지는지 확인합니다.- 표의 행 수가 선택한 텍스트의 분석용 토큰 종류 수와 같은지 확인합니다.
count열의 합이 분석용 전체 토큰 수와 같은지 확인합니다.- 가로 막대가 열 개이고 가장 빈도가 높은 토큰이 위쪽에 보이는지 확인합니다.
- 각 막대 끝의 숫자와 표의
count값이 같은지 비교합니다.
전체 빈도표와 포스터용 상위 열 개를 구분하고, 열 개 막대의 길이와 끝 숫자가 일치합니다.
CSV가 열 행만 저장되었을 때
저장 대상은 top10_df가 아니라 frequency_df입니다. 제공 노트북의 STEP 6은 전체 표를 저장하도록 고정되어 있습니다. 셀을 수정했다면 원래 코드로 복구하고 다시 실행합니다.
가장 큰 막대가 아래쪽에 있을 때
가로 막대그래프는 첫 행을 아래부터 배치합니다. 노트북은 top10_df.iloc[::-1]로 표시 순서를 뒤집어 가장 높은 순위를 위에 놓습니다. 데이터 표 자체의 빈도순은 바꾸지 않습니다.
STEP 5 · 열두 문장의 길이 흐름 확인
두 번째 그래프의 가로축 1-12는 시간이나 날짜가 아니라 원문에서 문장이 등장한 순서입니다. 세로축은 각 문장을 문장부호 없이 공백 기준으로 나눈 토큰 수입니다.
- 가로축 눈금이 1부터 12까지 빠짐없이 보이는지 확인합니다.
- 점이 정확히 열두 개인지 확인합니다.
- 각 점 위의 숫자가
sentence_lengths목록과 같은지 확인합니다. - 출력에서 가장 긴 문장의 번호와 토큰 수를 찾습니다.
- 출력에서 가장 짧은 문장의 번호와 토큰 수를 찾습니다.
- 그래프의 상승·하강을 사건의 시간 변화로 표현하지 않도록 축 이름을 읽습니다.
문장이 길어졌다는 사실만으로 감정이 강해졌거나 사건이 중요해졌다고 단정할 수 없습니다. 현재 그래프가 직접 보여 주는 것은 공백 기준 토큰 수의 차이입니다. 의미에 관한 설명은 원문을 다시 읽고 별도의 근거를 제시해야 합니다.
열두 점의 순서와 수치가 출력 목록과 같고, 가장 긴 문장의 번호와 토큰 수를 말할 수 있습니다.
선이 오르므로 시간이 흐른다고 써도 되는가?
그렇게 쓰지 않습니다. 가로축은 문장 순서이며 실제 시간 간격을 측정하지 않았습니다. “8번 문장은 6토큰이고 9번 문장은 7토큰이므로 한 토큰 길어졌다”처럼 현재 값과 순서만 설명합니다.
STEP 6 · 질문·관찰 두 문장·한계 작성
STEP 5에는 학생이 직접 바꾸는 문자열 네 개가 있습니다. 각 문장은 포스터의 장식 문구가 아니라 그래프를 읽는 순서를 안내하는 분석 기록입니다.
| 문장 | 반드시 포함할 근거 | 통과 조건 |
|---|---|---|
poster_question | 반복 단어와 문장 길이 중 무엇을 살필지 묻는 내용 | 기본 문장과 다름 · 20자 이상 · 물음표 |
frequency_observation | 출력된 최상위 토큰과 실제 반복 횟수 | 30자 이상 · 토큰 문자열 · 숫자 |
rhythm_observation | 가장 긴 문장 가운데 하나의 번호와 최대 토큰 수 | 30자 이상 · 문장 번호 · 숫자 |
limitation_statement | 공백 기준 토큰화 또는 형태소 분석과의 차이 | 30자 이상 · ‘공백’ 또는 ‘형태소’ |
아래 문장은 밤의 도서관을 선택했을 때의 작성 구조를 보여 줍니다. 다른 텍스트를 선택했다면 STEP 3 출력의 최상위 토큰, 횟수, 가장 긴 문장 번호와 길이를 사용해야 합니다.
poster_question = (
"‘밤의 도서관’에서 반복 단어와 문장 길이는 어떤 패턴을 보이는가?"
)
frequency_observation = (
"‘빛’은 3회 등장하여 선택한 텍스트에서 가장 자주 반복된 토큰 가운데 하나다."
)
rhythm_observation = (
"가장 긴 2번 문장은 7토큰이며 전체 문장도 5토큰에서 7토큰 사이에 모여 있다."
)
limitation_statement = (
"공백 기준 토큰화는 ‘빛’, ‘빛은’, ‘빛을’을 서로 다른 토큰으로 세므로 형태소 단위 의미를 직접 보여 주지 못한다."
)
빈도 관찰에서는 “중요하다”보다 “3회 등장한다”처럼 그래프가 직접 증명하는 내용을 먼저 씁니다. 흐름 관찰에서는 “리듬이 아름답다”보다 문장 번호와 토큰 수를 먼저 제시합니다. 한계에서는 분석 규칙 때문에 놓친 정보가 무엇인지 구체적인 토큰 예와 함께 설명합니다.
네 문장을 처음부터 다시 읽었을 때 질문에는 물음표가 있고, 관찰 두 문장에는 선택한 텍스트의 실제 숫자가 있으며, 한계에는 분석 규칙이 드러납니다.
30자 이상인데 빈도 관찰 검사가 실패할 때
STEP 5 위쪽에 출력된 최상위 토큰과 횟수를 그대로 확인합니다. 문장 안에 토큰 문자열과 아라비아 숫자를 모두 포함해야 합니다. 예를 들어 rain_garden은 비가와 3이 필요합니다.
흐름 관찰 검사에서 문장 번호가 틀렸다고 나올 때
가장 긴 문장이 여러 개일 수 있습니다. STEP 3 출력의 가장 긴 문장 목록에 있는 번호 가운데 하나와 바로 뒤의 최대 토큰 수를 사용합니다. 번호만 쓰고 토큰 수를 빠뜨리지 않았는지도 확인합니다.
한계 문장과 감상 문장은 어떻게 다른가?
“포스터가 단순해 보인다”는 시각적 감상입니다. “공백 기준에서는 ‘학생은’과 ‘학생이’를 다른 토큰으로 세므로 같은 어근의 반복을 합치지 못한다”는 분석 방법의 한계입니다. 이번 조건은 두 번째와 같은 문장을 요구합니다.
STEP 7 · 1600 × 2200 포스터와 전체 CSV 점검
STEP 6을 실행하면 학번과 이름을 사용해 CSV와 PNG가 자동으로 저장됩니다. 포스터에는 질문, 두 그래프, 관찰 두 문장, 분석의 한계, 출처, 이용 조건, 지정 제외 토큰이 위에서 아래로 배치됩니다.
노트북week12_학번_이름.ipynb
전체 빈도표week12_학번_이름_word_frequency.csv
포스터week12_학번_이름_text_poster.png · (1600, 2200)
- Colab 출력에 저장된 CSV의 행 수와 PNG 크기가 보이는지 확인합니다.
- 포스터 제목 아래에 자신의 질문이 잘리지 않고 보이는지 확인합니다.
- 빈도 막대 열 개와 각 막대 끝의 횟수를 확인합니다.
- 문장 점 열두 개와 가로축 번호 1-12를 확인합니다.
- 하단의 관찰 두 문장과 한계, 출처, 이용 조건, 분석 규칙을 읽습니다.
- CSV를 내려받아 행 수와
count합계가 STEP 3 출력과 같은지 확인합니다.
현재 문장으로 다시 저장된 CSV와 PNG가 모두 열리고, 포스터의 크기가 1600 × 2200이며 텍스트와 축이 잘리지 않습니다.
PNG 크기가 1600 × 2200이 아닐 때
STEP 6의 figsize=(8, 11)과 dpi=200을 바꾸지 않습니다. 둘을 곱하면 가로 1600픽셀, 세로 2200픽셀이 됩니다. 셀을 복구하고 다시 실행하여 이전 파일을 덮어씁니다.
수정한 문장이 포스터에 보이지 않을 때
STEP 5만 실행하고 저장을 담당하는 STEP 6을 다시 실행하지 않았을 수 있습니다. STEP 5와 STEP 6을 순서대로 실행해 PNG를 현재 문장으로 덮어씁니다. 최종 제출 전에는 새 런타임 모두 실행으로 이 문제를 한 번 더 제거합니다.
포스터 아래쪽 글자가 겹칠 때
각 문장을 30-70자 정도의 한 문장으로 정리합니다. 같은 내용을 여러 번 반복하거나 줄바꿈 문자를 직접 넣지 않습니다. 수치 근거와 한계를 한 문장 안에 간결하게 담은 뒤 STEP 6을 다시 실행합니다.
STEP 8 · 새 런타임 전체 실행과 자동 검사 PASS
- STEP 1의 학번·이름·텍스트 ID와 STEP 5의 네 문장을 마지막으로 확인합니다.
- 런타임 → 세션 다시 시작을 선택합니다.
- 런타임 → 모두 실행을 한 번 선택합니다.
- STEP 0부터 FINAL CHECK까지 여덟 코드 셀이 순서대로 끝날 때까지 기다립니다.
- FINAL CHECK에서 열다섯 개의 초록 표시와 완료 문구를 확인합니다.
- 마지막 DOWNLOAD 셀이 CSV와 PNG를 내려받으면 두 파일을 안전한 폴더에 저장합니다.
- 새 런타임에서 STEP 0부터 여덟 코드 셀 순서대로 실행
- 학번·이름과 안전한 파일명
- 수업 창작 텍스트 세 편 중 한 편 선택
- 제목·출처·이용 조건 기록
raw_text와 지정 제외 목록 보존- 열두 문장과 문장별 토큰 수
- 제외 전후 전체 토큰 수와 고유 토큰 수
word·count전체 빈도표와 상위 열 개- 막대 열 개와 문장 점 열두 개
- 물음표가 있는 20자 이상의 분석 질문
- 최상위 토큰과 횟수가 있는 30자 이상의 빈도 관찰
- 문장 순서와 토큰 수가 있는 30자 이상의 흐름 관찰
- 공백 기준 토큰화의 30자 이상 한계
- 규칙에 맞는 노트북·CSV·PNG 파일명
- 현재 분석과 일치하는 전체 CSV와 1600 × 2200 PNG
WEEK 12 TEXT PATTERN MISSION COMPLETE
FINAL CHECK 셀은 수정하지 않는다
검사 셀에는 아직 배우지 않은 파일 비교와 이미지 크기 확인 코드가 포함되어 있습니다. 코드를 고치는 대신 빨간 표시 옆의 한글 조건을 읽고 STEP 1 또는 STEP 5를 수정합니다. 수량 조건이 실패했다면 나머지 셀을 원본과 비교합니다.
실행 순서 조건만 실패할 때
중간 셀을 여러 번 실행하면 실행 번호가 1부터 8까지 이어지지 않습니다. 수정 내용을 저장하고 세션을 다시 시작한 뒤 모두 실행을 한 번만 선택합니다. 실행 중에는 개별 재생 버튼을 누르지 않습니다.
저장 파일 조건만 실패할 때
학번이나 이름을 마지막에 바꾸고 STEP 6을 다시 실행하지 않았을 수 있습니다. 새 런타임에서 모두 실행하면 현재 학번·이름으로 CSV와 PNG가 다시 생성됩니다. Colab 왼쪽 파일 목록의 새로고침도 누릅니다.
여러 파일 다운로드가 브라우저에서 차단될 때
주소창 오른쪽의 다운로드 차단 표시에서 여러 파일 다운로드를 허용하거나 Colab 왼쪽 파일 목록에서 CSV와 PNG의 메뉴를 열어 하나씩 다운로드합니다. 노트북은 상단 파일 → 다운로드 → .ipynb 다운로드에서 받습니다.
STEP 9 · 세 파일 제출 후 즉시 귀가
- 마지막 셀에 WEEK 12 TEXT PATTERN MISSION COMPLETE가 보이는지 확인합니다.
- 파일 → 다운로드 → .ipynb 다운로드로 실행 결과가 포함된 노트북을 받습니다.
- 전체 빈도표 CSV와 포스터 PNG를 각각 다운로드합니다.
- 세 파일의 학번과 이름이 모두 같고 확장자가
.ipynb,.csv,.png인지 확인합니다. - 제출함에 세 파일을 올리고 업로드 완료 상태를 교수자에게 보여 줍니다.
- 최종 확인을 받으면 남은 수업 시간과 관계없이 즉시 귀가합니다.
완료 판정
자동 검사 PASS, 실행 결과가 있는 노트북, 모든 분석 토큰을 담은 빈도표 CSV, 두 그래프와 근거 문장을 담은 1600 × 2200 포스터 PNG가 확인되면 오늘의 필수 학습 목표를 달성했습니다. 작업 속도는 점수에 반영하지 않습니다.
세 파일 가운데 하나가 보이지 않을 때
CSV와 PNG는 STEP 6 실행 후 생성됩니다. Colab 왼쪽 파일 목록을 새로고침하고 파일명을 검색합니다. 노트북은 자동 생성 파일이 아니라 현재 Colab 문서 자체이므로 상단 파일 메뉴에서 별도로 다운로드합니다.
선택 확장 · 단어를 원문의 문맥으로 돌려놓기
아래 활동은 귀가 조건이 아니며 추가 점수도 없습니다. 먼저 통과한 세 파일을 제출하고 보존한 뒤, 원할 때만 노트북 사본에서 수행합니다.
- 상위 토큰 하나를 고릅니다.
- 그 문자열이 포함된 문장의 번호와 원문을 모두 찾습니다.
- 같은 문자열이 서로 다른 맥락에서 쓰였는지 비교합니다.
- “빈도가 같아도 맥락은 같지 않다”는 사실을 두 문장으로 기록합니다.
- 필수 포스터와 구분되는 별도 사본에만 작은 문맥 패널을 추가합니다.
13주차 연결
이번 포스터에서 한 점은 한 문장의 공백 기준 토큰 수이고 가로축은 문장의 등장 순서였습니다. 13주차에는 한 점이 일정한 시간 간격에서 측정한 소리 신호의 진폭이 됩니다. 텍스트의 열두 문장과 소리의 많은 샘플을 비교하면서 순서 데이터와 시간 데이터의 차이를 이어서 학습합니다.
도움말과 공식 자료
- Google Colab 공식 입문 노트북코드 셀 실행, Drive 사본 저장, 런타임 다시 시작과 노트북 다운로드
- Python 공식 문서: re
re.split()과re.sub()를 이용한 문장 분리와 문장부호 정리 - Python 공식 문서: Counter토큰별 반복 횟수 계산과
most_common()정렬 - pandas 공식 문서: DataFrame.to_csv전체 빈도표를 UTF-8 CSV 파일로 저장하는 방법
- Matplotlib 공식 문서: Axes.barh상위 토큰을 공통 기준선에서 비교하는 가로 막대그래프
- Matplotlib 공식 문서: Axes.plot문장 순서와 토큰 수를 선과 점으로 연결하는 방법
- Matplotlib 공식 문서: savefigFigure를 지정한 크기와 해상도의 PNG로 저장하는 방법