-
Tokenization자연어 foundation 2024. 9. 4. 11:32•따라서 이미 공백으로 나누어져 있지 않은 단어들을 적절히 추가적으로 나누어 줄 필요가 있음•이렇게 나누어진 단어를 Token이라고 함 (가장 작은 의미적 단위)•Token은 단어와 유사하지만 완전히 동일하지는 않음•예를 들어, 문장 부호는 단어가 아니지만 Token으로 분류됨
->I like apple, banana, and grape 에서 , 도 Token으로 분류
•때때로 한 단어가 여러 가지의 토큰으로 나뉠 수 있음•Unhappy -> Un happy•반면에 여러 단어가 한 개의 토큰이 될 수도 있음•COVID-19 (COVID - 19)•자연어 처리에서 대부분 모델들은 Token의 확률을 예측함
•많은 Tokeniser (토큰 분류기) 가 사용되고 있으며, 각각 다른 규칙을 적용함•다른 언어에서는 다른 규칙이 있을 수 있음•영어에서는 1차적으로 공백으로 나눔(이것만으로도 괜찮은결과)•예를 들어, 한국어는 다양한 조사와 어미로 인해 공백을 기준으로 토큰을 나누기 어려움•따라서 한국어는 보통 의미를 가진 가장 작은 단위인 형태소로 나누는 경우가 많음 (한국어에서는 일반적으로 형태소 = 토큰)예시: 아버지가방에들어가신다 (띄어쓰기 없음•각각의 Tokeniser들은 장단점이 있으며, Tokeniser들은 서로 다르게 형태소 (Token)을 찾아낼 수 있음•이는 영어나 다른 언어에서도 동일•You’re -> You ‘ re / You ‘re•따라서 연구자가 직접 여러 Tokeniser들을 비교해야 함Stemming / Lemmatisation
•영어에서는 단어들이 상황에 따라 변화함•eat / eats / ate / eaten••비슷하게 한국어에서도•먹다 / 먹어서 / 먹고 / 먹어 …..••이전 N-gram 모델의 확률은 특정 단어 (혹은 구)의 등장 빈도를 세는 식으로 계산하였음••특정 문제의 경우 단어의 활용형도 같은 것으로 취급하는 것이 효과적••검색 엔진: “사과” 를 검색했을 때, “사과들“, “사과가” 등을 모두 찾는 것이 효과적•글 분류: 어떤 이메일이 스팸인지 아닌지를 분류할 때, 1차적으로 의심스러운 단어들이 있는지 아닌지를 확인함 (“입금”, “코인”, “주식“, “수익률“, …..)•이러한 단어들이 조금 다르게 적혀있어도 모두 찾는 것이 좋음•다만 이러한 방법이 오히려 방해인 경우도 있음•언어모델: 단어의 활용형을 모두 같은 것으로 취급하면, 문법적으로 맞지 않거나 어색한 문장을 만들 수 있음 예시: 나는 과자를 먹다 다음 사과를 먹다. 그리고 빵을 먹다.•번역: 비슷하게, 번역 시 문법적으로 틀린 문장을 만들 수 있음 (ex. he be)•Stemming과 Lemmatisation은 둘 다 단어의 어간(기본 형태)를 찾는 것이 목적•예시: eats / ate / eaten -> eat••Stemming은 단순히 정해진 규칙에 따라 기계적으로 단어의 접미사를 제거함. 이때 단어의 문맥이나 품사 등을 고려하지 않음•따라서 Stemming은 매우 빠르지만 때때로 실제 단어가 아닌 형태를 생성할 수 있음(동사가 활용되는 규칙을 다 적어놓음)•예시: Studies / Studying -> Studi원형과 차이가 있는 결과가 나올수 있음 (es 날리면 말이안됨)
•따라서 Stemming은 이러한 오류가 큰 차이를 불러오지 않는 분야에서 유용함 (검색 엔진 등) -> 처리할 단어가 많아서 stemming선호•또한 접미사가 간단하고 규칙적인 언어 (영어 등) 에서 효과적•하지만 한국어처럼 복잡한 접미사를 가진 언어에는 부적합•따라서 한국어는 일반적으로 Lemmatisation을 사용Lemmatisation Stemming 차이
은 단순 규칙으로 작동하는 Stemming과 다르게, 주변 문맥이나 단어의 품사 등 보다 많은 정보를 고려함Stopword Removal
•일반적으로 데이터셋에는 수많은 불용어 (Stopword)들이 등장함•불용어 – 뜻이 있지는 않는 단어 은/는/이/가 ..•예시: I, me, myself, the, a, is, on, at, in, …..••이러한 불용어들은 문장에서는 자주 등장하지만 실제 의미 분석을 할 때에는 큰 도움이 되지 않음 ex. 나 밥 먹었다.•예시: The cat is sitting on the mat in the room-> cat sitting mat room
불용어를 제거하고 맞는걸 찾아줌
•다만 언어 모델 등에서는 이러한 불용어들이 문법적 / 의미적으로 중요한 역할을 하므로 보통 제거하지 않음Case Conversion
•영어와 같이 대문자 / 소문자가 있는 언어에서는 둘중 하나로 통일하는 것이 효과적일 수 있음•검색 엔진, 글 분류 등은 대소문자에 영향을 크게 받지 않음•예시: 유저가 “Cat”을 검색할 때, “CAT”, “Cat”, “cat” 등을 모두 찾아 주는 것이 효과적•다만 이전 Pre-processing 방법들과 마찬가지로, 대소문자를 변환하지 않는 것이 유리할 때도 있음Summary
•인터넷 등에서 가져온 데이터는 일반적으로 바로 사용할 수 없으며, 적절한 전처리 과정을 거쳐야 함•이러한 전처리 과정은 언어나 작업에 따라서 달라짐•각 전처리 방법의 장단점을 잘 이해하고, 충분한 실험을 통해 적절한 전처리 과정을 고르는 것이 필수적'자연어 foundation' 카테고리의 다른 글
Evaluation (4) 2024.09.04