新闻组文本数据的特征提取、预处理与可视化
1. 文本数据特征思考
在分析文档是否来自 rec.autos 新闻组时,像 “car”、“doors” 和 “bumper” 等单词的出现与否是非常有用的特征。单词的出现与否是一个布尔变量,我们还可以考虑某些单词的出现次数。例如,“car” 在文档中多次出现,可能文档中这类单词出现次数越多,就越有可能与汽车相关。
2. 词元计数
我们似乎只对某些单词的出现、计数或相关度量感兴趣,而不关心单词的顺序。因此,可以将文本视为单词的集合,这就是词袋(Bag of Words,BoW)模型。这是一个非常基础的模型,但在实践中效果不错。当然,我们也可以定义一个更复杂的模型,考虑单词顺序和词性标签,但这样的模型计算成本更高,编程也更困难。实际上,基本的 BoW 模型在大多数情况下就足够了。
我们使用 scikit-learn 中的 CountVectorizer 类将文档转换为矩阵,其中每行代表一个新闻组文档,每列代表一个词元(这里先从一元词开始),矩阵中每个元素的值是该词(列)在文档(行)中出现的次数。具体代码如下:
from sklearn.feature_extraction.text import CountVectorizer
# 初始化计数向量器,设置 500 个顶级特征(500 个最频繁的词元)
count_vector = CountVectorizer(max_features=500)
# 对原始文本数据进行拟合
data_count =
超级会员免费看
订阅专栏 解锁全文
1088

被折叠的 条评论
为什么被折叠?



