본문 바로가기
AI

데이터 전처리 실습

by 코낄2 2024. 1. 19.
  • 뉴스 기사 크롤링 라이브러리
!pip install newspaper3k

 

# 사용 가능한 언어 확인

import newspaper
newspaper.languages()

Your available languages are:

input code full name
  es   Spanish
  ru   Russian
  nb   Norwegian (Bokmål)
  uk   Ukrainian
  el   Greek
  sl   Slovenian
  ar   Arabic
  pl   Polish
  sw   Swahili
  fa   Persian
  pt   Portuguese
  de   German
  no   Norwegian
  ja   Japanese
  tr   Turkish
  hi   Hindi
  hu   Hungarian
  mk   Macedonian
  fr   French
  be   Belarusian
  ro   Romanian
  et   Estonian
  hr   Croatian
  da   Danish
  he   Hebrew
  it   Italian
  fi   Finnish
  ko   Korean
  bg   Bulgarian
  sv   Swedish
  nl   Dutch
  id   Indonesian
  zh   Chinese
  sr   Serbian
  en   English
  vi   Vietnamese

from newspaper import Article

url = 'https://v.daum.net/v/ySnyNE6FqA'
article = Article(url, language = 'ko')

article.download()
article.parse()

print('title', article.title)
print('content', article.text)

title '기생충' 봉준호가 제작하고 '미나리' 정이삭이 감독하는 신작
content 기생충 + 미나리 = 어떤 영화가 될까?

기생충/미나리

'기생충'의 봉준호 감독 그리고 '미나리'의 정이삭 감독과 스티븐 연이 만난다? K-무비의 힘을 보여준 아카데미 위너들이 한 프로젝트로 힘을 합친다고 밝혀 전세계 영화팬들의 가슴을 두근거리게 하고 있습니다.

imdb

정이삭 감독은 오래된 재난 영화 "트위스터"의 후속작 "트위스터즈"의 촬영을 마친 후, "작은 사랑 이야기"라고 임시로 이름을 붙인 프로젝트에 착수했는데요.

특히, 이 영화는 정이삭 감독과 스티븐 연이 '미나리' 이후 다시 한번 손을 잡아 화제가 되고 있습니다.

아카데미 시상식

그리고 이 영화의 제작자로 아카데미 작품상을 수상한 '기생충'의 봉준호 감독이 프로듀서로 참여한다는 소식입니다. 그야말로 한국 영화의 어벤져스랄까요?

게다가 각본은 "포레스트 검프", "벤자민 버튼의 시간은 거꾸로 간다", "스타 이즈 본", 마틴 스콜세지의 최근작 "플라워 킬링 문"의 각본을 집필한 에릭 로스가 맡았습니다.

스티븐연/썬더볼츠

스티븐 연은 '미나리'에서의 인상적인 연기로 오스카 후보에 오른 바 있으며, 마블의 '썬더볼츠'에 합류한다는 소식인데요.

작가, 배우 조합의 파업 등으로 촬영 일정이 밀리며 '썬더볼츠'와 이 영화의 스케줄이 겹치자. 단호하게 MCU 합류를 포기하며 정이삭 감독과의 의리를 과시했습니다.

칸영화제에 참가한 '옥자팀' / 온라인 커뮤니티

영화의 구체적인 줄거리와 출연진, 개봉 날짜 등에 대한 정보는 아직 공개되지 않았지만, 제작자, 감독, 배우, 각본의 조합만으로 팬들과 영화 애호가들 사이에서 프로젝트에 대한 기대는 이미 한껏 높아져 있는데요.

정이삭 감독의 연출, 스티븐연의 연기, 에릭 로스의 각본, 그리고 봉준호의 제작이 어우러져 만들어낼 이 영화가 과연 한국 영화계에 또 어떤 족적을 남기게 될지 두근거리게 합니다.

 

# 전처리 연습을 위해 임의로 글을 좀 더 추가해주기

additional_info = [
    "※ 기자 김사과(apple@apple.com) 취재는 반하나(banana@banana.com)",
    "<h2>'기생충' 봉준호가 제작하고 '미나리' 정이삭이 감독하는 신작'</h2>",
    "이 기사는 임시 데이터임을 알립니다 …",
    "Copyright@koreait.com",
    "<br> ☞ 이 기사는 문화 섹션으로 분류했습니다 … </br>",
    "#기사 #문화 #기생충 #미나리"
]

context = article.text.split('\n')
context += additional_info
for i, text in enumerate(context):
    print(i, text)

0 기생충 + 미나리 = 어떤 영화가 될까?

2 기생충/미나리

4 '기생충'의 봉준호 감독 그리고 '미나리'의 정이삭 감독과 스티븐 연이 만난다? K-무비의 힘을 보여준 아카데미 위너들이 한 프로젝트로 힘을 합친다고 밝혀 전세계 영화팬들의 가슴을 두근거리게 하고 있습니다.

6 imdb

8 정이삭 감독은 오래된 재난 영화 "트위스터"의 후속작 "트위스터즈"의 촬영을 마친 후, "작은 사랑 이야기"라고 임시로 이름을 붙인 프로젝트에 착수했는데요.

10 특히, 이 영화는 정이삭 감독과 스티븐 연이 '미나리' 이후 다시 한번 손을 잡아 화제가 되고 있습니다.
11 
12 아카데미 시상식
13 
14 그리고 이 영화의 제작자로 아카데미 작품상을 수상한 '기생충'의 봉준호 감독이 프로듀서로 참여한다는 소식입니다. 그야말로 한국 영화의 어벤져스랄까요?
15 
16 게다가 각본은 "포레스트 검프", "벤자민 버튼의 시간은 거꾸로 간다", "스타 이즈 본", 마틴 스콜세지의 최근작 "플라워 킬링 문"의 각본을 집필한 에릭 로스가 맡았습니다.
17 
18 스티븐연/썬더볼츠
19 
20 스티븐 연은 '미나리'에서의 인상적인 연기로 오스카 후보에 오른 바 있으며, 마블의 '썬더볼츠'에 합류한다는 소식인데요.
21 
22 작가, 배우 조합의 파업 등으로 촬영 일정이 밀리며 '썬더볼츠'와 이 영화의 스케줄이 겹치자. 단호하게 MCU 합류를 포기하며 정이삭 감독과의 의리를 과시했습니다.
23 
24 칸영화제에 참가한 '옥자팀' / 온라인 커뮤니티
25 
26 영화의 구체적인 줄거리와 출연진, 개봉 날짜 등에 대한 정보는 아직 공개되지 않았지만, 제작자, 감독, 배우, 각본의 조합만으로 팬들과 영화 애호가들 사이에서 프로젝트에 대한 기대는 이미 한껏 높아져 있는데요.
27 
28 정이삭 감독의 연출, 스티븐연의 연기, 에릭 로스의 각본, 그리고 봉준호의 제작이 어우러져 만들어낼 이 영화가 과연 한국 영화계에 또 어떤 족적을 남기게 될지 두근거리게 합니다.
29 ※ 기자 김사과(apple@apple.com) 취재는 반하나(banana@banana.com)
30 <h2>'기생충' 봉준호가 제작하고 '미나리' 정이삭이 감독하는 신작'</h2>
31 이 기사는 임시 데이터임을 알립니다 …
32 Copyright@koreait.com
33 <br> ☞ 이 기사는 문화 섹션으로 분류했습니다 … </br>
34 #기사 #문화 #기생충 #미나리

  • 불용어 제거하기
  • delete_stopwords(): 데이터를 넣으면 불용어를 제거한 후 데이터를 반환하는 함수 만들기
# 불용어 사전 정의 ['※', '☞', '…']
stopwords = ['※', '☞', '…']
def delete_stopwords(context):
    preprocessed_text = []
    for text in context:
        text = [w for w in text.split(' ') if w not in stopwords]
        preprocessed_text.append(' '.join(text))
    return preprocessed_text
preprocessed_context = delete_stopwords(context)
for i, text in enumerate(preprocessed_context):
    print(i, text)

0 기생충 + 미나리 = 어떤 영화가 될까?

2 기생충/미나리

4 '기생충'의 봉준호 감독 그리고 '미나리'의 정이삭 감독과 스티븐 연이 만난다? K-무비의 힘을 보여준 아카데미 위너들이 한 프로젝트로 힘을 합친다고 밝혀 전세계 영화팬들의 가슴을 두근거리게 하고 있습니다.

6 imdb

8 정이삭 감독은 오래된 재난 영화 "트위스터"의 후속작 "트위스터즈"의 촬영을 마친 후, "작은 사랑 이야기"라고 임시로 이름을 붙인 프로젝트에 착수했는데요.

10 특히, 이 영화는 정이삭 감독과 스티븐 연이 '미나리' 이후 다시 한번 손을 잡아 화제가 되고 있습니다.
11 
12 아카데미 시상식
13 
14 그리고 이 영화의 제작자로 아카데미 작품상을 수상한 '기생충'의 봉준호 감독이 프로듀서로 참여한다는 소식입니다. 그야말로 한국 영화의 어벤져스랄까요?
15 
16 게다가 각본은 "포레스트 검프", "벤자민 버튼의 시간은 거꾸로 간다", "스타 이즈 본", 마틴 스콜세지의 최근작 "플라워 킬링 문"의 각본을 집필한 에릭 로스가 맡았습니다.
17 
18 스티븐연/썬더볼츠
19 
20 스티븐 연은 '미나리'에서의 인상적인 연기로 오스카 후보에 오른 바 있으며, 마블의 '썬더볼츠'에 합류한다는 소식인데요.
21 
22 작가, 배우 조합의 파업 등으로 촬영 일정이 밀리며 '썬더볼츠'와 이 영화의 스케줄이 겹치자. 단호하게 MCU 합류를 포기하며 정이삭 감독과의 의리를 과시했습니다.
23 
24 칸영화제에 참가한 '옥자팀' / 온라인 커뮤니티
25 
26 영화의 구체적인 줄거리와 출연진, 개봉 날짜 등에 대한 정보는 아직 공개되지 않았지만, 제작자, 감독, 배우, 각본의 조합만으로 팬들과 영화 애호가들 사이에서 프로젝트에 대한 기대는 이미 한껏 높아져 있는데요.
27 
28 정이삭 감독의 연출, 스티븐연의 연기, 에릭 로스의 각본, 그리고 봉준호의 제작이 어우러져 만들어낼 이 영화가 과연 한국 영화계에 또 어떤 족적을 남기게 될지 두근거리게 합니다.
29 기자 김사과(apple@apple.com) 취재는 반하나(banana@banana.com)
30 <h2>'기생충' 봉준호가 제작하고 '미나리' 정이삭이 감독하는 신작'</h2>
31 이 기사는 임시 데이터임을 알립니다
32 Copyright@koreait.com
33 <br> 이 기사는 문화 섹션으로 분류했습니다 </br>
34 #기사 #문화 #기생충 #미나리

  • HTML 태그 제거
    # delete_html_tag(): 데이터를 넣으면 HTML을 제거한 후 데이터를 반환하는 함수 생성
# 정규식을 사용
import re

def delete_html_tag(context):
    html_tag = re.compile(r'<.*?>')
    preprocessed_text = []
    for text in context:
        text = re.sub(html_tag, '', text).strip()
        if text:
            preprocessed_text.append(text)
    return preprocessed_text
preprocessed_context = delete_html_tag(preprocessed_context)
for i, text in enumerate(preprocessed_context):
    print(i, text)

0 기생충 + 미나리 = 어떤 영화가 될까?
1 기생충/미나리
2 '기생충'의 봉준호 감독 그리고 '미나리'의 정이삭 감독과 스티븐 연이 만난다? K-무비의 힘을 보여준 아카데미 위너들이 한 프로젝트로 힘을 합친다고 밝혀 전세계 영화팬들의 가슴을 두근거리게 하고 있습니다.
3 imdb
4 정이삭 감독은 오래된 재난 영화 "트위스터"의 후속작 "트위스터즈"의 촬영을 마친 후, "작은 사랑 이야기"라고 임시로 이름을 붙인 프로젝트에 착수했는데요.
5 특히, 이 영화는 정이삭 감독과 스티븐 연이 '미나리' 이후 다시 한번 손을 잡아 화제가 되고 있습니다.
6 아카데미 시상식
7 그리고 이 영화의 제작자로 아카데미 작품상을 수상한 '기생충'의 봉준호 감독이 프로듀서로 참여한다는 소식입니다. 그야말로 한국 영화의 어벤져스랄까요?
8 게다가 각본은 "포레스트 검프", "벤자민 버튼의 시간은 거꾸로 간다", "스타 이즈 본", 마틴 스콜세지의 최근작 "플라워 킬링 문"의 각본을 집필한 에릭 로스가 맡았습니다.
9 스티븐연/썬더볼츠
10 스티븐 연은 '미나리'에서의 인상적인 연기로 오스카 후보에 오른 바 있으며, 마블의 '썬더볼츠'에 합류한다는 소식인데요.
11 작가, 배우 조합의 파업 등으로 촬영 일정이 밀리며 '썬더볼츠'와 이 영화의 스케줄이 겹치자. 단호하게 MCU 합류를 포기하며 정이삭 감독과의 의리를 과시했습니다.
12 칸영화제에 참가한 '옥자팀' / 온라인 커뮤니티
13 영화의 구체적인 줄거리와 출연진, 개봉 날짜 등에 대한 정보는 아직 공개되지 않았지만, 제작자, 감독, 배우, 각본의 조합만으로 팬들과 영화 애호가들 사이에서 프로젝트에 대한 기대는 이미 한껏 높아져 있는데요.
14 정이삭 감독의 연출, 스티븐연의 연기, 에릭 로스의 각본, 그리고 봉준호의 제작이 어우러져 만들어낼 이 영화가 과연 한국 영화계에 또 어떤 족적을 남기게 될지 두근거리게 합니다.
15 기자 김사과(apple@apple.com) 취재는 반하나(banana@banana.com)
16 '기생충' 봉준호가 제작하고 '미나리' 정이삭이 감독하는 신작'
17 이 기사는 임시 데이터임을 알립니다
18 Copyright@koreait.com
19 이 기사는 문화 섹션으로 분류했습니다
20 #기사 #문화 #기생충 #미나리

문장 분리

학습 데이터를 구성할 때, 입력 데이터의 단위를 설정하기가 애매합니다.

모델이 문장 단위로 학습하도록 유도하려면 문장 분리가 필요합니다.

이를 위해 한국어 문장 분리기 중 하나인 kss 라이브러리를 활용할 수 있습니다.

https://github.com/hyunwoongko/kss

 

GitHub - hyunwoongko/kss: Kss: A Toolkit for Korean sentence segmentation

Kss: A Toolkit for Korean sentence segmentation. Contribute to hyunwoongko/kss development by creating an account on GitHub.

github.com

# 설치
!pip install kss
import kss
def sentence_seperator(context):
    splited_context = []
    for text in context:
        text = text.strip()
        if text:
            splited_text = kss.split_sentences(text)
            splited_context.extend(splited_text)
    return splited_context
preprocessed_context = sentence_seperator(preprocessed_context)
for i, text in enumerate(preprocessed_context):
    print(i, text)

0 기생충 + 미나리 = 어떤 영화가 될까?
1 기생충/미나리
2 '기생충'의 봉준호 감독 그리고 '미나리'의 정이삭 감독과 스티븐 연이 만난다?
3 K-무비의 힘을 보여준 아카데미 위너들이 한 프로젝트로 힘을 합친다고 밝혀 전세계 영화팬들의 가슴을 두근거리게 하고 있습니다.
4 imdb
5 정이삭 감독은 오래된 재난 영화 "트위스터"의 후속작 "트위스터즈"의 촬영을 마친 후, "작은 사랑 이야기"라고 임시로 이름을 붙인 프로젝트에 착수했는데요.
6 특히, 이 영화는 정이삭 감독과 스티븐 연이 '미나리' 이후 다시 한번 손을 잡아 화제가 되고 있습니다.
7 아카데미 시상식
8 그리고 이 영화의 제작자로 아카데미 작품상을 수상한 '기생충'의 봉준호 감독이 프로듀서로 참여한다는 소식입니다.
9 그야말로 한국 영화의 어벤져스랄까요?
10 게다가 각본은 "포레스트 검프", "벤자민 버튼의 시간은 거꾸로 간다", "스타 이즈 본", 마틴 스콜세지의 최근작 "플라워 킬링 문"의 각본을 집필한 에릭 로스가 맡았습니다.
11 스티븐연/썬더볼츠
12 스티븐 연은 '미나리'에서의 인상적인 연기로 오스카 후보에 오른 바 있으며, 마블의 '썬더볼츠'에 합류한다는 소식인데요.
13 작가, 배우 조합의 파업 등으로 촬영 일정이 밀리며 '썬더볼츠'와 이 영화의 스케줄이 겹치자.
14 단호하게 MCU 합류를 포기하며 정이삭 감독과의 의리를 과시했습니다.
15 칸영화제에 참가한 '옥자팀' / 온라인 커뮤니티
16 영화의 구체적인 줄거리와 출연진, 개봉 날짜 등에 대한 정보는 아직 공개되지 않았지만, 제작자, 감독, 배우, 각본의 조합만으로 팬들과 영화 애호가들 사이에서 프로젝트에 대한 기대는 이미 한껏 높아져 있는데요.
17 정이삭 감독의 연출, 스티븐연의 연기, 에릭 로스의 각본, 그리고 봉준호의 제작이 어우러져 만들어낼 이 영화가 과연 한국 영화계에 또 어떤 족적을 남기게 될지 두근거리게 합니다.
18 기자 김사과(apple@apple.com) 취재는 반하나(banana@banana.com)
19 '기생충' 봉준호가 제작하고 '미나리' 정이삭이 감독하는 신작'
20 이 기사는 임시 데이터임을 알립니다
21 Copyright@koreait.com
22 이 기사는 문화 섹션으로 분류했습니다
23 #기사 #문화 #기생충 #미나리

 

# 문장 단위로 잘려서 20 -> 23줄로 늘어남

  • 이메일 제거
def delete_email(context):
    email_pattern = re.compile(r'[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+')
    preprocessed_text = []
    for text in context:
        text = re.sub(email_pattern, '', text).strip()
        if text:
            preprocessed_text.append(text)
    return preprocessed_text
preprocessed_context = delete_email(preprocessed_context)
for i, text in enumerate(preprocessed_context):
    print(i, text)

0 기생충 + 미나리 = 어떤 영화가 될까?
1 기생충/미나리
2 '기생충'의 봉준호 감독 그리고 '미나리'의 정이삭 감독과 스티븐 연이 만난다?
3 K-무비의 힘을 보여준 아카데미 위너들이 한 프로젝트로 힘을 합친다고 밝혀 전세계 영화팬들의 가슴을 두근거리게 하고 있습니다.
4 imdb
5 정이삭 감독은 오래된 재난 영화 "트위스터"의 후속작 "트위스터즈"의 촬영을 마친 후, "작은 사랑 이야기"라고 임시로 이름을 붙인 프로젝트에 착수했는데요.
6 특히, 이 영화는 정이삭 감독과 스티븐 연이 '미나리' 이후 다시 한번 손을 잡아 화제가 되고 있습니다.
7 아카데미 시상식
8 그리고 이 영화의 제작자로 아카데미 작품상을 수상한 '기생충'의 봉준호 감독이 프로듀서로 참여한다는 소식입니다.
9 그야말로 한국 영화의 어벤져스랄까요?
10 게다가 각본은 "포레스트 검프", "벤자민 버튼의 시간은 거꾸로 간다", "스타 이즈 본", 마틴 스콜세지의 최근작 "플라워 킬링 문"의 각본을 집필한 에릭 로스가 맡았습니다.
11 스티븐연/썬더볼츠
12 스티븐 연은 '미나리'에서의 인상적인 연기로 오스카 후보에 오른 바 있으며, 마블의 '썬더볼츠'에 합류한다는 소식인데요.
13 작가, 배우 조합의 파업 등으로 촬영 일정이 밀리며 '썬더볼츠'와 이 영화의 스케줄이 겹치자.
14 단호하게 MCU 합류를 포기하며 정이삭 감독과의 의리를 과시했습니다.
15 칸영화제에 참가한 '옥자팀' / 온라인 커뮤니티
16 영화의 구체적인 줄거리와 출연진, 개봉 날짜 등에 대한 정보는 아직 공개되지 않았지만, 제작자, 감독, 배우, 각본의 조합만으로 팬들과 영화 애호가들 사이에서 프로젝트에 대한 기대는 이미 한껏 높아져 있는데요.
17 정이삭 감독의 연출, 스티븐연의 연기, 에릭 로스의 각본, 그리고 봉준호의 제작이 어우러져 만들어낼 이 영화가 과연 한국 영화계에 또 어떤 족적을 남기게 될지 두근거리게 합니다.
18 기자 김사과() 취재는 반하나()    <- 이메일 사라짐
19 '기생충' 봉준호가 제작하고 '미나리' 정이삭이 감독하는 신작'
20 이 기사는 임시 데이터임을 알립니다
21 이 기사는 문화 섹션으로 분류했습니다
22 #기사 #문화 #기생충 #미나리

  • 해시태그 제거
def delete_hashtag(context):
    hashtag_pattern = re.compile(r'#\S+')
    preprocessed_text = []
    for text in context:
        text = re.sub(hashtag_pattern, '', text).strip()
        if text:
            preprocessed_text.append(text)
    return preprocessed_text
preprocessed_context = delete_hashtag(preprocessed_context)
for i, text in enumerate(preprocessed_context):
    print(i, text)

0 기생충 + 미나리 = 어떤 영화가 될까?
1 기생충/미나리
2 '기생충'의 봉준호 감독 그리고 '미나리'의 정이삭 감독과 스티븐 연이 만난다?
3 K-무비의 힘을 보여준 아카데미 위너들이 한 프로젝트로 힘을 합친다고 밝혀 전세계 영화팬들의 가슴을 두근거리게 하고 있습니다.
4 imdb
5 정이삭 감독은 오래된 재난 영화 "트위스터"의 후속작 "트위스터즈"의 촬영을 마친 후, "작은 사랑 이야기"라고 임시로 이름을 붙인 프로젝트에 착수했는데요.
6 특히, 이 영화는 정이삭 감독과 스티븐 연이 '미나리' 이후 다시 한번 손을 잡아 화제가 되고 있습니다.
7 아카데미 시상식
8 그리고 이 영화의 제작자로 아카데미 작품상을 수상한 '기생충'의 봉준호 감독이 프로듀서로 참여한다는 소식입니다.
9 그야말로 한국 영화의 어벤져스랄까요?
10 게다가 각본은 "포레스트 검프", "벤자민 버튼의 시간은 거꾸로 간다", "스타 이즈 본", 마틴 스콜세지의 최근작 "플라워 킬링 문"의 각본을 집필한 에릭 로스가 맡았습니다.
11 스티븐연/썬더볼츠
12 스티븐 연은 '미나리'에서의 인상적인 연기로 오스카 후보에 오른 바 있으며, 마블의 '썬더볼츠'에 합류한다는 소식인데요.
13 작가, 배우 조합의 파업 등으로 촬영 일정이 밀리며 '썬더볼츠'와 이 영화의 스케줄이 겹치자.
14 단호하게 MCU 합류를 포기하며 정이삭 감독과의 의리를 과시했습니다.
15 칸영화제에 참가한 '옥자팀' / 온라인 커뮤니티
16 영화의 구체적인 줄거리와 출연진, 개봉 날짜 등에 대한 정보는 아직 공개되지 않았지만, 제작자, 감독, 배우, 각본의 조합만으로 팬들과 영화 애호가들 사이에서 프로젝트에 대한 기대는 이미 한껏 높아져 있는데요.
17 정이삭 감독의 연출, 스티븐연의 연기, 에릭 로스의 각본, 그리고 봉준호의 제작이 어우러져 만들어낼 이 영화가 과연 한국 영화계에 또 어떤 족적을 남기게 될지 두근거리게 합니다.
18 기자 김사과() 취재는 반하나()
19 '기생충' 봉준호가 제작하고 '미나리' 정이삭이 감독하는 신작'
20 이 기사는 임시 데이터임을 알립니다
21 이 기사는 문화 섹션으로 분류했습니다

반복 횟수가 많은 문자 정규화

!pip install soynlp
from soynlp.normalizer import *
print(repeat_normalize('ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ', num_repeats=2))
// ㅋㅋ
# 특수문자는 해당 안됨(초과가 되는 것부터 해당 숫자를 넘어야 자름)
print(repeat_normalize('야!!! 너!!!! 하하하핳 지금 뭐함?ㅠㅠㅠㅠㅠㅠㅠㅠ', num_repeats=2))
// 야!!! 너!!!! 하하하핳 지금 뭐함?ㅠㅠ
    • 중복 문장 정규화
from collections import OrderedDict

# OrderedDict : 순서가 있는 딕셔너리, 값이 키값으로 들어가기 때문에 중복이 사라짐

def duplicated_sentence_normalizer(context):
    context = list(OrderedDict.fromkeys(context))
    return context
preprocessed_context = duplicated_sentence_normalizer(preprocessed_context)
for i, text in enumerate(preprocessed_context):
    print(i, text)

0 기생충 + 미나리 = 어떤 영화가 될까?
1 기생충/미나리
2 '기생충'의 봉준호 감독 그리고 '미나리'의 정이삭 감독과 스티븐 연이 만난다?
3 K-무비의 힘을 보여준 아카데미 위너들이 한 프로젝트로 힘을 합친다고 밝혀 전세계 영화팬들의 가슴을 두근거리게 하고 있습니다.
4 imdb
5 정이삭 감독은 오래된 재난 영화 "트위스터"의 후속작 "트위스터즈"의 촬영을 마친 후, "작은 사랑 이야기"라고 임시로 이름을 붙인 프로젝트에 착수했는데요.
6 특히, 이 영화는 정이삭 감독과 스티븐 연이 '미나리' 이후 다시 한번 손을 잡아 화제가 되고 있습니다.
7 아카데미 시상식
8 그리고 이 영화의 제작자로 아카데미 작품상을 수상한 '기생충'의 봉준호 감독이 프로듀서로 참여한다는 소식입니다.
9 그야말로 한국 영화의 어벤져스랄까요?
10 게다가 각본은 "포레스트 검프", "벤자민 버튼의 시간은 거꾸로 간다", "스타 이즈 본", 마틴 스콜세지의 최근작 "플라워 킬링 문"의 각본을 집필한 에릭 로스가 맡았습니다.
11 스티븐연/썬더볼츠
12 스티븐 연은 '미나리'에서의 인상적인 연기로 오스카 후보에 오른 바 있으며, 마블의 '썬더볼츠'에 합류한다는 소식인데요.
13 작가, 배우 조합의 파업 등으로 촬영 일정이 밀리며 '썬더볼츠'와 이 영화의 스케줄이 겹치자.
14 단호하게 MCU 합류를 포기하며 정이삭 감독과의 의리를 과시했습니다.
15 칸영화제에 참가한 '옥자팀' / 온라인 커뮤니티
16 영화의 구체적인 줄거리와 출연진, 개봉 날짜 등에 대한 정보는 아직 공개되지 않았지만, 제작자, 감독, 배우, 각본의 조합만으로 팬들과 영화 애호가들 사이에서 프로젝트에 대한 기대는 이미 한껏 높아져 있는데요.
17 정이삭 감독의 연출, 스티븐연의 연기, 에릭 로스의 각본, 그리고 봉준호의 제작이 어우러져 만들어낼 이 영화가 과연 한국 영화계에 또 어떤 족적을 남기게 될지 두근거리게 합니다.
18 기자 김사과() 취재는 반하나()
19 '기생충' 봉준호가 제작하고 '미나리' 정이삭이 감독하는 신작'
20 이 기사는 임시 데이터임을 알립니다
21 이 기사는 문화 섹션으로 분류했습니다

  • 문장 길이 기반 필터링
def min_max_filter(min_len, max_len, context):
    preprocessed_text = []
    for text in context:
        if min_len < len(text) < max_len:
            preprocessed_text.append(text)
    return preprocessed_text
preprocessed_context = min_max_filter(10,100,preprocessed_context)
for i, text in enumerate(preprocessed_context):
    print(i, text)

0 기생충 + 미나리 = 어떤 영화가 될까?
1 '기생충'의 봉준호 감독 그리고 '미나리'의 정이삭 감독과 스티븐 연이 만난다?
2 K-무비의 힘을 보여준 아카데미 위너들이 한 프로젝트로 힘을 합친다고 밝혀 전세계 영화팬들의 가슴을 두근거리게 하고 있습니다.
3 정이삭 감독은 오래된 재난 영화 "트위스터"의 후속작 "트위스터즈"의 촬영을 마친 후, "작은 사랑 이야기"라고 임시로 이름을 붙인 프로젝트에 착수했는데요.
4 특히, 이 영화는 정이삭 감독과 스티븐 연이 '미나리' 이후 다시 한번 손을 잡아 화제가 되고 있습니다.
5 그리고 이 영화의 제작자로 아카데미 작품상을 수상한 '기생충'의 봉준호 감독이 프로듀서로 참여한다는 소식입니다.
6 그야말로 한국 영화의 어벤져스랄까요?
7 게다가 각본은 "포레스트 검프", "벤자민 버튼의 시간은 거꾸로 간다", "스타 이즈 본", 마틴 스콜세지의 최근작 "플라워 킬링 문"의 각본을 집필한 에릭 로스가 맡았습니다.
8 스티븐 연은 '미나리'에서의 인상적인 연기로 오스카 후보에 오른 바 있으며, 마블의 '썬더볼츠'에 합류한다는 소식인데요.
9 작가, 배우 조합의 파업 등으로 촬영 일정이 밀리며 '썬더볼츠'와 이 영화의 스케줄이 겹치자.
10 단호하게 MCU 합류를 포기하며 정이삭 감독과의 의리를 과시했습니다.
11 칸영화제에 참가한 '옥자팀' / 온라인 커뮤니티
12 정이삭 감독의 연출, 스티븐연의 연기, 에릭 로스의 각본, 그리고 봉준호의 제작이 어우러져 만들어낼 이 영화가 과연 한국 영화계에 또 어떤 족적을 남기게 될지 두근거리게 합니다.
13 기자 김사과() 취재는 반하나()
14 '기생충' 봉준호가 제작하고 '미나리' 정이삭이 감독하는 신작'
15 이 기사는 임시 데이터임을 알립니다
16 이 기사는 문화 섹션으로 분류했습니다

 # 토큰화

 from tensorflow.keras.preprocessing.text import Tokenizer
tokenizer = Tokenizer()
tokenizer.fit_on_texts(preprocessed_context)
tokenizer // <keras.src.preprocessing.text.Tokenizer at 0x7e77af82fb50>
word2idx = tokenizer.word_index

{'이': 1,
 '정이삭': 2,
 '그리고': 3,
 '스티븐': 4,
 '의': 5,

.

.

.

.}

idx2word = {value : key for key, value in word2idx.items()}

{1: '이',
 2: '정이삭',
 3: '그리고',
 4: '스티븐',
 5: '의',

.

.

.

}

encoded = tokenizer.texts_to_sequences(preprocessed_context)
encoded

[[21, 22, 7, 8, 23], [9, 10, 24, 3, 25, 2, 11, 4, 12, 26], [27, 28, 13, 29, 14, 30, 31, 32, 13, 33, 34, 35, 36, 37, 15, 38, 16],..]

# 문장을 토큰의 인덱스로 표현

# 첫문장 print(encoded[0]) // [21, 22, 7, 8, 23]

vocab_size = len(word2idx)
print(f'단어 사전의 크기: {vocab_size}')
// 단어 사전의 크기: 166

 

'AI' 카테고리의 다른 글

워드 임베딩 시각화  (0) 2024.01.31
임베딩  (0) 2024.01.24
자연어 처리 진행 순서  (0) 2024.01.19
자연어 처리 개요  (0) 2024.01.16
포켓몬 분류 해보기  (1) 2024.01.14