Fungsi ML.TF_IDF

Istilah frekuensi dokumen invers frekuensi (TF-IDF) mencerminkan seberapa penting sebuah kata bagi dokumen dalam koleksi atau korpus. Gunakan fungsi ML.TF_IDF untuk menghitung TF-IDF suku dalam dokumen, mengingat frekuensi dokumen terbalik yang telah dihitung sebelumnya untuk digunakan dalam pembuatan model machine learning. Anda dapat menggunakan ML.TF_IDF dalam klausa TRANSFORM.

Fungsi ini menggunakan algoritma TF-IDF untuk menghitung relevansi istilah dalam sekumpulan dokumen dengan token. TF-IDF mengalikan dua metrik: berapa kali istilah muncul dalam dokumen (frekuensi istilah), dan kebalikan frekuensi dokumen dari istilah tersebut di seluruh kumpulan dokumen (frekuensi dokumen terbalik).

  • TF-IDF:

    term frequency * inverse document frequency
    
  • Frekuensi istilah:

    (count of term in document) / (document size)
    
  • Frekuensi dokumen terbalik:

    log(1 + num_documents / (1 + token_document_count))
    

Istilah ditambahkan ke kamus istilah jika memenuhi kriteria untuk top_k dan frequency_threshold. Jika tidak, istilah tersebut dianggap istilah yang tidak diketahui. Istilah yang tidak diketahui selalu menjadi istilah pertama dalam kamus dan direpresentasikan sebagai 0. Kamus lainnya diurutkan menurut abjad.

Sintaksis

ML.TF_IDF(
  tokenized_document
  [, top_k]
  [, frequency_threshold]
)
OVER()

Argumen

ML.TF_IDF menggunakan argumen berikut:

  • tokenized_document: Nilai ARRAY<STRING> yang mewakili dokumen yang telah ditokenkan. Dokumen yang ditokenkan adalah kumpulan istilah (token), yang digunakan untuk analisis teks.
  • top_k: Argumen opsional. Mengambil nilai INT64, yang mewakili ukuran kamus, tidak termasuk istilah yang tidak diketahui. Istilah top_k yang muncul di sebagian besar dokumen ditambahkan ke kamus sampai nilai minimum ini terpenuhi. Misalnya, jika nilai ini adalah 20, 20 istilah unik teratas yang muncul di sebagian besar dokumen akan ditambahkan, lalu tidak ada istilah tambahan yang ditambahkan.
  • frequency_threshold: Argumen opsional. Ambil nilai INT64 yang mewakili jumlah minimum dokumen yang harus mencakup sebuah istilah untuk disertakan dalam kamus. Misalnya, jika nilai ini adalah 3, sebuah istilah harus muncul di setidaknya tiga dokumen untuk ditambahkan ke kamus.

Output

ML.TF_IDF menampilkan tabel input dan dua kolom berikut:

ARRAY<STRUCT<index INT64, value FLOAT64>>

Definisi:

  • index: Indeks istilah yang ditambahkan ke kamus. Istilah yang tidak diketahui memiliki indeks 0.

  • value: Komputasi TF-IDF untuk istilah tersebut.

Kuota

Lihat Kuota dan batas fungsi layanan Cloud AI.

Contoh

Contoh berikut membuat tabel ExampleTable dan menerapkan fungsi 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;

Outputnya mirip dengan hal berikut ini:

+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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"}] |
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Langkah selanjutnya

  • Pelajari lebih lanjut TF-IDF di luar machine learning.