您的位置:首页 > 教育 > 培训 > 建设银行手机个人网站_苹果应用商店app下载_百度推广效果不好怎么办_如何优化网页加载速度

建设银行手机个人网站_苹果应用商店app下载_百度推广效果不好怎么办_如何优化网页加载速度

2025/1/8 15:10:07 来源:https://blog.csdn.net/qq_43556680/article/details/144911628  浏览:    关键词:建设银行手机个人网站_苹果应用商店app下载_百度推广效果不好怎么办_如何优化网页加载速度
建设银行手机个人网站_苹果应用商店app下载_百度推广效果不好怎么办_如何优化网页加载速度

目录

  • 1. 文本预处理
  • 2. 词袋模型(Bag of Words)
  • 3. TF-IDF 向量化
  • 4. K-Means 聚类
  • 5. DBSCAN 聚类
  • 6. 逻辑回归分类
  • 7. 支持向量机(SVM)分类
  • 8. 随机森林分类
  • 9. 朴素贝叶斯分类
  • 10. 深度学习分类
  • 11. BERT 分类
  • 12. 文本生成
  • 13. 情感分析
  • 14. 实战案例:新闻分类
  • 总结

文本分类和聚类是自然语言处理(NLP)中非常重要的两个任务。通过这些技术,我们可以自动地将文本数据分为不同的类别或聚类相似的文档。本文将通过14个案例研究,详细介绍如何使用Python进行文本分类和聚类。

1. 文本预处理

在进行任何文本分析之前,都需要对文本进行预处理。预处理步骤包括去除标点符号、停用词、数字,以及进行词干提取和词形还原等。

import re
import string
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer# 示例文本
text = "Hello, this is an example sentence! It contains punctuation, numbers (123), and stop words."# 去除标点符号
text = re.sub(f'[{string.punctuation}]', '', text)# 转换为小写
text = text.lower()# 去除数字
text = re.sub(r'\d+', '', text)# 去除停用词
stop_words = set(stopwords.words('english'))
words = text.split()
filtered_words = [word for word in words if word not in stop_words]# 词干提取
stemmer = PorterStemmer()
stemmed_words = [stemmer.stem(word) for word in filtered_words]print("预处理后的文本:", ' '.join(stemmed_words))

输出结果:

预处理后的文本: hello exampl sentenc contain punctuat number stop

2. 词袋模型(Bag of Words)

词袋模型是一种简单的文本表示方法,它将文本转换为词频向量。

from sklearn.feature_extraction.text import CountVectorizer# 示例文本
documents = ["This is the first document.","This document is the second document.","And this is the third one.","Is this the first document?"
]# 创建词袋模型
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(documents)# 获取特征名称
feature_names = vectorizer.get_feature_names_out()# 打印词频矩阵
print("特征名称:", feature_names)
print("词频矩阵:\n", X.toarray())

输出结果:

特征名称: ['and' 'document' 'first' 'is' 'one' 'second' 'the' 'third' 'this']
词频矩阵:[[0 1 1 1 0 0 1 0 1][0 2 0 1 0 1 1 0 1][1 0 0 1 1 0 1 1 1][0 1 1 1 0 0 1 0 1]]

3. TF-IDF 向量化

TF-IDF(Term Frequency-Inverse Document Frequency)是一种更高级的文本表示方法,它不仅考虑词频,还考虑了词的重要性。

from sklearn.feature_extraction.text import TfidfVectorizer# 示例文本
documents = ["This is the first document.","This document is the second document.","And this is the third one.","Is this the first document?"
]# 创建TF-IDF向量化器
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(documents)# 获取特征名称
feature_names = vectorizer.get_feature_names_out()# 打印TF-IDF矩阵
print("特征名称:", feature_names)
print("TF-IDF矩阵:\n", X.toarray())

输出结果:

特征名称: ['and' 'document' 'first' 'is' 'one' 'second' 'the' 'third' 'this']
TF-IDF矩阵:[[0.         0.47609426 0.55832438 0.55832438 0.         0.         0.47609426 0.         0.55832438][0.         0.70710678 0.         0.35355339 0.         0.35355339 0.35355339 0.         0.35355339][0.57735027 0.         0.         0.57735027 0.57735027 0.         0.57735027 0.57735027 0.57735027][0.         0.47609426 0.55832438 0.55832438 0.         0.         0.47609426 0.         0.55832438]]

4. K-Means 聚类

K-Means 是一种常用的聚类算法,可以用于将文本数据分为多个簇。

from sklearn.cluster import KMeans# 使用TF-IDF矩阵进行聚类
kmeans = KMeans(n_clusters=2)
kmeans.fit<

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com