Middle
Как работи TF-IDF?
sobes.tech AI
Отговор от AI
TF-IDF (Term Frequency-Inverse Document Frequency) е статистическа мярка, която отразява важността на дума в документ спрямо цялостния корпус от документи.
- TF (Честота на термина) — честотата на термина в конкретен документ. Обикновено се изчислява като броя на срещанията на думата разделен на общия брой думи в документа.
- IDF (Обратна честота на документа) — обратната честота, която показва колко рядка е думата в цялата колекция от документи. Изчислява се като логаритъм на отношението между общия брой документи и броя на документите, съдържащи тази дума.
Крайната тежест на думата в документа е произведението на TF и IDF:
[ \text{TF-IDF}(t,d) = \text{TF}(t,d) \times \log\frac{N}{1 + \text{DF}(t)} ]
където:
- (t) — термин,
- (d) — документ,
- (N) — общ брой документи,
- (\text{DF}(t)) — брой документи, съдържащи термина (t).
Това помага да се откроят думите, които често се срещат в конкретен документ, но са редки в други, което е полезно за векторизация на текста и последващ анализ.
Пример в Python с sklearn:
from sklearn.feature_extraction.text import TfidfVectorizer
docs = ["машинно обучение е интересно", "обработка на естествен език важна"]
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(docs)
print(vectorizer.get_feature_names_out())
print(tfidf_matrix.toarray())