Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele TF-IDF:n Toteuttaminen | Osio
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Luonnollisen Kielen Käsittely

bookTF-IDF:n Toteuttaminen

Pyyhkäise näyttääksesi valikon

Oletustoteutus

TF-IDF-mallin toteutus sklearn-kirjastossa on samanlainen kuin bag of words -mallissa. Mallin kouluttamiseen korpuksella käytetään TfidfVectorizer-luokkaa ja tuttua .fit_transform()-metodia.

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

Luokan vaihtamisen lisäksi toteutus on identtinen bag of words -mallin kanssa. Oletuksena TF-IDF-matriisi lasketaan L2-normalisoinnilla.

TF-IDF:n mukauttaminen

Samoin kuin CountVectorizer-menetelmässä, voidaan määrittää min_df- ja max_df-parametrit, jotta mukaan otetaan vain ne termit, jotka esiintyvät vähintään min_df ja enintään max_df dokumentissa. Nämä voidaan määrittää joko absoluuttisina dokumenttimäärinä tai osuuksina kokonaisdokumenttien määrästä.

Alla on esimerkki, jossa mukaan otetaan vain ne termit, jotka esiintyvät tarkalleen kahdessa dokumentissa asettamalla sekä min_df että max_df arvoon 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

Matriisiin sisällytettävät n-grammit voidaan määrittää ngram_range-parametrilla. Sisällytetään vain bigrammit tulosmatriisiin:

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

Nämä ovat yleisimmin käytettyjä parametreja, mutta jos haluat tutustua niihin tarkemmin, voit katsoa dokumentaatiota.

question mark

Mikä scikit-learn-luokka voidaan käyttää TF-IDF-vektorien muodostamiseen tekstikorpuksesta?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 24

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 24
some-alt