SoFunction
Updated on 2025-03-02

Combined with Python tools, use TfidfVectorizer for text feature extraction method

How to use Python's TfidfVectorizer for text feature extraction

In natural language processing (NLP), feature extraction is the process of converting raw text data into numerical features that can be processed by machine learning algorithms.

TF-IDF (Term Frequency-Inverse Document Frequency) is a widely used feature extraction method that can reflect the importance of words in document collections.

In Python, we can usesklearnIn the libraryTfidfVectorizerTo realize TF-IDF feature extraction.

This article will describe how to use itTfidfVectorizerPerform text feature extraction.

Installsklearn

If you haven't installed itsklearnThe library can be installed through the following command:

pip install scikit-learn

Basic use

TfidfVectorizeryessklearn.feature_extraction.textA class in the module that converts a collection of text documents into a TF-IDF feature matrix.

Sample code

from sklearn.feature_extraction.text import TfidfVectorizer

# Define a set of documentsdocuments = [
    "I have a pen",
    "I have an apple",
    "Apple pen, Apple pen",
    "Pen Pineapple, Apple Pen"
]

# Create a TfidfVectorizer objecttfidf_vectorizer = TfidfVectorizer()

# Train the TfidfVectorizer object and convert the document to the TF-IDF feature matrixtfidf_matrix = tfidf_vectorizer.fit_transform(documents)

# View feature vocabularyprint(tfidf_vectorizer.get_feature_names_out())

# View TF-IDF matrixprint(tfidf_matrix.toarray())

Detailed explanation of parameters

TfidfVectorizerThere are many parameters that can be customized, and the following are some commonly used parameters:

  • stop_words: A collection of stop words used to filter out meaningless common words.
  • max_df: Filter out vocabulary that appears in documents that exceed the specified ratio.
  • min_df: Filter out vocabulary that appears in documents with less than the specified ratio.
  • ngram_range: Set the n-gram range of vocabulary, e.g.(1, 2)Indicates the extraction of single and double word phrases.
  • token_pattern: Regular expression used for word participle.

Example: Use parameters

# Define a set of documentsdocuments = [
    "I have a pen",
    "I have an apple",
    "Apple pen, Apple pen",
    "Pen Pineapple, Apple Pen"
]

# Create a TfidfVectorizer object and set parameterstfidf_vectorizer = TfidfVectorizer(stop_words='english', max_df=0.5, min_df=2, ngram_range=(1, 2))

# Train the TfidfVectorizer object and convert the document to the TF-IDF feature matrixtfidf_matrix = tfidf_vectorizer.fit_transform(documents)

# View feature vocabularyprint(tfidf_vectorizer.get_feature_names_out())

# View TF-IDF matrixprint(tfidf_matrix.toarray())

Practical application

TF-IDF feature extraction is widely used in tasks such as text classification, clustering and similarity calculation.

For example, you can use TF-IDF features to cluster documents to find similar documents; or in a recommendation system, recommend content by calculating the TF-IDF similarity between documents.

Summarize

TfidfVectorizerIt is a powerful tool that can help you perform effective text feature extraction in NLP projects.

By adjusting different parameters, you can customize the feature extraction process to meet specific needs.

Whether you are conducting academic research or industrial applications, TF-IDF is a worthwhile approach.

Hope this article helps you understand how to use itTfidfVectorizerPerform text feature extraction!

The above is personal experience. I hope you can give you a reference and I hope you can support me more.