Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele TF-IDF:n Toteuttaminen | Perustekstin Mallit
Johdatus NLP:hen

bookTF-IDF:n Toteuttaminen

Oletustoteutus

TF-IDF-mallin toteutus sklearn-kirjastossa on samanlainen kuin bag of words -mallin. 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 käyttäen L2-normalisointia.

TF-IDF:n mukauttaminen

Samoin kuin CountVectorizer-menetelmässä, voimme määrittää min_df- ja max_df-parametrit sisällyttääksemme 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 koko dokumenttimäärästä.

Tässä esimerkissä sisällytetään 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

Voimme määrittää matriisiin sisällytettävät n-grammit käyttämällä ngram_range-parametria. 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äytetyt parametrit, mutta jos haluat tutustua niihin tarkemmin, voit katsoa dokumentaatiosta.

question mark

Mitä scikit-learn-luokkaa voidaan käyttää TF-IDF-vektorien muodostamiseen tekstikorpuksesta?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 7

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Awesome!

Completion rate improved to 3.45

bookTF-IDF:n Toteuttaminen

Pyyhkäise näyttääksesi valikon

Oletustoteutus

TF-IDF-mallin toteutus sklearn-kirjastossa on samanlainen kuin bag of words -mallin. 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 käyttäen L2-normalisointia.

TF-IDF:n mukauttaminen

Samoin kuin CountVectorizer-menetelmässä, voimme määrittää min_df- ja max_df-parametrit sisällyttääksemme 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 koko dokumenttimäärästä.

Tässä esimerkissä sisällytetään 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

Voimme määrittää matriisiin sisällytettävät n-grammit käyttämällä ngram_range-parametria. 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äytetyt parametrit, mutta jos haluat tutustua niihin tarkemmin, voit katsoa dokumentaatiosta.

question mark

Mitä scikit-learn-luokkaa voidaan käyttää TF-IDF-vektorien muodostamiseen tekstikorpuksesta?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 7
some-alt