如何将文本文档表示为特征向量进行文本分类?
Posted
技术标签:
【中文标题】如何将文本文档表示为特征向量进行文本分类?【英文标题】:How to represent text documents as feature vectors for text classification? 【发布时间】:2012-03-05 14:57:21 【问题描述】:我有大约 10,000 个文本文档。
如何将它们表示为特征向量,以便我可以将它们用于文本分类?
有没有工具可以自动进行特征向量表示?
【问题讨论】:
【参考方案1】:最简单的方法是使用bag of words 模型。您将每个文档表示为一个无序的单词集合。
您可能想要去掉标点符号并且您可能想要忽略大小写。您可能还想删除常用词,例如“and”、“or”和“the”。
要将其调整为特征向量,您可以从样本中选择(比方说)10,000 个具有代表性的词,如果文档 i
包含词 j
和 v[i,j] = 0
,则使用二进制向量 v[i,j] = 1
。否则。
【讨论】:
【参考方案2】:要对问题给出一个非常好的答案,了解您对哪种分类感兴趣会很有帮助:基于流派、作者、情感等。例如,对于文体分类,功能词很重要,对于基于内容的分类,它们只是噪音,通常使用停用词列表过滤掉。 如果您对基于内容的分类感兴趣,您可能希望使用诸如词频/逆文档频率之类的加权方案,(1) 以便给出文档中典型且在整个文本集中比较少见的词重量。这假设您的文本有一个向量空间模型,它是文本的一袋单词表示。 (参见 Wikipedia on Vector Space Modell 和 tf/idf)通常 tf/idf 会比仅包含文档中是否存在术语的信息的二进制分类模式产生更好的结果。
这种方法非常成熟和普遍,以至于 Python 的 scikit-learn 等机器学习库提供了方便的方法,可以使用 tf/idf 作为加权方案将文本集合转换为矩阵。
【讨论】:
以上是关于如何将文本文档表示为特征向量进行文本分类?的主要内容,如果未能解决你的问题,请参考以下文章