機器學習文本分類算法代碼

以下是一個綜合示例,展示如何使用詞袋模型和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. 參數(shù)調(diào)整CountVectorizerTfidfVectorizer 有許多參數(shù)可以調(diào)整,如 max_df、min_df、stop_words 等,以優(yōu)化模型性能。
  2. 特征選擇:在高維特征空間中,可以使用特征選擇方法(如遞歸特征消除)來減少特征數(shù)量,提高模型性能。
  3. 模型選擇:根據(jù)具體任務(wù)選擇合適的模型,如樸素貝葉斯、支持向量機、隨機森林等。

通過以上示例,你可以了解詞袋模型和TF-IDF的基本用法,并將其應用于文本分類任務(wù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • """1.個性化消息: 將用戶的姓名存到一個變量中,并向該用戶顯示一條消息。顯示的消息應非常簡單,如“Hello ...
    她即我命閱讀 5,339評論 0 6
  • 為了讓我有一個更快速、更精彩、更輝煌的成長,我將開始這段刻骨銘心的自我蛻變之旅!從今天開始,我將每天堅持閱...
    李薇帆閱讀 2,248評論 1 4
  • 似乎最近一直都在路上,每次出來走的時候感受都會很不一樣。 1、感恩一直遇到好心人,很幸運。在路上總是...
    時間里的花Lily閱讀 1,753評論 1 3
  • 1、expected an indented block 冒號后面是要寫上一定的內(nèi)容的(新手容易遺忘這一點); 縮...
    庵下桃花仙閱讀 1,103評論 1 2
  • 一、工具箱(多種工具共用一個快捷鍵的可同時按【Shift】加此快捷鍵選取)矩形、橢圓選框工具 【M】移動工具 【V...
    墨雅丫閱讀 1,615評論 0 0

友情鏈接更多精彩內(nèi)容