‘23.3.6(월) 딥러닝을 이용한

1. 토큰화(토큰화)
– 코퍼스를 토큰이라는 단위로 나누는 작업을 토큰화라고 합니다.

– 의미 있는 단위로 토큰 정의(예: 단어. 문장)

2. 단어 토큰화
– 문장 부호 < . , ? ; !
>
※ 단순히 말뭉치에서 구두점이나 특수문자를 제외하는 것은 옳지 않습니다.

예를 들어 45.55 또는 01.02.06은 문장 부호와 다른 의미를 갖습니다.

※ 띄어쓰기 주의
예를 들어 New York, Rock ‘m’ Roll이라는 단어가 보이면 한 단어지만 중간에
공백이 있으므로 단일 토큰으로 볼 수 있는 기능이 필요합니다.

※ 접힌 아포스트로피(‘)가 있는 단어는 구분해야 합니다.

예를 들어, 우리는 *re가 접힌 상태로 해제되어야 합니다.

3. 토큰화 설정
– 직관적, 구두점으로 문장 단위를 잘라내는 대신 어떤 국적 언어,
이 말뭉치 내에서 특수 문자가 어떻게 사용되는지 확인해야 합니다.

– 영어의 경우 sen_tokenize 내에서 NLTK를 권장합니다.

– 한국어에서는 KSS(Korean Sentence Splitter)를 권장합니다.

4. 한국어 토큰화의 어려움
– 영어에서는 띄어쓰기를 기반으로 해도 단어 토큰화가 잘 됩니다.

– 그러나 영어와 달리 한국어는 공간의 단위인 ‘어절’을 토큰화하는 것을 피한다.

– 한국어가 교착어이기 때문이다.

– 예를 들어 ‘그’, ‘그’, ‘그’ 등 같은 단어에 ‘그’와 같은 다른 게시물 위치가 추가됩니다.

다른 단어로 인식
– 그러므로 한국어로 형태소 토큰화해야 할 것
. 예문: Eddie는 책을 읽었습니다.

. 독립 형태소: whorl, book 등(명사, 대명사, 숫자) / 수식어(형용사, 부사) / 감탄사
. 종속 형태소: -ga, -to, read-, -was, -da 등 접사, 어미, 조사, 어간

5. 음성 태깅의 일부
PRP는 인칭대명사, VBP는 동사, RB는 부사, VBG는 현재부사, IN은 전치사, NNP는 고유명사,
NNS는 복수명사, CC는 접속사, DT는 관사입니다.

– 한국어에서는 형태소 분석기를 KoNLPy라는 Python 패키지와 함께 사용할 수 있습니다.

예: Okt(오픈코리아 텍스트), Mecab, Komoran, Hannanum, Kkma, Twitter


'23.3.6(월) 딥러닝을 이용한 1
품사 표시를 위한 클래스 간 성능 비교

6. 토큰화 전후, 청소 및
정규화 작업
– 퍼지: 보유하고 있는 말뭉치에서 노이즈 데이터를 제거합니다.

. 대문자와 소문자 결합 / 불필요한 단어 제거(불용어, 덜 흔한 단어, 특수 문자 등)
– 정규화(Normalization): 표현 방식이 다른 단어를 결합하여 같은 단어로 만드는 것
. mortising 및 lemmatization

6-1 표제어화(lemmatization)
– 키워드는 ‘단순 사전 단어’를 의미합니다.

예를 들어, am, are 및 is는 철자가 다르지만 기본 단어는 be이고 제목은 be입니다.

– 키워드 추출을 위한 형태소 전달 방식이 있습니다.

– 형태론은 형태소로부터 단어의 형성을 연구하는 학문이며, 형태론적 분석은 다음 두 가지를 분리하는 작업이다.

. 형태소의 종류
어간: 단어의 의미를 포함하는 단어의 핵심 부분
접사: 단어에 추가적인 의미를 부여하는 부분.
– 예를 들어 cat(strain) / -s(affix)로 고양이와 구분

6-2 줄기로 (간격)
– 줄기 추출을 형태 분석의 단순화된 버전으로 생각하십시오.
– 영어 어간 추출 알고리즘 중에는 Porter’s algorithm과 Lancaster’s stemmer가 있다.

※ 이미 알려진 알고리즘을 사용하는 경우, 사용하고자 하는 몸체와 어떤 모티싱이 작동하는지에 맞추어 모티싱을 적용해 보십시오.
해당 신체에 적합한지 판단 후 사용
– 아래에서 표제어 추출과 형태소 분석 결과의 차이점을 참조하세요.

Stemming
am → am
the going → the go
having → hav

Lemmatization
am → be
the going → the going
having → have

– 한국어 트렁크 추출
. 아래 표와 같이 한국어는 5개의 단어와 9개의 품사로 구성되어 있습니다.

. 활용은 주로 한국어와 인도유럽어에서 발견되는 언어적 특징을 총칭하는 용어입니다.

활용형은 어간/어미가 있음 ex) 직업/어간 + 다/어미

겨울 왕국 연설의 일부
명사, 대명사, 숫자
수식어 부사, 부사
상대 단어 점검
독립형 언어 감탄사
동사 동사, 형용사

7. 불용어
– 별 의미 없는 워드마크를 제거하는 작업을 말합니다.

※ 아래 링크는 한국어 인기 불용어 목록입니다.

바로가기 : https://www.ranks.nl/stopwords/korean
– 불용어가 많을 경우 코드에서 직접 정의하지 않고 txt나 csv 파일로 정리한 후 불러와서 사용합니다.

한국어 불용어

www.ranks.nl

8. 정규 표현식
– 아래 링크 참조
바로가기 : https://wikidocs.net/21703

02-05 정규 표현식

정규식은 텍스트 전처리에서 매우 유용한 도구입니다.
이 시간…

wikidocs.net

9. 정수 인코딩
단어에 정수를 할당하는 한 가지 방법은 단어를 빈도별로 정렬한 단어 집합(어휘)을 만드는 것입니다.

빈도 순으로 가장 낮은 정수부터 가장 높은 정수까지 할당하는 방법입니다.

기계는 각 단어를 고유한 정수로 매핑하여 텍스트보다 숫자를 더 잘 처리합니다.

때로는 전처리가 필요합니다.

– 방법 1) 사전 이용
– 방법 2) 카운터 사용
– 방법 3) NLTK의 FreqDist 사용
– 방법 4) enumerate 사용
– 방법 5) 케라스 토크나이저 사용

10. 패딩
데이터에 특정 값을 채워서 모양(크기)을 조절하는 것을 패딩이라고 합니다.

숫자 0을 사용하는 것을 제로 패딩이라고 합니다.

기기는 동일한 길이의 문서를 매트릭스로 간주하여 한 번에 처리할 수 있습니다.

즉 병렬연산이 가능하기 때문에 여러 문장의 길이를 임의로 조절해야 하는 경우가 있다.

11. 원-핫 인코딩
– 문자를 숫자로 표현하는 기법 중 하나입니다.

– 표현하고자 하는 단어의 인덱스를 1, 나머지 인덱스를 0으로 하는 단어 벡터 표현 방식.
– 제약 조건: (1) 단어 수가 증가함에 따라 벡터를 저장하는 데 필요한 공간이 계속 증가합니다.

즉, 원-핫 벡터에서는 단어 집합의 크기가 벡터의 차원이 됩니다.

(2) 단어의 유사도를 표현할 수 없다.
예를 들어 삿포로의 숙소를 검색하면
“삿포로 게스트 하우스” 및 “삿포로 호텔”과 같은 유사한 단어에 대한 결과를 함께 표시할 수 없습니다.

(2-1) 이러한 단점을 해결하기 위해 단어의 잠재된 의미를 반영하여 다차원 공간에서 벡터화하는 기술이 개발되었다.

크게 두 가지로 나누어
한편으로는 LSA(Latent Semantic Analysis) 및 HAL과 같은 숫자 기반 벡터화 방법이 있습니다.

둘째, 예측을 기반으로 벡터화하는 NNLM, RNNLM, Word2Vec, FastText 등이 있습니다.

개수 기반 방법과 예측 기반 방법을 모두 사용하는 글러브 방법도 있습니다.

12. 데이터 분할
기계 학습 모델 훈련 및 평가
– (1) 독립변수(x)와 종속변수(y)를 분리
. 방법 1) zip 기능 사용
. 방법 2) 데이터 프레임 사용
. 방법 3) Numpy 사용
– (2) x,y에서 분리된 테스트 및 훈련 데이터
. 방법 1) sklearn의 train_test_split 라이브러리 사용
. 방법 2) 수동으로 연결 해제
※ 참고 링크:https://wikidocs.net/33274

02-09 데이터 분할

기계 학습 모델을 교육하고 평가하려면 데이터를 적절하게 분리해야 합니다.
이 책은 대부분 감독 학습을 다룹니다.

wikidocs.net