美文网首页
1.1.03_文档和单词

1.1.03_文档和单词

作者: 资深小夏 | 来源:发表于2017-07-02 00:17 被阅读4次

文档和单词 Documents and Words

即将构造的分类器须要利用某些特征来对不同的内容项进行分类。

所谓特征,是指任何可以用来判断内容中具备或缺失的东西

当考虑对文档进行分类时,所谓的内容即是文档,而特征则是文档中的单词。当将单词作为特征时,其假设是:某些单词相对而言更有可能会出现于垃圾信息中。这一假设是大多数垃圾信息过滤器背后所依赖的基本前提。不过,特征未必一定是一个个单词;它们也可以是词组或短语,或者任何可以归为文档中缺失或存在的其他东西。

请新建一个文件,取名docclass.py,并在其中加入一个名为getwords的函数,以从文本中提取特征:

import re
import math

def getwords(doc):
  splitter=re.compile('\\W*')
  # 根据非字母字符进行单词拆分
  words=[s.lower() for s in splitter.split(doc)
         if len(s)>2 and len(s)<20]

  # 只返回一组不重复的单词
  return dict([(w,1) for w in words])

该函数以任何非字母类字符为分隔符对文本进行划分,将文本拆分成了一个个单词。这一过程只留下了真正的单词,并将这些单词全都转换成了小写形式。

决定采用哪些特征颇具技巧性,也十分重要。特征必须具备足够的普遍性,即时常出现,但又不能普遍到每一篇文档里都能找到。

理论上,整篇文档的文本都可以作为特征,但是除非我们一再收到内容完全相同的邮件,否则这样的特征几乎肯定是毫无价值的。在另一种极端情况下,特征也可以是单个字符。但是由于每一封电子邮件中都有可能会出现所有这些字符,因此要想利用这样的特征将希望看到和不希望看到的文档区分开来是很困难的。即便选择使用单词作为特征,也依然还是会带来一些问题,包括如何正确划分单词,哪些标点符号应该被纳入单词,以及是否应该包含头信息(header information)等。

在根据特征进行判断时还有一点须要考虑,那就是如何才能更好地利用特征将一组文档划归到目标分类中去。例如,前述getwords函数的代码通过将单词转换为小写形式,从而减少了特征的总数。这意味着,程序会将位于句首以大写字母开头的单词与位于句中全小写形式的单词视为相同--这样做非常好,因为具有不同大小写形式的同一单词往往代表的含义是相同的。

然而,上述函数完全没有考虑到被用于许多垃圾信息中的"SHOUTING风格"(译注1),而这一点可能对区分垃圾邮件和非垃圾邮件是至关重要的。除此以外,如果超过半数以上的单词都是大写时,那就说明必定会有其他的特征存在。

正如你所看到的,在选择特征集时须要做大量的权衡,而且还要不断地进行调整。不过眼下,可以暂且使用这个简单的getwords函数;在本章的后续部分,我们还将了解到有关特征提取的一些改进方法。

相关文章

  • 1.1.03_文档和单词

    文档和单词 Documents and Words 即将构造的分类器须要利用某些特征来对不同的内容项进行分类。 所...

  • 正排索引与倒排索引

    正排 -- 目录 文档id 到 文档内容 和 单词 的一个关联 倒排 -- (关键词)索引页 count : 单词...

  • 每日计划与总结——2019-02-19

    昨日回顾 昨天的计划是看完vue文档,背一组单词和看书。目前目标完成情况:vue文档没有看完,背了两组单词,泡...

  • 搜索:搜索引擎索引

    索引基础 单词—文档矩阵单词文档矩阵是表达两者之间包含关系的概念模型;搜索引擎的索引其实就是实现单词-文档矩阵的具...

  • ElasticSearch 重点梳理

    倒排索引 单词词典文档所有单词B+? 倒排列表文档ID词频TF位置 - 语句搜索偏移 - 高亮 Analyzer ...

  • iOS-NSLineBreakMode-lineBreakMo

    apple文档: 解释: 以单词为单位换行,以单词为单位截断。

  • Elasticsearch 6.x 倒排索引与分词

    倒排索引 正排索引:文档id到单词的关联关系 倒排索引:单词到文档id的关联关系 示例:对以下三个文档去除停用词后...

  • Pearls15

    [TOC] 15.1为文档中包含的单词生成一个列表 对文档中每个单词出现的次数做统计 使用自定义的散列表,对文档中...

  • Nullable.GetUnderlyingType(t);

    看不懂单词名又看不懂文档的方法。 文档中文版文档a closed generic nullable type这个翻...

  • 程序员:技术文档和单词记忆

    本文阅读大约需要5分钟主要讲述一些推荐的习惯和学习方法 一.阅读官网 学习一门编程语言,绝大多数框架或者语言本身就...

网友评论

      本文标题:1.1.03_文档和单词

      本文链接:https://www.haomeiwen.com/subject/ritncxtx.html