趋近智
原始文本数据,如客户评论、文章或社交媒体帖子,包含大量信息。然而,机器学习算法主要处理数值数据。将原始文本字符串直接输入大多数标准模型将不起作用。本节的任务是将非结构化文本转换为算法能够理解和学习的结构化数值格式。这个过程是一种特定类型的特征工程,通常称为文本向量化。
根据文本所含词语表示文本有两种主要方法:词袋模型(Bag-of-Words)和TF-IDF。
词袋模型是一种简单而有效地以数值形式表示文本的方法。想象一下,将您的整个文档集合(语料库)中所有唯一的词放入一个“袋子”中。要表示特定文档,您只需计算袋子中每个词在该文档中出现的次数。词语的顺序和语法都被忽略了,因此有了“袋子”的比喻。
工作原理:
示例:
考虑以下两个简短文档:
['the', 'cat', 'sat', 'on', 'the', 'mat']['the', 'dog', 'chased', 'the', 'cat']['the', 'cat', 'sat', 'on', 'mat', 'dog', 'chased'] (注意:“the”出现多次,但在词汇表中只列出一次)。[2, 1, 1, 1, 1, 0, 0] (“the”、“cat”、“sat”、“on”、“mat”、“dog”、“chased”的计数)[2, 1, 0, 0, 0, 1, 1]实现: 在Python中,scikit-learn库中的CountVectorizer类通常用于实现词袋模型方法。
局限性:
TF-IDF建立在词袋模型的思想之上,但增加了一种加权方案,以突出显示对特定文档在更大语料库中更重要或更有信息的词语。它会降低在许多文档中频繁出现的词语(如常用停用词)的权重,并增加在特定文档中频繁出现但整体上稀有的词语的权重。
TF-IDF是两个组成部分的乘积:
词频(TF): 衡量一个词在特定文档中出现的频率。它通常计算为该词在文档中的原始计数或标准化(例如,词计数除以文档中的总词数)。
逆文档频率(IDF): 衡量一个词在整个语料库中的重要性。它是根据文档总数除以包含该词的文档数的对数计算的。
IDF(t)=log(包含词语 t 的文档数文档总数)(注意:存在变体,通常在分母或分子上加1以防止除以零并平滑值)。
词语 t 在文档 d 中的TF-IDF分数是:
TF-IDF(t,d)=TF(t,d)×IDF(t)实现: scikit-learn中的TfidfVectorizer类直接从原始文本数据计算TF-IDF分数。它结合了分词、计数(TF)和IDF计算。
相对于词袋模型的优势:
局限性:
在应用词袋模型或TF-IDF之前,文本数据通常需要预处理步骤来提高生成特征的质量:
这些预处理步骤对于从文本创建有意义且高效的数值表示非常重要。
CountVectorizer或TfidfVectorizer生成的向量(通常以稀疏矩阵表示以提高效率)成为机器学习模型的输入特征。每列代表词汇表中的一个唯一词,每行代表一个文档。然后,这些特征可以与您可能已为情感分析、主题分类或垃圾邮件检测等任务构建的其他数值或分类特征一起使用。
虽然词袋模型和TF-IDF是强大的基本方法,但请记住,Word2Vec、GloVe等更先进的词嵌入方法可以捕获词语之间的语义关系。这些方法通常在专门的自然语言处理(NLP)背景下进行研究,但理解词袋模型和TF-IDF为在许多数据科学应用中处理文本数据提供了一个坚实的根基。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造