机器学习文本分类算法代码

以下是一个综合示例,展示如何使用词袋模型和TF-IDF进行文本分类。

from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score

# 示例文本和标签
texts = [
    "The quick brown fox jumps over the lazy dog",
    "I love watching the quick brown fox",
    "The dog was lazy and the fox was quick",
    "This is a test document about machine learning",
    "Another document about deep learning"
]
labels = [0, 0, 0, 1, 1]  # 0: Fox, 1: Machine Learning

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(texts, labels, test_size=0.2, random_state=42)

# 使用词袋模型
vectorizer = CountVectorizer()
X_train_bow = vectorizer.fit_transform(X_train)
X_test_bow = vectorizer.transform(X_test)

# 使用TF-IDF
vectorizer_tfidf = TfidfVectorizer()
X_train_tfidf = vectorizer_tfidf.fit_transform(X_train)
X_test_tfidf = vectorizer_tfidf.transform(X_test)

# 训练模型
model_bow = MultinomialNB()
model_bow.fit(X_train_bow, y_train)

model_tfidf = MultinomialNB()
model_tfidf.fit(X_train_tfidf, y_train)

# 预测
y_pred_bow = model_bow.predict(X_test_bow)
y_pred_tfidf = model_tfidf.predict(X_test_tfidf)

# 评估模型
accuracy_bow = accuracy_score(y_test, y_pred_bow)
accuracy_tfidf = accuracy_score(y_test, y_pred_tfidf)

print(f"词袋模型准确率: {accuracy_bow:.2f}")
print(f"TF-IDF模型准确率: {accuracy_tfidf:.2f}")

注意事项

  1. 参数调整CountVectorizerTfidfVectorizer 有许多参数可以调整,如 max_dfmin_dfstop_words 等,以优化模型性能。
  2. 特征选择:在高维特征空间中,可以使用特征选择方法(如递归特征消除)来减少特征数量,提高模型性能。
  3. 模型选择:根据具体任务选择合适的模型,如朴素贝叶斯、支持向量机、随机森林等。

通过以上示例,你可以了解词袋模型和TF-IDF的基本用法,并将其应用于文本分类任务。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • """1.个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello ...
    她即我命阅读 3,278评论 0 5
  • 为了让我有一个更快速、更精彩、更辉煌的成长,我将开始这段刻骨铭心的自我蜕变之旅!从今天开始,我将每天坚持阅...
    李薇帆阅读 1,896评论 0 3
  • 似乎最近一直都在路上,每次出来走的时候感受都会很不一样。 1、感恩一直遇到好心人,很幸运。在路上总是...
    时间里的花Lily阅读 1,341评论 0 1
  • 1、expected an indented block 冒号后面是要写上一定的内容的(新手容易遗忘这一点); 缩...
    庵下桃花仙阅读 508评论 0 1
  • 一、工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取)矩形、椭圆选框工具 【M】移动工具 【V...
    墨雅丫阅读 524评论 0 0