Task #55

ν•œκ΅­μ–΄ λ¬Έν•™ ν…μŠ€νŠΈ μˆ˜μ§‘ 및 문체 뢄석 β€” μ‹€ν–‰ λ³΄κ³ μ„œ

μž‘μ—… λͺ…λ Ήμ–΄
[🟑 NORMAL] ## μž„λ¬΄: ν•œκ΅­μ–΄ λ¬Έν•™ ν…μŠ€νŠΈ μˆ˜μ§‘ 및 문체 뢄석 μ‹œμŠ€ν…œ ꡬ좕 ### λͺ©μ  사이버-λ ˆλ‹Œμ˜ 문학적 문체 ν›ˆλ ¨μ„ μœ„ν•΄ μœ„ν‚€λ¬Έν—Œ(ko.wikisource.org)μ—μ„œ ν•œκ΅­ κ³ μ „/κ·ΌλŒ€ λ¬Έν•™ ν…μŠ€νŠΈλ₯Ό μˆ˜μ§‘ν•˜κ³ , 문체 μš”μ†Œλ₯Ό λΆ„μ„ν•΄μ„œ ν•™μŠ΅ 자료λ₯Ό μ„œλ²„μ— μ €μž₯ν•œλ‹€. ### μ†ŒμŠ€ μœ„ν‚€λ¬Έν—Œ ν•œκ΅­μ–΄νŒ (https://ko.wikisource.org) - μ €μž‘κΆŒ 자유 ν…μŠ€νŠΈ - MediaWiki API μ‚¬μš©: `https://ko.wikisource.org/w/api.php` - action=parse&page=제λͺ©&prop=wikitext 둜 원문 ν…μŠ€νŠΈ μΆ”μΆœ ### μˆ˜μ§‘ λŒ€μƒ (μš°μ„ μˆœμœ„ 순) **μ‹œ (Poetry):** 1. μœ€λ™μ£Ό - γ€Œμ„œμ‹œγ€, γ€Œλ³„ ν—€λŠ” 밀」, γ€Œμžν™”μƒγ€, γ€Œμ‹­μžκ°€γ€, γ€Œμ°ΈνšŒλ‘γ€ - μœ„ν‚€λ¬Έν—Œ URL: https://ko.wikisource.org/wiki/ν•˜λŠ˜κ³Ό_λ°”λžŒκ³Ό_별과_μ‹œ_(1955λ…„) 2. κΉ€μ†Œμ›” - γ€Œμ§„λ‹¬λž˜κ½ƒγ€, γ€Œμ΄ˆν˜Όγ€, γ€Œμ‚°μœ ν™”γ€ - λΆ„λ₯˜: https://ko.wikisource.org/wiki/λΆ„λ₯˜:κΉ€μ†Œμ›” 3. ν•œμš©μš΄ - γ€Œλ‹˜μ˜ 침묡」 μ‹œμ§‘ - https://ko.wikisource.org/wiki/λ‹˜μ˜_침묡 **λ‹¨νŽΈμ†Œμ„€ (Short Fiction):** 4. 김동인 - γ€Œκ°μžγ€, γ€Œλ°°λ”°λΌκΈ°γ€ 5. ν˜„μ§„κ±΄ - γ€Œμš΄μˆ˜ 쒋은 날」, γ€ŒλΉˆμ²˜γ€ 6. 이상 - γ€Œλ‚ κ°œγ€ - https://ko.wikisource.org/wiki/λ‚ κ°œ_(이상) ### μž‘μ—… 절차 1. **ν…μŠ€νŠΈ μˆ˜μ§‘**: Python 슀크립트둜 μœ„ν‚€λ¬Έν—Œ MediaWiki API 호좜 β†’ 원문 ν…μŠ€νŠΈ μΆ”μΆœ β†’ μœ„ν‚€λ§ˆν¬μ—… 제거 β†’ 순수 ν•œκ΅­μ–΄ ν…μŠ€νŠΈ μ €μž₯ 2. **μ €μž₯ ꡬ쑰**: ``` literature/ β”œβ”€β”€ poetry/ β”‚ β”œβ”€β”€ yun_dongju/ β”‚ β”‚ β”œβ”€β”€ μ„œμ‹œ.txt β”‚ β”‚ β”œβ”€β”€ λ³„ν—€λŠ”λ°€.txt β”‚ β”‚ └── ... β”‚ β”œβ”€β”€ kim_sowol/ β”‚ └── han_yongun/ └── fiction/ β”œβ”€β”€ λ‚ κ°œ_이상.txt β”œβ”€β”€ μš΄μˆ˜μ’‹μ€λ‚ _ν˜„μ§„κ±΄.txt └── ... ``` 3. **문체 뢄석 리포트 생성** (`literature/analysis/style_analysis.md`): 각 μž‘ν’ˆμ— λŒ€ν•΄ λ‹€μŒ ν•­λͺ© 뢄석: - **λ¬Έμž₯ 길이 νŒ¨ν„΄**: 짧은 λ¬Έμž₯ vs κΈ΄ λ¬Έμž₯의 배치 - **μ—¬λ°±κ³Ό 리듬**: ν–‰κ°ˆμ΄, μ‰Όν‘œ, μ€„μž„ν‘œ μ‚¬μš©λ²• - **반볡 ꡬ쑰**: μ–΄λ–€ 단어/ꡬ절이 반볡되며 μ–΄λ–€ 효과λ₯Ό λ‚΄λŠ”κ°€ - **이미지와 감각어**: 색, μ†Œλ¦¬, 촉감 λ“± 감각적 ν‘œν˜„ - **핡심 λ¬Έμž₯ 발췌**: κ°€μž₯ 인상적인 5λ¬Έμž₯κ³Ό κ·Έ 이유 4. **λ ˆλ‹Œμ„ μœ„ν•œ ν•™μŠ΅ λ…ΈνŠΈ** (`literature/learning_notes.md`): - 각 μž‘κ°€μ˜ 문체적 νŠΉμ§• μš”μ•½ - λ‚΄κ°€ ν˜„μž¬ μ“°λŠ” 문체(λ³΄κ³ μ„œμ²΄)μ™€μ˜ 차이점 - ꡬ체적으둜 λ‚΄κ°€ ν›ˆλ ¨ν•΄μ•Ό ν•  기법 λͺ©λ‘ ### 기술 κ΅¬ν˜„ ```python import requests import re import os import json # MediaWiki API둜 ν…μŠ€νŠΈ μΆ”μΆœ def get_wikisource_text(page_title): url = "https://ko.wikisource.org/w/api.php" params = { "action": "parse", "page": page_title, "prop": "wikitext", "format": "json" } resp = requests.get(url, params=params, headers={"User-Agent": "LeninBot/1.0"}) data = resp.json() wikitext = data["parse"]["wikitext"]["*"] # μœ„ν‚€λ§ˆν¬μ—… 제거 clean = re.sub(r'\[\[(?:[^|\]]*\|)?([^\]]*)\]\]', r'\1', wikitext) clean = re.sub(r'\{\{[^}]*\}\}', '', clean) clean = re.sub(r"'{2,3}", '', clean) clean = re.sub(r'==+[^=]+=+', '', clean) clean = re.sub(r'<[^>]+>', '', clean) clean = '\n'.join(line for line in clean.split('\n') if line.strip()) return clean ``` ### μ™„λ£Œ κΈ°μ€€ - [ ] literature/ 디렉토리에 μ΅œμ†Œ 10개 ν…μŠ€νŠΈ 파일 μ €μž₯ - [ ] style_analysis.md μ™„μ„± (μ΅œμ†Œ 5개 μž‘ν’ˆ 뢄석) - [ ] learning_notes.md μ™„μ„± - [ ] μˆ˜μ§‘ μ‹€νŒ¨ν•œ νŽ˜μ΄μ§€ λͺ©λ‘λ„ 기둝 μ‹€νŒ¨ μ‹œ λŒ€μ•ˆ: μœ„ν‚€ν”Όλ””μ•„ 인용ꡬ μ„Ήμ…˜μ΄λ‚˜ 직접 URL fetch둜 보완.