나는 오늘 무엇을 했는가?
1. AIS 7기 수업(오늘코드 박조은 강사님, 파이썬)
- TF-IDF, TfidfVectorizer, CountVectorizer
✨ 단어 빈도 1️⃣ TF(단어 빈도, Term Frequency)
특정한 단어가 문서 내에 얼마나 자주 등장하는지를 나타내는 값 이 값이 높을 수록 문서에서 중요하다고 할 수 있지만 단어 자체가 문서군 내에 자주 사용되는 경우, 그 단어가 흔하게 등장한다는 의미
2️⃣ DF(문서 빈도, document frequency)
특정 단어가 등장한 문서의 수 단어 자체가 문서군 내에서 자주 사용되는 경우, 그 단어가 흔하게 등장한다는 것을 의미
3️⃣ IDF(역문서 빈도, inverse documnet frequency)
DF의 역수로 DF에 반비례하는 수
4️⃣ TF-IDF 41페이지
TF와 IDF를 곱한 값으로 여러 문서로 이루어진 문서군이 있을 때 TF-IDF는 모든 문서에서 자주 등장하는 단어는 중요도가 낮다고 판단함 특정 문서에서만 자주 등장하는 단어는 중요도가 높다고 판단함 TF-IDF 값이 낮으면 중요도가 낮은 것이며, TF-IDF 값이 크면 중요도가 큰 것 불용어의 TF-IDF 값은 다른 단어의 TF-IDF에 비해서 낮음
✨ 사이킷런 문서 전처리 기능 1️⃣ TfidfVectorizer
파라미터
norm{'L2','L2'}, default = "L2" use_idf: 역문서 빈도 재가중 활성화 smooth_idf: 문서 빈도에 1을 추가하여 idf 가중치를 부드럽게 하여 제로 분할 방지 sublinear_tf: 준선형 tf 스케일링 적용 즉 tf를 1 + log(tf)로 변경
2️⃣ CountVectorizer
파라미터
analyzer : 단어, 문자 단위의 벡터화 방법 정의 (단어 단위로 묶을 것인지 아니면 character 단위로 묶을 것인지) ngram_range : BOW 단위 수 (1, 3) 이라면 1개~3개까지 토큰을 묶어서 벡터화 max_df : 어휘를 작성할 때 문서 빈도가 주어진 임계값보다 높은 용어(말뭉치 관련 불용어)는 제외 (기본값=1.0), 너무 많이 등장하는 불용어를 제외하는 효과가 있음 min_df : 어휘를 작성할 때 문서 빈도가 주어진 임계값보다 낮은 용어는 제외합니다. 컷오프라고도 합니다.(기본값=1.0), 희소값 제외하는 효과가 있음 stop_words : 불용어 정의 (리스트 형태로 작성) max_features: corpus중 빈도수가 가장 높은 순으로 해당 갯수만큼만 추출
🤔 데이터가 너무 커서 컴퓨터에서 모델을 돌리기 힘들다면? 1️⃣ 이미지 데이터
이미지 사이즈, 레이어 개수 등을 조정
2️⃣ 텍스트 데이터
max_features를 작게 조정하기 비지도학습의 차원축소를 사용하여 데이터 압축하기 ※ 그런데 차원축소의 경우 메모리 오류가 발생할 수 있는데, 해당 경우 max_features로 사이즈를 적당하게 조정해주는 것이 좋다. min_df, max_df, stop_words 등을 사용하여 조정
✨ 불용어 조사, 접미사 등 처럼 문장에서 자주 등장하지만 실제 의미 분석에는 도움이 안되는 단어
영어 또는 많이 사용되는 다른 언어의 불용어는 NLTK, Spacy 와 같은 도구에서 불용어 목록을 제공하고 있지만 한국어는 제공하지 않고 있다.
✨ fit, transform train에는 fit, transform (fit_transform) test에는 transform 만
🤔 왜 fit은 train 에만 해줄까? 🙋♀️ train을 기준으로 해야하기 때문이다. 만약 train과 test 각각에 fit을 하게 되면 서로 다른 기준으로 전처리를 하게 된다. (즉, 텍스트 데이터를 각각 fit 해주면 다른 단어사전으로 전처리 되어 기준이 달라지게 된다.)
✨ 정규표현식 양의 지정
1️⃣? 물음표는 0번 또는 1차례까지의 발생을 의미한다. 이를테면 colou?r는 "color"와 "colour"를 둘 다 일치시킨다.
2️⃣* 별표는 0번 이상의 발생을 의미한다. 이를테면 ab*c는 "ac", "abc", "abbc", "abbbc" 등을 일치시킨다.
3️⃣+ 덧셈 기호는 1번 이상의 발생을 의미한다. 이를테면 ab+c는 "abc", "abbc", "abbbc" 등을 일치시키지만 "ac"는 일치시키지 않는다.
4️⃣{n} 정확히 n 번만큼 일치시킨다.
5️⃣{min,} "min"번 이상만큼 일치시킨다.
6️⃣{min,max} 적어도 "min"번만큼 일치시키지만 "max"번을 초과하여 일치시키지는 않는다.
2. 데이콘 청경채
3. 미니프로젝트 7
나는 오늘 무엇을 느꼈는가?
자연어 처리 재미있는 것 같다!!
총 공부시간
10시간 15분
'복습 및 회고 > TIL' 카테고리의 다른 글
[TIL] 20230101 (일) (0) | 2023.01.01 |
---|---|
[TIL] 20221214(수) (0) | 2022.12.14 |
[TIL] 20221211(일) (0) | 2022.12.11 |
[TIL] 20221210(토) (0) | 2022.12.10 |
[TIL] 20221209 (0) | 2022.12.09 |
댓글