Implementierung von TF-IDF
Standardimplementierung
Die Implementierung des TF-IDF-Modells in sklearn ähnelt der des Bag-of-Words-Modells. Um dieses Modell auf einem Korpus zu trainieren, wird die Klasse TfidfVectorizer verwendet, wobei die bekannte Methode .fit_transform() zum Einsatz kommt.
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)
Abgesehen von der Verwendung einer anderen Klasse ist die restliche Implementierung identisch mit der des Bag-of-Words-Modells. Standardmäßig wird die TF-IDF-Matrix mit L2-Normalisierung berechnet.
Anpassung von TF-IDF
Wie bereits bei CountVectorizer können wir auch hier die Parameter min_df und max_df angeben, um nur Begriffe einzuschließen, die in mindestens min_df und höchstens max_df Dokumenten vorkommen. Diese Werte können entweder als absolute Anzahl von Dokumenten oder als Anteil an der Gesamtzahl der Dokumente angegeben werden.
Im folgenden Beispiel werden nur die Begriffe berücksichtigt, die in genau 2 Dokumenten vorkommen, indem sowohl min_df als auch max_df auf 2 gesetzt werden:
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)
Um die N-Gramme festzulegen, die in unsere Matrix aufgenommen werden sollen, kann der Parameter ngram_range verwendet werden. Im folgenden Beispiel werden nur Bigrams in die resultierende Matrix aufgenommen:
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)
Dies sind die am häufigsten verwendeten Parameter. Falls Sie jedoch weitere Optionen erkunden möchten, finden Sie diese in der Dokumentation.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.45
Implementierung von TF-IDF
Swipe um das Menü anzuzeigen
Standardimplementierung
Die Implementierung des TF-IDF-Modells in sklearn ähnelt der des Bag-of-Words-Modells. Um dieses Modell auf einem Korpus zu trainieren, wird die Klasse TfidfVectorizer verwendet, wobei die bekannte Methode .fit_transform() zum Einsatz kommt.
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)
Abgesehen von der Verwendung einer anderen Klasse ist die restliche Implementierung identisch mit der des Bag-of-Words-Modells. Standardmäßig wird die TF-IDF-Matrix mit L2-Normalisierung berechnet.
Anpassung von TF-IDF
Wie bereits bei CountVectorizer können wir auch hier die Parameter min_df und max_df angeben, um nur Begriffe einzuschließen, die in mindestens min_df und höchstens max_df Dokumenten vorkommen. Diese Werte können entweder als absolute Anzahl von Dokumenten oder als Anteil an der Gesamtzahl der Dokumente angegeben werden.
Im folgenden Beispiel werden nur die Begriffe berücksichtigt, die in genau 2 Dokumenten vorkommen, indem sowohl min_df als auch max_df auf 2 gesetzt werden:
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)
Um die N-Gramme festzulegen, die in unsere Matrix aufgenommen werden sollen, kann der Parameter ngram_range verwendet werden. Im folgenden Beispiel werden nur Bigrams in die resultierende Matrix aufgenommen:
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)
Dies sind die am häufigsten verwendeten Parameter. Falls Sie jedoch weitere Optionen erkunden möchten, finden Sie diese in der Dokumentation.
Danke für Ihr Feedback!