Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Реалізація TF-IDF | Базові Текстові Моделі
Вступ до NLP

bookРеалізація TF-IDF

Стандартна реалізація

Реалізація моделі TF-IDF у sklearn подібна до моделі мішок слів. Для навчання цієї моделі на корпусі використовується клас TfidfVectorizer із знайомим методом .fit_transform().

123456789101112131415
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Create a default TF-IDF model vectorizer = TfidfVectorizer() # Generate a TF-IDF matrix tfidf_matrix = vectorizer.fit_transform(corpus) # Convert a sparse matrix into a DataFrame tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

Окрім використання іншого класу, решта реалізації є ідентичною моделі мішка слів. За замовчуванням матриця TF-IDF обчислюється з L2-нормалізацією.

Налаштування TF-IDF

Аналогічно до CountVectorizer, можна вказати параметри min_df та max_df, щоб включати лише ті терміни, які зустрічаються щонайменше у min_df документах і щонайбільше у max_df документах. Ці параметри можна задавати як абсолютними числами документів, так і часткою від загальної кількості документів.

Ось приклад, де включаються лише ті терміни, які зустрічаються рівно у 2 документах, встановивши і min_df, і max_df рівними 2:

12345678910111213
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Include terms which appear in exactly 2 documents vectorizer = TfidfVectorizer(min_df=2, max_df=2) tfidf_matrix = vectorizer.fit_transform(corpus) tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

Щоб вказати, які n-грамми включати у матрицю, можна використати параметр ngram_range. Далі буде включено лише біграми у результуючу матрицю:

12345678910111213
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Include only bigrams vectorizer = TfidfVectorizer(ngram_range=(2, 2)) tfidf_matrix = vectorizer.fit_transform(corpus) tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

Це найбільш часто використовувані параметри, однак, якщо ви бажаєте ознайомитися з іншими, зверніться до документації.

question mark

Який клас scikit-learn можна використати для отримання TF-IDF векторів з текстового корпусу?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 3.45

bookРеалізація TF-IDF

Свайпніть щоб показати меню

Стандартна реалізація

Реалізація моделі TF-IDF у sklearn подібна до моделі мішок слів. Для навчання цієї моделі на корпусі використовується клас TfidfVectorizer із знайомим методом .fit_transform().

123456789101112131415
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Create a default TF-IDF model vectorizer = TfidfVectorizer() # Generate a TF-IDF matrix tfidf_matrix = vectorizer.fit_transform(corpus) # Convert a sparse matrix into a DataFrame tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

Окрім використання іншого класу, решта реалізації є ідентичною моделі мішка слів. За замовчуванням матриця TF-IDF обчислюється з L2-нормалізацією.

Налаштування TF-IDF

Аналогічно до CountVectorizer, можна вказати параметри min_df та max_df, щоб включати лише ті терміни, які зустрічаються щонайменше у min_df документах і щонайбільше у max_df документах. Ці параметри можна задавати як абсолютними числами документів, так і часткою від загальної кількості документів.

Ось приклад, де включаються лише ті терміни, які зустрічаються рівно у 2 документах, встановивши і min_df, і max_df рівними 2:

12345678910111213
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Include terms which appear in exactly 2 documents vectorizer = TfidfVectorizer(min_df=2, max_df=2) tfidf_matrix = vectorizer.fit_transform(corpus) tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

Щоб вказати, які n-грамми включати у матрицю, можна використати параметр ngram_range. Далі буде включено лише біграми у результуючу матрицю:

12345678910111213
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Include only bigrams vectorizer = TfidfVectorizer(ngram_range=(2, 2)) tfidf_matrix = vectorizer.fit_transform(corpus) tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

Це найбільш часто використовувані параметри, однак, якщо ви бажаєте ознайомитися з іншими, зверніться до документації.

question mark

Який клас scikit-learn можна використати для отримання TF-IDF векторів з текстового корпусу?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 7
some-alt