Векторизация текста и эмбеддинги
Подтемы:
Написать TF-IDF функцию.
Решение:
import math
def tfidf(term, document, corpus):
# TF (Term Frequency) - частота термина в документе
tf = document.count(term) / len(document)
# IDF (Inverse Document Frequency) - обратная частота документа с термином
num_documents_with_term = sum(1 for doc in corpus if term in doc)
idf = math.log(len(corpus) / (1 + num_documents_with_term))
return tf * idf
# Пример использования:
corpus = [
"This is the first document.",
"This document is the second document.",
"And this is the third one.",
"Is this the first document?",
]
documents = [doc.lower().split() for doc in corpus]
term = "document"
for i, doc in enumerate(documents):
print(f"TF-IDF for term '{term}' in document {i+1}: {tfidf(term, doc, documents)}")
Ссылки для изучения
Рассказать про модификацию TF-IDF под названием BM25 как работает?
BM25 (Best Matching 25) - это улучшенная версия
TF-IDF, разработанная для оценки релевантности документов в
поисковых системах. Вот как это работает:
- Оценка частотности термина
(TF): В отличие от обычногоTF-IDF,BM25использует модель оценки частотности термина, которая более чувствительна к различиям в частоте терминов. Она определяется как:
где:
-
- частота термина в документе .
-
- длина документа .
-
- средняя длина документа в корпусе.
-
и - настраиваемые параметры.
-
Оценка обратной частотности документа
(IDF):IDFвBM25оценивает важность термина в контексте всего корпуса документов, как и в TF-IDF. -
Расчет релевантности: Релевантность документа для запроса вычисляется как сумма
IDF-взвешенных значенийTFдля всех терминов запроса:
BM25 позволяет лучше учитывать частоту терминов и длину документов
в оценке их релевантности, что делает его эффективным методом для поиска и
ранжирования документов.
Ссылки для изучения
Плюсы/минусы TF-IDF, Bag of words.
TF-IDF:
Плюсы:
-
Учитывает важность слова в контексте всей коллекции документов.
-
Позволяет выделить наиболее информативные слова, отфильтровывая часто встречающиеся общие слова.
-
Хорошо работает с длинными текстами и большими коллекциями документов.
Минусы:
-
Не учитывает порядок слов в тексте и их взаимосвязь.
-
Может иметь проблемы с редкими словами, которые могут получить завышенные веса из-за низкой обратной частоты встречаемости.
Bag of Words:
Плюсы:
-
Простота и понятность концепции.
-
Может быть эффективен для коротких текстов и простых задач.
-
Хорошо работает с часто встречающимися словами.
Минусы:
-
Не учитывает порядок слов и их семантическую структуру.
-
Может приводить к разреженным матрицам при большом словаре или коллекции документов.
-
Не учитывает важность слов в контексте всей коллекции.
Ссылки для изучения
Основные методы векторизации текстовых данных.
Основные методы векторизации текстовых данных:
-
Мешок слов
(Bag of Words): Представляет текст как набор изолированных слов без учета порядка или структуры предложения. Каждое уникальное слово в тексте становится признаком, а его частота встречаемости в документе — значением этого признака. -
TF-IDF
(Term Frequency-Inverse Document Frequency): Учитывает не только частоту встречаемости слова в документе (TF), но и обратную частоту его встречаемости во всех документах коллекции (IDF). Это позволяет выделить наиболее информативные слова, учитывая их важность в контексте всей коллекции документов. -
Word Embeddings: Представляют слова в виде векторов непрерывного пространства, где семантически близкие слова имеют близкие векторные представления. Примеры включают Word2Vec, GloVe и FastText. -
Doc2Vec: Расширение Word2Vec, которое представляет не только отдельные слова, но и целые документы в виде векторов, сохраняя их семантическое содержание. -
N-граммы: Включают в себя комбинации из нескольких последовательных слов или символов. Например, биграммы (2-граммы) содержат последовательности из двух слов, триграммы (3-граммы) — из трех и т.д.
Ссылки для изучения
Что такое Word2vec?
Word2Vec - это метод для создания векторных представлений слов на основе контекста, в котором они встречаются в тексте. Этот метод обычно используется в обработке естественного языка и машинном обучении. Он позволяет представить слова в виде векторов в многомерном пространстве таким образом, что близкие слова в этом пространстве имеют семантическую схожесть. Векторы слов можно использовать для различных задач, таких как поиск схожих слов, классификация текста и многие другие.
Ссылки для изучения
Чем модели эмбеддингов отличают от самих LLM?
Модели эмбеддингов, такие как Word2Vec или GloVe, создают векторы для слов, представляя их в непрерывном пространстве. LLM (Large Language Models), такие как BERT или GPT, используют эмбеддинги в качестве одного из слоёв, но дополнительно обучаются на больших корпусах текста для выполнения более сложных задач, таких как генерация текста или ответ на вопросы.
Ссылки для изучения
Нужны ли другие эмбеддинги кроме CLS токена для классификации?
CLS токен обычно используется в моделях вроде BERT для
получения финальной репрезентации текста для задач классификации. Однако для
некоторых задач могут использоваться другие эмбеддинги, например, агрегированные
или средние значения по всем токенам.
Ссылки для изучения
Как развивались методы представления текста: от Bag of Words и TF-IDF до контекстных эмбеддингов и трансформеров?
История предобработки текста в машинном обучении началась с классических методов, таких как мешок слов (bag of words), которые преобразовывали текст в векторы фиксированной длины, учитывая только частоту встречаемости слов. Затем стали использоваться методы стемминга и лемматизации для приведения слов к их основной форме и уменьшения размерности пространства признаков.
Далее были разработаны методы TF-IDF (term frequency - inverse document frequency), позволяющие оценить важность слова в документе относительно всего корпуса текстов. Этот подход помогает выделить ключевые слова и игнорировать часто встречающиеся общеупотребительные слова.
С развитием нейронных сетей появились эмбеддинги слов, такие как Word2Vec, GloVe и FastText, которые преобразуют слова в векторные представления, учитывая их семантический контекст.
Позднее были разработаны контекстуальные эмбеддинги, такие как ELMo и BERT, которые учитывают контекст предложения при генерации эмбеддингов. Эти модели обеспечивают более высокую точность в задачах обработки естественного языка за счет учета смысловой связи между словами в предложении.
Трансформеры лежат в основе многих моделей обработки и генерации текста, включая семейства GPT и T5. Их входом обычно служат токены, а представления обучаются вместе с моделью. Лучший метод зависит от задачи, данных и ограничений; статус SOTA нужно проверять на конкретном актуальном бенчмарке.
Ссылки для изучения







