Tf–idf

Trong truy hồi thông tin, **tf–idf**, **TF*IDF**, hay **TFIDF**, viết tắt từ cụm từ tiếng Anh: **term frequency–inverse document frequency**, là một thống kê số học nhằm phản ánh tầm quan trọng của một từ đối với một văn bản trong một tập hợp hay một ngữ liệu văn bản. tf–idf thường dùng dưới dạng là một trọng số trong tìm kiếm truy xuất thông tin, khai thác văn bản, và mô hình hóa người dùng.

Giá trị tf–idf tăng tỉ lệ thuận với số lần xuất hiện của một từ trong tài liệu và được bù đắp bởi số lượng tài liệu trong kho ngữ liệu có chứa từ, giúp điều chỉnh thực tế là một số từ xuất hiện nói chung thường xuyên hơn. tf-idf là một trong những lược đồ (scheme) tính trọng số phổ biến nhất hiện nay. Một cuộc khảo sát được thực hiện vào năm 2015 cho thấy 83% các hệ thống khuyến nghị dựa trên văn bản (text-based recommender systems) trong các thư viện số sử dụng tf-idf.

## TF
**TF- term frequency** – tần số xuất hiện của 1 từ trong 1 văn bản.
Cách tính:

:\mathrm{tf}(t,d) = \frac{\mathrm{f}(t, d)}{\max\{\mathrm{f}(w, d):w \in d\}}
 
* Thương của số lần xuất hiện 1 từ trong văn bản và số lần xuất hiện nhiều nhất của một từ bất kỳ trong văn bản đó. (giá trị sẽ thuộc khoảng [0, 1])
* **f(t,d)** - số lần xuất hiện từ t trong văn bản **d**.
* **max{f(w,d):w∈d}** - số lần xuất hiện nhiều nhất của một từ bất kỳ trong văn bản.

## IDF

**IDF** – *inverse document frequency.* Tần số nghịch của 1 từ trong tập văn bản (corpus).

Tính **IDF** để giảm giá trị của những từ phổ biến. Mỗi từ chỉ có 1 giá trị **IDF** duy nhất trong tập văn bản.

: \mathrm{idf}(t, D) =  \log \frac
*  |D| : - tổng số văn bản trong tập **D**
*  |\{d \in D: t \in d\}| : - số văn bản chứa từ nhất định, với điều kiện  t  xuất hiện trong văn bản d (i.e.,  \mathrm{tf}(t,d) \neq 0). Nếu từ đó không xuất hiện ở bất cứ 1 văn bản nào trong tập thì mẫu số sẽ bằng 0 => phép chia cho không không hợp lệ, vì thế người ta thường thay bằng mẫu thức 1 + |\{d \in D: t \in d\}|.
Cơ số logarit trong công thức này không thay đổi giá trị của 1 từ mà chỉ thu hẹp khoảng giá trị của từ đó. Vì thay đổi cơ số sẽ dẫn đến việc giá trị của các từ thay đổi bởi một số nhất định và tỷ lệ giữa các trọng lượng với nhau sẽ không thay đổi. (nói cách khác, thay đổi cơ số sẽ không ảnh hưởng đến tỷ lệ giữa các giá trị IDF). Tuy nhiên việc thay đổi khoảng giá trị sẽ giúp tỷ lệ giữa IDF và TF tương đồng để dùng cho công thức TF-IDF như bên dưới.

Giá trị **TF-IDF**:
:\mathrm{tfidf}(t,d,D) = \mathrm{tf}(t,d) \times \mathrm{idf}(t, D)

Những từ có giá trị TF-IDF cao là những từ xuất hiện nhiều trong văn bản này, và xuất hiện ít trong các văn bản khác. Việc này giúp lọc ra những từ phổ biến và giữ lại những từ có giá trị cao (từ khoá của văn bản đó).

## Ứng dụng
IDF có ứng dụng trong máy tìm kiếm. Ví dụ, khi người dùng gửi một truy vấn đến máy tìm kiếm, hệ thống cần biết từ nào là từ người dùng quan tâm nhất. Chẳng hạn: truy vấn của người dùng là "làm thế nào để sửa máy ủi". Sau khi tách từ, chúng ta sẽ có tập các từ: làm, thế nào, để, sửa, máy ủi. Trong các từ này, "máy ủi" sẽ có IDF cao nhất. Hệ thống sẽ lấy ra tất cả các văn bản có chứa từ máy ủi và sau đó mới thực hiện việc đánh giá và so sánh dựa trên toàn bộ câu truy vấn.

## Xem thêm

* Nhúng từ
* Phân kỳ Kullback–Leibler
* Phân bổ Dirichlet tiềm ẩn
* Phân tích ngữ nghĩa tiềm ẩn
* Thông tin tương hỗ
* Cụm danh từ
* Okapi BM25
* PageRank
* Mô hình không gian vectơ
* Đếm từ

## Chú thích

## Liên kết ngoài
* Gensim is a Python library for vector space modeling and includes tf–idf weighting.
* Robust Hyperlinking : An application of tf–idf for stable document addressability.
* Anatomy of a search engine 
* tf–idf and related definitions as used in Lucene
* TfidfTransformer in Scikit-learn
* Text to Matrix Generator (TMG)   MATLAB toolbox that can be used for various tasks in text mining (TM) specifically  i) indexing, ii) retrieval, iii) dimensionality reduction, iv) clustering, v) classification. The indexing step offers the user the ability to apply local and global weighting methods, including tf–idf.