Implementierung von TF-IDF
Standardimplementierung
Die Implementierung des TF-IDF-Modells in sklearn ähnelt der des Bag-of-Words-Modells. Zum Trainieren dieses Modells auf einem Korpus 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 auch beim CountVectorizer können die Parameter min_df und max_df angegeben werden, um nur Begriffe einzubeziehen, 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 in der Matrix enthaltenen N-Gramme festzulegen, 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. Wenn Sie jedoch weitere erkunden möchten, können Sie die Dokumentation konsultieren.
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. Zum Trainieren dieses Modells auf einem Korpus 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 auch beim CountVectorizer können die Parameter min_df und max_df angegeben werden, um nur Begriffe einzubeziehen, 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 in der Matrix enthaltenen N-Gramme festzulegen, 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. Wenn Sie jedoch weitere erkunden möchten, können Sie die Dokumentation konsultieren.
Danke für Ihr Feedback!