You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python DataFrame子串提取:基于机器学习的文本领域分类任务

文本领域分类解决方案(基于Python DataFrame)

一、文本预处理

先对DataFrame中的文章文本做清洗,提升后续模型效果:

  • 移除特殊字符、数字与标点
  • 统一转换为小写
  • 过滤停用词(如英文的the/a,中文的的/了)
  • 词形还原/词干化(可选,进一步精简文本)

代码示例:

import pandas as pd
import re
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer

# 初始化NLTK工具(需提前下载:nltk.download('stopwords'), nltk.download('wordnet'))
stop_words = set(stopwords.words('english'))
lemmatizer = WordNetLemmatizer()

def clean_text(text):
    # 清理特殊字符
    text = re.sub(r'[^a-zA-Z\s]', '', str(text))
    # 转小写
    text = text.lower()
    # 分词+去停用词+词形还原
    tokens = [lemmatizer.lemmatize(token) for token in text.split() if token not in stop_words]
    return ' '.join(tokens)

# 处理DataFrame的文章列(假设列名为'article')
df['cleaned_article'] = df['article'].apply(clean_text)

二、文本特征提取

将清洗后的文本转换为模型可识别的数值特征,推荐用TF-IDF:

from sklearn.feature_extraction.text import TfidfVectorizer

# 初始化TF-IDF转换器,保留前5000个高频特征
tfidf_vectorizer = TfidfVectorizer(max_features=5000)
# 生成特征矩阵
text_features = tfidf_vectorizer.fit_transform(df['cleaned_article'])

三、领域分类(分有监督/无监督两种场景)

场景1:有监督分类(已有领域标注)

如果数据集中存在标注好的领域标签(如列名为actual_domain),直接训练分类模型:

from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report

# 划分训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(
    text_features, df['actual_domain'], test_size=0.2, random_state=42
)

# 训练朴素贝叶斯模型(适合文本分类)
classifier = MultinomialNB()
classifier.fit(X_train, y_train)

# 评估模型性能
y_pred = classifier.predict(X_test)
print(classification_report(y_test, y_pred))

# 对全量数据生成预测结果
df['predicted_domain'] = classifier.predict(text_features)

场景2:无监督分类(无标注标签)

若没有领域标注,用聚类算法自动划分潜在领域:

from sklearn.cluster import KMeans

# 假设要划分成5个潜在领域
kmeans = KMeans(n_clusters=5, random_state=42)
df['cluster_domain'] = kmeans.fit_predict(text_features)

四、输出结果

处理完成后,可将结果保存为CSV或其他格式:

# 保存带分类结果的DataFrame
df.to_csv('classified_articles.csv', index=False)

内容的提问来源于stack exchange,提问作者Moshood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:20:40