MediaPipe Text Classifier 태스크를 사용하면 텍스트를 긍정 또는 부정적 감정과 같은 정의된 카테고리 집합으로 분류할 수 있습니다. 카테고리는 모델 학습 중에 정의됩니다. 이 작업은 머신러닝(ML) 모델을 정적 데이터로 사용하여 텍스트 데이터를 처리하고 카테고리 목록과 해당 가능성 점수를 출력합니다.
시작하기
사용 중인 플랫폼에 관한 다음 구현 가이드 중 하나에 따라 이 작업을 시작하세요.
이 플랫폼별 가이드에서는 권장 모델, 권장 구성 옵션이 포함된 코드 예시 등 이 작업의 기본 구현을 안내합니다.
태스크 세부정보
이 섹션에서는 이 태스크의 기능, 입력, 출력, 구성 옵션을 설명합니다.
기능
- 입력 텍스트 처리 - 그래프 내 토큰화가 없는 모델에 대해 그래프 외부 토큰화를 지원합니다.
- 다중 분류 헤드 - 각 헤드는 자체 카테고리 세트를 사용할 수 있습니다.
- 라벨 지도 언어 - 표시 이름에 사용되는 언어를 설정합니다.
- 점수 기준: 예측 점수를 기준으로 결과를 필터링합니다.
- 최대 k개 분류 결과 - 감지 결과 수를 필터링합니다.
- 라벨 허용 목록 및 차단 목록 - 감지된 카테고리 지정
태스크 입력 | 태스크 출력 |
---|---|
텍스트 분류기는 다음 입력 데이터 유형을 허용합니다.
|
Text Classifier는 다음을 포함하는 카테고리 목록을 출력합니다.
|
구성 옵션
이 태스크에는 다음과 같은 구성 옵션이 있습니다.
옵션 이름 | 설명 | 값 범위 | 기본값 |
---|---|---|---|
displayNamesLocale |
가능한 경우 태스크 모델의 메타데이터에 제공된 표시 이름에 사용할 라벨의 언어를 설정합니다. 기본값은 영어의 경우 en 입니다. TensorFlow Lite Metadata Writer API를 사용하여 맞춤 모델의 메타데이터에 현지화된 라벨을 추가할 수 있습니다.
| 언어 코드 | en |
maxResults |
반환할 선택적 최대 점수의 분류 결과 수를 설정합니다. 0보다 작은 경우 사용 가능한 모든 결과가 반환됩니다. | 모든 양수 | -1 |
scoreThreshold |
모델 메타데이터에 제공된 값 (있는 경우)을 재정의하는 예측 점수 기준점을 설정합니다. 이 값 미만의 결과는 거부됩니다. | 모든 부동 소수점 수 | 설정되지 않음 |
categoryAllowlist |
허용되는 카테고리 이름의 선택적 목록을 설정합니다. 이 집합에 없는 카테고리 이름의 분류 결과가 필터링됩니다. 중복 또는 알 수 없는 카테고리 이름은 무시됩니다.
이 옵션은 categoryDenylist 와 상호 배타적이며 둘 다 사용하면 오류가 발생합니다. |
모든 문자열 | 설정되지 않음 |
categoryDenylist |
허용되지 않는 카테고리 이름의 선택적 목록을 설정합니다. 비어 있지 않으면 이 세트에 카테고리 이름이 있는 분류 결과가 필터링됩니다. 중복 또는 알 수 없는 카테고리 이름은 무시됩니다. 이 옵션은 categoryAllowlist 와 상호 배타적이며 둘 다 사용하면 오류가 발생합니다. |
모든 문자열 | 설정되지 않음 |
모델
텍스트 분류기는 두 개 이상의 ML 모델과 함께 사용할 수 있습니다. 이 작업으로 개발을 시작할 때는 타겟 플랫폼에 권장되는 기본 모델부터 시작하세요. 사용 가능한 다른 모델은 일반적으로 성능, 정확성, 해상도, 리소스 요구사항 간에 절충점을 찾으며 경우에 따라 추가 기능을 포함합니다.
사전 학습된 모델은 감정 분석을 위해 학습되며 입력 텍스트의 감정이 긍정인지 부정적인지 예측합니다. 모델은 긍정 또는 부정으로 라벨이 지정된 영화 리뷰로 구성된 SST-2 (Stanford Sentiment Treebank) 데이터 세트를 기반으로 학습되었습니다. 모델은 영어만 지원합니다. 영화 리뷰 데이터 세트로 학습되었으므로 다른 주제 영역을 다루는 텍스트의 품질이 저하될 수 있습니다.
BERT 분류 모델 (권장)
이 모델은 BERT 기반 아키텍처 (특히 MobileBERT 모델)를 사용하며 정확성이 높으므로 권장됩니다. 태스크가 그래프 외부 BERT 토큰화를 실행할 수 있도록 하는 메타데이터가 포함되어 있습니다.
모델 이름 | 입력 셰이프 | 양자화 유형 | 버전 |
---|---|---|---|
BERT-classifier | [1x128],[1x128],[1x128] | 다이내믹 레인지 | 최신 |
평균 단어 임베딩 모델
이 모델은 평균 단어 임베딩 아키텍처를 사용합니다. 이 모델은 BERT 분류기에 비해 예측 정확도가 떨어지지만 모델 크기가 작고 지연 시간이 짧습니다. 추가 학습을 통해 이 모델을 맞춤설정하는 것도 BERT 기반 분류기를 학습하는 것보다 빠릅니다. 이 모델에는 작업이 그래프 외부 정규식 토큰화를 실행할 수 있는 메타데이터가 포함되어 있습니다.
모델 이름 | 입력 셰이프 | 양자화 유형 | 버전 |
---|---|---|---|
평균 단어 임베딩 | 1 x 256 | None (float32) | 최신 |
작업 벤치마크
다음은 위의 사전 학습된 모델을 기반으로 한 전체 파이프라인의 태스크 벤치마크입니다. 지연 시간 결과는 CPU / GPU를 사용하는 Pixel 6의 평균 지연 시간입니다.
모델 이름 | CPU 지연 시간 | GPU 지연 시간 |
---|---|---|
평균 단어 임베딩 | 0.14ms | - |
BERT-classifier | 57.68ms | - |
커스텀 모델
제공된 모델의 기능을 개선하거나 변경하려는 경우 이 태스크에서 맞춤설정된 ML 모델을 사용할 수 있습니다. Model Maker를 사용하여 기존 모델을 수정하거나 TensorFlow와 같은 도구를 사용하여 모델을 빌드할 수 있습니다. MediaPipe에서 사용하는 맞춤 모델은 TensorFlow Lite 형식이어야 하며 모델의 작동 매개변수를 설명하는 특정 metadata를 포함해야 합니다. 직접 모델을 빌드하기 전에 Model Maker를 사용하여 이 작업에 제공된 모델을 수정하는 것이 좋습니다.