> For the complete documentation index, see [llms.txt](https://lswkim322.gitbook.io/til/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lswkim322.gitbook.io/til/til-ml/boostcamp/competition/1.-nlp/day5-9.31.md).

# Day5 (10.1, 금)

> * 데이터 EDA 진행
> * 오피스아워 토대로 어떤걸 진행해볼지 고민해보기

## 작업 결과물

### 1. 오피스아워에서 테스트 해보고 싶은 방법론 고르기

{% content-ref url="/pages/-MkuS5DrAsTbiwVRTO8k" %}
[오피스아워 (9.30, 목)](/til/til-ml/boostcamp/p-stage-klue/9.30.md)
{% endcontent-ref %}

#### 1.1. Using Special Token

1. Typed entity marker: \[ent]가 아닌 entity type으로 token 표현하기
2. Typed entity marker(punct): special token이 아니라 문장부호를 사용해서 해보기

위 과정을 진행하기 앞서 EDA를 진행하여 데이터분포 및 상태를 체크해보았다. Day4와 달리 pandas를 활용하여 전체적인 분포를 체크

#### 1.2. Data Augmentation

* **AEDA: An Easier Data Augmentation Technique for Text Classification**
  * 단어가 아닌 무작위로 문장부호를 넣고 이를 학습데이터로 한다.
  * 추가하는 문장은 \[0, 전체단어의 갯수의 1/3] 내에서 무작위로 추출

### 2. EDA

&#x20;저작권 문제로 직접적인 데이터는 표시 못함.

#### 2.1. Label Class 분포 불균형

![](/files/-Ml39JhJSidPFYiaGEzL)

보다 시피 `no_relation`이 타 class에 배해 양이 많은것을 확인 할 수 있다. 데이터 불균형 문제를 해소 하기 위해 적은 class의 데이터를 증강하고 `no_relation` 은 줄여주는 방법을 고민해봐야 할 것 같다. 실제로 test dataset에도 분포가 이와 같다면 사실 데이터 불균형을 해소하는 것이 좋은 추론을 하는지 알 수 없기에 train / validation을 나누고 train에서 증강과 축소 작업을 진행해서 검증하는 단계를 거쳐야 할 것으로 보인다.

#### 2.2. Entity Type 정의 및 분포 확인

![](/files/-Ml3AychWMPbu30ZN7w0)

이 데이터를 보고 들었던 생각은 label class를 정의내릴때 이 Entity Type의 종류로 정의를 내릴 수 있겠다는 생각이 들었다. 예를 들어 `per:date_of_birth` 클래스는 (PER, DAT) 로 구성되어있을 것이다 라는 것이다.  하지만 이를 검증하는 과정에서 type이 제대로 만들어지지 않았음을 확인할 수 있었다.

![](/files/-Ml3BnXNzLi6xQV-PH8P)

`per:children` class의 경우는 (PER, PER)로 구성되야 할 것이다. 하지만 전혀 연관이 없는 LOC나 NOH, DAT, ORG, POH등이 있었고, 만약 Typed entity marker을 하게 된다면 이런 type을 가진 데이터는 제외하고 진행해야할 것이다.

&#x20;또 특이한 점으로는 AI-Stage의 타 캠퍼분이 올려주신 내용중 entity가 한글, 영어, 숫자 이외의 data가 들어있음을 확인할 수 있었다. tokenizer 방식에 이런 일어나 한문에 대한 값이 없다면 이들도 제외하는게 맞을 수도 있겠다는 생각이 들었다.

#### 데이터 증강에 대한 아이디어

피어세션을 통해 나온 아이디어로 부족한 class에 대해서 그에 해당하는 단어를 임의의 문장에 붙여넣거나 subject, object entity 위치에 대체하는 방식으로 증강을 시도해 볼 수 있도록 한다.

### 3. Training Idea

* **2(n)-Step 학습**
  * relation check -> (PER, ORG 체크) -> (type별 체크) -> class 분류
  * 이미지 분류 대회에서와 같이 분류를 세분화하여 나누면 성능향상에 도움이 되지않을까 싶다.
  * 단, submission 시에 확률값으로 추출하여야 하므로 계산식 구현이 필요하다.
* **여러 pre-trained 모델을 통한 학습**
  * "훈민정음 요약 대회"를 통해 느낀바로 pre-trained 모델을 선정하는 것이 큰 영향을 준다고 생각이 되었다. 다양한 모델을 테스트하며 주어진 dataset에 잘 맞는 모델을 찾아본다.

## Summary

오늘은 연휴간 진행할 내용들에 대해 정리하는 시간을 가졌고, 주말동안 위에서 나온 아이디어들을 바탕으로 다양한 테스트를 진행하고자 한다.
