일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- API
- 상관관계
- airflow subdag
- hadoop
- grad-cam
- login crawling
- Retry
- session 유지
- correlation
- subdag
- GCP
- youtube data
- GenericGBQException
- Airflow
- tensorflow text
- API Gateway
- chatGPT
- UDF
- BigQuery
- TensorFlow
- top_k
- spark udf
- flask
- 공분산
- XAI
- 유튜브 API
- gather_nd
- requests
- integrated gradient
- Counterfactual Explanations
- Today
- Total
데이터과학 삼학년
AutoML Natural Language 소개 본문
Natural Language API
-
텍스트에서 구문, 항목, 감정을 찾아 사전에 정의된 카테고리로 텍스트 분류
-
감성, 문서 분류를 위한 문제에서 활용성이 높을 것으로 보임
-
커스텀 모델
-
학습 : 레이블이 지정되어 있는 데이터를 사용해야함
AutoML Natural Language
-
Natural Language api 기반의 분석 도구
-
분류, 항목 추출, 감정 분석에 사용할 수 있음
-
분류 모델은 문서를 분석하고, 문서에서 찾은 텍스트에 적용되는 콘텐츠 카테고리의 목록을 반환
-
항목 추출 모델은 문서에 참조된 알려진 항목을 검사하고 텍스트의 해당 항목에 라벨을 지정
-
감정 분석 모델은 문서를 검사하고 문서 내의 주도적인 감정적 의견을 식별하여 작성자의 태도가 긍정적인지, 부정적인지 또는 중립적인지를 판단
-
데이터를 넣으면 자동으로 학습 80%, 검증 10%, 테스트 10%로 자동 분류하여 적용
-
분류
-
최대 5000개의 레이블까지 커버 가능
-
감정분석
-
감정 점수 레이블은 0(부정적 감정), 1(중립적 감정), 2(긍정적 감정)로 지정
-
레이블은 최대 10까지 사용 가능
-
문서 분류의 경우, 각 문서에 최대 20개 레이블 포함 가능 (문서별 감정 분석)
-
문서 내에서 감정 분류
-
학습 데이터 만들기
-
CSV 파일의 이름에는 제한이 없지만 UTF-8로 인코딩되고 .csv 확장자로 끝나야 함
-
파일은 프로젝트와 관련된 Google Cloud Storage 버킷에 저장
-
데이터에 중복된 contents가 있으면...error 발생
-
데이터에 head도 없어야 함
-
데이터 10만개 이상 데이터로 사용할 수 없음
-
데이터 예제 (sample)
-
분류 모델
-
항목 추출
-
감정 분석
-
지원 언어 확인 : 한국어 지원함(분류, 항목, 감정)
-
분류, 감정 20개 언어, 항목 100개 언어
-
-
분류, 항목, 감정 분석에 따라 지원언어가 다름 (20~100 여개 언어 지원)
-
학습 시간
-
분류 모델 : 평균 학습 시간은 6시간에서 최대 24시간까지 소요
-
항목 추출 및 감성 분석 : 평균 학습 시간은 5시간에서 최대 6시간
네이버 영화 리뷰 데이터를 이용한 실습
-
0 : 부정, 1: 긍정
-
AutoML 감정분석을 이용하여 분류
-
Process
-
AutoML 데이터 셋 생성
-
GUI
-
code
-
metadata 설정에서 총 분류하고자 하는 감정이 만약 3개 이면, sentiment_max=2로 지정 (0, 1, 2)
-
부정이면 0, 긍정일 수록 높은 숫자로 지정해야하며, 레이블은 연속된 integer 형태이여야함
2. 데이터 불러오기
-
GUI
-
code
→ 데이터 불러온 결과 확인 가능
-
자동으로 학습, 검증, 테스트 데이터 분리함
3. 모델 학습
-
custom model은 최대 2년의 수명기간
-
GUI
-
code
> 모델 이름은 dataset id 뒤에 임의의 숫자가 붙음
4. 모델 평가
-
GUI
-
code
5. 테스트 및 적용
-
GUI
-
predict 파일은 csv 파일을 지원하지 않음(gui에서) → 단일 텍스트만 분석 가능
-
pdf, tif, tiff 파일로 변환하여 넣어야함
-
online predict
-
긍정 테스트
-
부정 테스트
-
code
-
모델 배포 이후 실행
-
예측할 데이터가 들어있는 GCS는 버킷의 등급이 coldline이면 안됨
-
standard,resional 이어야함
-
batch prediction은 코드로만 가능
-
분류할 파일이 행당 하나씩 나열된 열이 한 개 있는 CSV 파일 지원
-
최대 10,000개 문서 제출 가능, 프로젝트당 10개 동시 요청 가능
-
For Text Sentiment: CSV file(s) with each line having just a single column: GCS_FILE_PATH | TEXT_SNIPPET Any given text file can have size upto 128kB. Any given text snippet content must have 500 characters or less.
Three sample rows: gs://folder/text1.txt “Some text content to predict” gs://folder/text3.pdf Supported file extensions: .txt, .pdf |
-
batch prediction을 할 pred_test.csv 파일을 input_uri에 direct로 집어넣으면 안됨!!!
-
csv batch prediction에서 error → empty csv가 아닌데 이런 에러가 나서 batch prediction이 안됨
-
해당원인을 조사하다 googleapis git에서 동일한 문제에 대해 질문한 글을 보았고, input_uri 는 파일의 리스트를 담고있는 .csv 파일이어야함을 확인 → 공식문서에는 설명 업데이트 안했다고 함
-
즉, input_uri = ‘gs://text/pred_file_lst.csv’
-
실제 분석할 file의 위치를 pred_file_lst.csv안에 담음
-
file은 txt, pdf 여야함!!!
-
txt 파일은 한개의 row를 가져야함 한 파일당 결과 한개
-
절대 csv 이면 안됨!!!!!!!!!
-
csv이면 None Internal error가 나옴
-
batchprediction의 결과는 output_uri 에 담김
-
위에서 시키는 대로 했지만,,batch prediction에 시간이 하염없이…
-
AutoML Vison에서 확인한 결과, “소수의 이미지에서도 일괄 예측을 완료하는 데 최소 30분이 소요됩니다.“ 라고 document에 써있음
-
분석 결과는 .jsonl 파일로 나옴
향후 적용 계획
-
AutoML api 를 이용해 양질의 데이터 10만건을 추출하여 모델을 학습시키고 일단위 예측 수행
-
모델 학습 주기는 월 단위 혹은 대규모 업데이트 단위로 실행
-
네이버 영화 리뷰로 학습한 모델로 감정분석한 결과, 꽤 잘 working 함
-
관련 data 뿐만 아니라 감정을 나타낼 수 있는 다양한 텍스트 데이터를 수집하여 모델에 학습시켜도 적용 가능할 것으로 보임
출처
-
AutoML 공식문서 : https://cloud.google.com/natural-language/automl/docs
-
AutoML 소스코드: https://github.com/googleapis/python-automl/blob/master/google/cloud/automl_v1/gapic/prediction_service_client.py
'GCP' 카테고리의 다른 글
AutoML TimeSeries forecasting (0) | 2020.06.02 |
---|---|
Cloud Natural Language API (GCP) (0) | 2020.06.01 |
Dataflow SQL (0) | 2020.04.06 |
GCP AI-platform Stream Logs error (0) | 2020.02.22 |
Bigquery Table_Suffix 관련 error(적재되는 data type이 꼬였을 때) (0) | 2020.01.30 |