데이터셋
|
train |
test |
| 데이터 개수 |
468,086 |
202,398 |
| 음식 종류 |
386 |
386 |
- 우리가 사용하는 데이터셋은 기본적으로 AIHub의
음식 이미지 및 영양정보 텍스트 데이터셋을 누비랩 측에서 정제한 데이터셋이다 [AIHub link]
- 한국인 다빈도 섭취 외식/한식 메뉴 400종을 선정하여 각 음식마다 2000장의 이미지가 존재하며 추가적으로 음식마다 16개의 대분류로 나눠져있다.
- 하지만 누비랩 측에서 정제된 데이터셋에서는 음식의 종류는 386개가 된다
- 제외된 음식 14개: (검은)콩조림, 간자장, 갈비삼각김밥, 돈가스, 선지해장국, 소고기무국, 자장면, 자장밥, 잣국, 전주비빔밥, 전주콩나물국밥, 참꼬막, 치즈돈가스, 치즈라면, 카레라이스
대분류 Analysis

Train 데이터를 대분류로 나눴을 때
| 대분류 |
train 비중 (%) |
클래스 개수 |
| 구이류 |
4.52 |
17 |
| 국, 탕 찌개류 |
16.49 |
69 |
| 김치류 |
3.57 |
15 |
| 나물, 무침류 |
10.23 |
38 |
| 떡류 |
3.94 |
17 |
| 면, 만두류 |
10.97 |
43 |
| 밥류 |
14.52 |
59 |
| 볶음류 |
7.42 |
27 |
| 장아찌, 젓갈류 |
3.25 |
14 |
| 전, 부침류 |
6.26 |
23 |
| 조림류 |
5.12 |
20 |
| 죽, 스프류 |
3.32 |
13 |
| 찜류 |
3.28 |
13 |
| 튀김류 |
4.37 |
20 |
| 한과류 |
1.42 |
6 |
| 회류 |
1.41 |
6 |
- Test 데이터셋을 대분류로 나눴을 때
- 음식을 대분류로 묶어서 데이터셋의 비중을 확인해보면
국, 탕 찌개류 와 밥류 에 속하는 데이터가 압도적으로 많고 그 다음으로 면, 만두류 와 나물, 무침류가 많은 것을 확인할 수 있다
- 대분류 내 클래스 개수를 확인해보면
국, 탕 찌개류 와 밥류 가 클래스 69개와 59개가 존재하다는 것을 볼 수 있으니 데이터셋이 자연스럽게 클래스 개수가 많은 대분류 비중이 큰 것으로 확인을 할 수 있다.
음식(Class) Analysis
|
train |
test |
| count |
386 |
386 |
| mean |
1212.66 |
524 |
| std |
175.33 |
78 |
| min |
144 |
62 |
| 25% |
1198.25 |
514 |
| 50% |
1254.00 |
537 |
| 75% |
1271.00 |
548 |
| max |
1497 |
694 |
- 위에서 언급을 했듯이 정제된 데이터셋에서는 음식 class가 386개가 된다. 각 class의 데이터 개수를 확인했을 때 평균으로 1212개의 데이터, 최소 144개, 최대 1497개의 데이터가 있는 것을 확인 할 수 있다.
Tokenizer Analysis
| mean |
2.27 |
| std |
0.67 |
| min |
1.00 |
| 25% |
2.00 |
| 50% |
2.00 |
| 75% |
3.00 |
| max |
6.00 |
- 누비랩에서 제공한 음식 사전을 이용한 토크나이저를 이용해서 음식 클래스를 tokenizing을 해보았다.
- sos와 eos를 제외하고 token이 제일 많은 class는
돼지고기메추리알장조림 (6 tokens)이다
- 제일 짧은 class는 token 1개짜리 classes이다
- max_sequence_length를 10 (sos, eos 포함해서) setting 하면 적절할 것으로 판단이 된다.
추가 인사이트