πŸ“ NLP (μžμ—°μ–΄μ²˜λ¦¬)/πŸ“• Natural Language Processing
  • Tokenization - ν† ν°ν™”ν•˜κΈ° 1단계: μ½”λž© λ…ΈνŠΈλΆ μ΄ˆκΈ°ν™” νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•΄μ€λ‹ˆλ‹€. !pip install ratsnlp ꡬ글 λ“œλΌμ΄λΈŒ μ—°λ™ν•˜κΈ° νŠœν† λ¦¬μ–Όμ—μ„œ κ΅¬μΆ•ν•œ μ–΄νœ˜ 집합을 μ €μž₯ν•΄ λ‘” ꡬ글 λ“œλΌμ΄λΈŒλ₯Ό μ—°κ²°ν•©λ‹ˆλ‹€. from google.colab import drive drive.mount('/gdrive', force_remount=True) 2단계: GPT μž…λ ₯κ°’ λ§Œλ“€κΈ° GPT λͺ¨λΈ μž…λ ₯값을 λ§Œλ“€λ €λ©΄ Byte-level Byte Pair Encoding μ–΄νœ˜μ§‘ν•© ꡬ좕 κ²°κ³Ό(`vocab.json`, `merges.txt`)κ°€ μžμ‹ μ˜ ꡬ글 λ“œλΌμ΄λΈŒ 경둜(`/gdrive/My Drive/nlpbook/wordpiece`)에 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. μ•„λž˜ μ½”λ“œλ₯Ό μˆ˜ν–‰ν•΄ 이미 λ§Œλ“€μ–΄ 놓은 BBPE μ–΄νœ˜μ§‘ν•©μ„ 포..

    Read more
  • μ–΄νœ˜ μ§‘ν•© κ΅¬μΆ•ν•˜κΈ° (Vocab) 1단계: μ‹€μŠ΅ ν™˜κ²½ λ§Œλ“€κΈ° pip λͺ…λ Ήμ–΄λ‘œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€. !pip install ratsnlp 2단계: ꡬ글 λ“œλΌμ΄λΈŒ μ—°λ™ν•˜κΈ° from google.colab import drive drive.mount('/gdrive', force_remount=True) 3단계: λ§λ­‰μΉ˜ λ‹€μš΄λ‘œλ“œ 및 μ „μ²˜λ¦¬ 코포라(Korpora)라이브러리 λ₯Ό ν™œμš©ν•΄ BPE μˆ˜ν–‰ λŒ€μƒ λ§λ­‰μΉ˜λ₯Ό λ‚΄λ €λ°›κ³  μ „μ²˜λ¦¬. μ‹€μŠ΅μš© λ§λ­‰μΉ˜λŠ” 박은정 λ‹˜μ΄ κ³΅κ°œν•˜μ‹  Naver Sentiment Movie Corpus(NSMC)을 μ‚¬μš© 데이터λ₯Ό λ‚΄λ €λ°›μ•„ `nsmc`λΌλŠ” λ³€μˆ˜λ‘œ μ½μ–΄λ“€μž…λ‹ˆλ‹€. from Korpora import Korpora nsmc = Korpora.load("nsmc", force_download..

    Read more
  • [NLP] Tokenization - ν† ν°ν™”λž€?

    Tokenization - 토큰화 1. ν† ν°ν™”λž€? πŸ’‘ λ¬Έμž₯을 토큰 μ‹œν€€μŠ€λ‘œ λ‚˜λˆ„λŠ” κ³Όμ • → 문자, 단어, μ„œλΈŒμ›Œλ“œλ“± 3κ°€μ§€ 방법 ν† κ·Όν™”λ₯Ό μˆ˜ν–‰ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„(Tokenizer)라고 ν•œλ‹€. ν† κ·Όν™” λ°©μ‹μ—λŠ” μ—¬λŸ¬κ°€μ§€κ°€ 있음 → 단어(μ–΄μ ˆ), 문자, μ„œλΈŒμ›Œλ“œ(Subword) λ‹¨μœ„ 단어 λ‹¨μœ„ 토큰화 곡백으둜 뢄리 μž₯점: Tokenizerλ₯Ό μ‚¬μš©ν•˜λ©΄ μ–΄νœ˜ 집합이 μ»€μ§€λŠ”κ±° μ™„ν™” πŸ’‘ Example μ€μ „ν•œλ‹’μœΌλ‘œ 토큰화 → κ·Έλ ‡λ‹€κ³  μ€μ „ν•œλ‹’ 같은 Tokenizer μ‚¬μš©ν•΄μš” μ–΄νœ˜μ§‘ν•© 크기가 μ»€μ§€λŠ”κ±΄ 막기 어렀움 (μ–΄νœ˜ μ§‘ν•© 크기가 컀질수둝..) 문자 λ‹¨μœ„ ν† κ·Όν™” πŸ’‘ 문자 λ‹¨μœ„ → λͺ¨λ“  문자λ₯Ό μ–΄νœ˜ 집합에 ν¬ν•¨ν•¨μœΌλ‘œ 미등둝 토큰 λ¬Έμžλ‘œλΆ€ν„° μžμœ λ‘­λ‹€. 미등둝 토큰: μ–΄νœ˜ 집합에 μ—†λŠ” 토큰 - μ‹ μ‘°μ–΄λ“± μ—μ„œ λ°œμƒ 단점: 각 λ¬Έ..

    Tokenization - 토큰화 1. ν† ν°ν™”λž€? πŸ’‘ λ¬Έμž₯을 토큰 μ‹œν€€μŠ€λ‘œ λ‚˜λˆ„λŠ” κ³Όμ • → 문자, 단어, μ„œλΈŒμ›Œλ“œλ“± 3κ°€μ§€ 방법 ν† κ·Όν™”λ₯Ό μˆ˜ν–‰ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„(Tokenizer)라고 ν•œλ‹€. ν† κ·Όν™” λ°©μ‹μ—λŠ” μ—¬λŸ¬κ°€μ§€κ°€ 있음 → 단어(μ–΄μ ˆ), 문자, μ„œλΈŒμ›Œλ“œ(Subword) λ‹¨μœ„ 단어 λ‹¨μœ„ 토큰화 곡백으둜 뢄리 μž₯점: Tokenizerλ₯Ό μ‚¬μš©ν•˜λ©΄ μ–΄νœ˜ 집합이 μ»€μ§€λŠ”κ±° μ™„ν™” πŸ’‘ Example μ€μ „ν•œλ‹’μœΌλ‘œ 토큰화 → κ·Έλ ‡λ‹€κ³  μ€μ „ν•œλ‹’ 같은 Tokenizer μ‚¬μš©ν•΄μš” μ–΄νœ˜μ§‘ν•© 크기가 μ»€μ§€λŠ”κ±΄ 막기 어렀움 (μ–΄νœ˜ μ§‘ν•© 크기가 컀질수둝..) 문자 λ‹¨μœ„ ν† κ·Όν™” πŸ’‘ 문자 λ‹¨μœ„ → λͺ¨λ“  문자λ₯Ό μ–΄νœ˜ 집합에 ν¬ν•¨ν•¨μœΌλ‘œ 미등둝 토큰 λ¬Έμžλ‘œλΆ€ν„° μžμœ λ‘­λ‹€. 미등둝 토큰: μ–΄νœ˜ 집합에 μ—†λŠ” 토큰 - μ‹ μ‘°μ–΄λ“± μ—μ„œ λ°œμƒ 단점: 각 λ¬Έ..

    Read more
  • [NLP] 처음 λ§Œλ‚˜λŠ” μžμ—°μ–΄ 처리 & Transfer Learning

    λ”₯λŸ¬λ‹ 기반 μžμ—°μ–΄ 처리 λͺ¨λΈ πŸ’‘ λͺ¨λΈ(Model): μž…λ ₯을 λ°›μ•„ μ–΄λ–€ 처리λ₯Ό μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜, μžμ—°μ–΄μ²˜λ¦¬μ—μ„œμ˜ input은 μžμ—°μ–΄ πŸ’‘ λͺ¨λΈμ˜ 좜λ ₯은 ν™•λ₯ μ΄λΌλŠ” 점에 μ£Όλͺ©μ„ ν•΄μ•Όν•œλ‹€. μžμ—°μ–΄μ²˜λ¦¬ λͺ¨λΈμ˜ 좜λ ₯도 ν™•λ₯  → κ·ΈλŸ¬λ‚˜, λͺ¨λΈμ˜ 좜λ ₯ ν˜•νƒœλŠ” ν™•λ₯ , μ‚¬λžŒμ΄ μ›ν•˜λŠ”κ±΄ μžμ—°μ–΄ ν˜•νƒœ. 그러면 좜λ ₯된 ν™•λ₯ μ„ ν›„μ²˜λ¦¬ ν•΄μ„œ μžμ—°μ–΄ ν˜•νƒœλ‘œ λ³€ν™˜μ„ ν•΄μ•Όν•œλ‹€. λ”₯λŸ¬λ‹ λͺ¨λΈμ—μ„œλŠ” 데이터에 ‘감성’ μ΄λΌλŠ” λ ˆμ΄λΈ”μ„ 달아 놓은 데이터가 μžˆμ–΄μ•Ό ν•œλ‹€. → 이걸 ν•™μŠ΅ 데이터 라고 ν•œλ‹€. 그리고 λͺ¨λΈμ΄ λ°μ΄ν„°μ˜ νŒ¨ν„΄μ„ 슀슀둜 읡히게 ν•˜λŠ” κ³Όμ • → ν•™μŠ΅(train) Transfer Learning πŸ’‘ 트랜슀퍼 λŸ¬λ‹: νŠΉμ • Taskλ₯Ό ν•™μŠ΅ν•œ λͺ¨λΈμ„ λ‹€λ₯Έ ν…ŒμŠ€ν¬ μˆ˜ν–‰μ— μž¬μ‚¬μš©ν•˜λŠ” 기법을 가리킴 트랜슀퍼 μ μš©μ‹œ 기쑴보닀 λͺ¨λΈμ˜ ν•™μŠ΅ 속..

    λ”₯λŸ¬λ‹ 기반 μžμ—°μ–΄ 처리 λͺ¨λΈ πŸ’‘ λͺ¨λΈ(Model): μž…λ ₯을 λ°›μ•„ μ–΄λ–€ 처리λ₯Ό μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜, μžμ—°μ–΄μ²˜λ¦¬μ—μ„œμ˜ input은 μžμ—°μ–΄ πŸ’‘ λͺ¨λΈμ˜ 좜λ ₯은 ν™•λ₯ μ΄λΌλŠ” 점에 μ£Όλͺ©μ„ ν•΄μ•Όν•œλ‹€. μžμ—°μ–΄μ²˜λ¦¬ λͺ¨λΈμ˜ 좜λ ₯도 ν™•λ₯  → κ·ΈλŸ¬λ‚˜, λͺ¨λΈμ˜ 좜λ ₯ ν˜•νƒœλŠ” ν™•λ₯ , μ‚¬λžŒμ΄ μ›ν•˜λŠ”κ±΄ μžμ—°μ–΄ ν˜•νƒœ. 그러면 좜λ ₯된 ν™•λ₯ μ„ ν›„μ²˜λ¦¬ ν•΄μ„œ μžμ—°μ–΄ ν˜•νƒœλ‘œ λ³€ν™˜μ„ ν•΄μ•Όν•œλ‹€. λ”₯λŸ¬λ‹ λͺ¨λΈμ—μ„œλŠ” 데이터에 ‘감성’ μ΄λΌλŠ” λ ˆμ΄λΈ”μ„ 달아 놓은 데이터가 μžˆμ–΄μ•Ό ν•œλ‹€. → 이걸 ν•™μŠ΅ 데이터 라고 ν•œλ‹€. 그리고 λͺ¨λΈμ΄ λ°μ΄ν„°μ˜ νŒ¨ν„΄μ„ 슀슀둜 읡히게 ν•˜λŠ” κ³Όμ • → ν•™μŠ΅(train) Transfer Learning πŸ’‘ 트랜슀퍼 λŸ¬λ‹: νŠΉμ • Taskλ₯Ό ν•™μŠ΅ν•œ λͺ¨λΈμ„ λ‹€λ₯Έ ν…ŒμŠ€ν¬ μˆ˜ν–‰μ— μž¬μ‚¬μš©ν•˜λŠ” 기법을 가리킴 트랜슀퍼 μ μš©μ‹œ 기쑴보닀 λͺ¨λΈμ˜ ν•™μŠ΅ 속..

    Read more