Implementering av TF-IDF
Standardimplementasjon
Implementeringen av TF-IDF-modellen i sklearn ligner på den for bag of words-modellen. For å trene denne modellen på et korpus, benyttes klassen TfidfVectorizer, hvor den velkjente metoden .fit_transform() brukes.
123456789101112131415from 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)
Bortsett fra bruk av en annen klasse, er resten av implementeringen identisk med bag of words-modellen. Som standard beregnes TF-IDF-matrisen med L2-normalisering.
Tilpasning av TF-IDF
På samme måte som med CountVectorizer, kan vi angi parameterne min_df og max_df for å inkludere kun de termene som forekommer i minst min_df dokumenter og maksimalt max_df dokumenter. Disse kan angis enten som absolutte tall for antall dokumenter eller som en andel av det totale antallet dokumenter.
Her er et eksempel der vi kun inkluderer de termene som forekommer i nøyaktig 2 dokumenter ved å sette både min_df og max_df til 2:
12345678910111213from 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)
For å angi hvilke n-grammer som skal inkluderes i matrisen, kan vi bruke parameteren ngram_range. La oss kun inkludere bigrammer i den resulterende matrisen:
12345678910111213from 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)
Dette er de mest brukte parameterne, men dersom du ønsker å utforske flere, kan du se i dokumentasjonen.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.45
Implementering av TF-IDF
Sveip for å vise menyen
Standardimplementasjon
Implementeringen av TF-IDF-modellen i sklearn ligner på den for bag of words-modellen. For å trene denne modellen på et korpus, benyttes klassen TfidfVectorizer, hvor den velkjente metoden .fit_transform() brukes.
123456789101112131415from 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)
Bortsett fra bruk av en annen klasse, er resten av implementeringen identisk med bag of words-modellen. Som standard beregnes TF-IDF-matrisen med L2-normalisering.
Tilpasning av TF-IDF
På samme måte som med CountVectorizer, kan vi angi parameterne min_df og max_df for å inkludere kun de termene som forekommer i minst min_df dokumenter og maksimalt max_df dokumenter. Disse kan angis enten som absolutte tall for antall dokumenter eller som en andel av det totale antallet dokumenter.
Her er et eksempel der vi kun inkluderer de termene som forekommer i nøyaktig 2 dokumenter ved å sette både min_df og max_df til 2:
12345678910111213from 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)
For å angi hvilke n-grammer som skal inkluderes i matrisen, kan vi bruke parameteren ngram_range. La oss kun inkludere bigrammer i den resulterende matrisen:
12345678910111213from 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)
Dette er de mest brukte parameterne, men dersom du ønsker å utforske flere, kan du se i dokumentasjonen.
Takk for tilbakemeldingene dine!