ML.TF_IDF 함수
TF-IDF(역문서 빈도)는 단어가 컬렉션 또는 코퍼스의 문서에서 얼마나 중요한지 나타냅니다. ML.TF_IDF
함수를 사용하여 머신러닝 모델 생성에 사용할 수 있도록 미리 계산된 역문서 빈도에 따라 문서의 용어 TF-IDF를 계산합니다. TRANSFORM 절 내에서 ML.TF_IDF
를 사용할 수 있습니다.
이 함수는 TF-IDF 알고리즘을 사용하여 토큰화된 문서 집합에서 용어의 관련성을 계산합니다. TF-IDF는 두 가지 측정항목, 즉 용어가 문서에서 사용된 횟수(용어 빈도)와 문서 컬렉션 전반에서 해당 용어의 역 문서 빈도(역문서 빈도)를 곱합니다.
TF-IDF:
term frequency * inverse document frequency
용어 빈도:
(count of term in document) / (document size)
역문서 빈도:
log(1 + num_documents / (1 + token_document_count))
top_k
및 frequency_threshold
의 기준을 충족할 경우 용어 딕셔너리에 용어가 추가되고 그렇지 않으면 알 수 없는 용어로 간주됩니다. 알 수 없는 용어는 항상 딕셔너리의 첫 번째 용어이며 0
으로 표시됩니다. 딕셔너리의 나머지 부분은 알파벳순으로 정렬됩니다.
구문
ML.TF_IDF( tokenized_document [, top_k] [, frequency_threshold] ) OVER()
인수
ML.TF_IDF
는 다음 인수를 사용합니다.
tokenized_document
: 토큰화된 문서를 나타내는ARRAY<STRING>
값입니다. 토큰화된 문서는 텍스트 분석에 사용되는 용어(토큰)의 모음입니다.top_k
: 선택적 인수입니다. 알 수 없는 용어를 제외하고 딕셔너리의 크기를 나타내는INT64
값을 사용합니다. 대부분의 문서에 표시되는top_k
용어는 이 임곗값이 충족될 때까지 사전에 추가됩니다. 예를 들어 이 값이20
인 경우 대부분의 문서에 나타나는 상위 20개의 고유 용어가 추가되고 이후에는 추가 용어가 추가되지 않습니다.frequency_threshold
: 선택적 인수입니다. 용어를 딕셔너리에 포함하기 위해 해당 용어가 표시되어야 하는 최소 문서 수를 나타내는INT64
값을 사용합니다. 예를 들어 이 값이3
인 경우 딕셔너리에 추가하려면 용어가 3개 이상의 문서에 나타나야 합니다.
출력
ML.TF_IDF
는 입력 테이블과 다음 두 열을 반환합니다.
ARRAY<STRUCT<index INT64, value FLOAT64>>
정의:
index
: 딕셔너리에 추가된 용어의 색인입니다. 알 수 없는 용어의 색인은 0입니다.value
: 용어에 대한 TF-IDF 계산입니다.
할당량
Cloud AI 서비스 함수 할당량 및 제한사항을 참조하세요.
예
다음 예시에서는 ExampleTable
테이블을 만들고 ML.TF_IDF
함수를 적용합니다.
WITH
ExampleTable AS (
SELECT 1 AS id, ['I', 'like', 'pie', 'pie', 'pie', NULL] AS f
UNION ALL
SELECT 2 AS id, ['yum', 'yum', 'pie', NULL] AS f
UNION ALL
SELECT 3 AS id, ['I', 'yum', 'pie', NULL] AS f
UNION ALL
SELECT 4 AS id, ['you', 'like', 'pie', NULL] AS f
)
SELECT id, ML.TF_IDF(f, 3, 1) OVER () AS results
FROM ExampleTable
ORDER BY id;
출력은 다음과 비슷합니다.
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | id | results | +----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 1 | [{"index":"0","value":"0.12679902142647365"},{"index":"1","value":"0.1412163100645339"},{"index":"2","value":"0.1412163100645339"},{"index":"3","value":"0.29389333245105953"}] | | 2 | [{"index":"0","value":"0.5705955964191315"},{"index":"3","value":"0.14694666622552977"}] | | 3 | [{"index":"0","value":"0.380397064279421"},{"index":"1","value":"0.21182446509680086"},{"index":"3","value":"0.14694666622552977"}] | | 4 | [{"index":"0","value":"0.380397064279421"},{"index":"2","value":"0.21182446509680086"},{"index":"3","value":"0.14694666622552977"}] | +----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
다음 단계
- 머신러닝 외부에서 TF-IDF에 대해 자세히 알아보세요.