python正则表达式判断数字_Python机器学习之手写数字辨识及正则表达式

学习与预测

在前面,我们已经将digits数据集中的图像读取出来,并且使用matplotlib库绘制出了一张数据图片。并且我们已经定义好了一个SVC估计器,估计器的学习步骤可以就此开始啦。我们有说过,在定义好预测模型之后,必须用已知的各条数据类别的训练集调教它。换句话说,也就是让机器去学习我们想让它知道的信息。

考虑到Digits数据集的数据量很大,用它进行训练得到的模型效果肯定好。也就是说,模型识别手写体数字准确率高。Digits数据集由1797个元素组成,可以考虑用前1791个作为训练集,剩余6个作为验证集。我们可以再次使用matplotlib生成这6个手写体数字的图像,以便查看其细节。

我们可以看到,我们生成了6个数字的图像。现在我们可以让先前定义的svc估计器进行学习。

我们可以看到我们6个数字的预测结果完全正确,svc估计器能够正确地学习,识别手写体数字。

正则表达式

正则表达式为高级的文本模式匹配、抽取、与/或文本形式的搜索和替换功能提供了基础,简单地说,正则表达式(简称为regex)有一些由字符和特殊符号组成的字符串,它们描述了模式的重复或者表述多个字符,于是正则表达式能按照某种模式匹配一系列有相似特征的字符串。换句话说,它们能够匹配多个字符串……一种只能匹配一个字符串的正则表达式的模式很乏味并且毫无用处。

Python通过标准库中的re模块来支持正则表达式。本节我们将会对其做一些简单的介绍,方便我们后续在使用爬虫时能够更方便。在python中,主要有两种方法完成模式匹配:“搜索”(searching),即在字符串任意部分中搜索匹配的模式;而匹配是指判断一个字符串能否从起始处全部或者部分地匹配某个模式。搜索通过search( )函数或方法来实现,而匹配通过调用match( )函数或方法来实现。总之,当涉及模式时,全部使用术语匹配;我们按照Python如何完成模式匹配的方式来区分“搜索”和“匹配”。

写出第一个正则表达式

前面讲到,正则表达式是包含文本和特殊字符的字符串,该字符串描述一个可以识别各种字符串的模式。我们还简单阐述了正则表达式的字母表。对于通用文本,用于正则表达 his的字母表是所有大小写字母及数字的集合。可能也存在一些特殊的字母,例如,仅包含字符“0”和“1”的字母表。该字母表可以表示所有二进制字符串的集合。

现在,让我们看看正则表达式的大部分基本内容,虽然正则表达式通常被视为“高级主题”,但是它们其实也非常简单。把标准字母表用于通用文本,我们展示了一些简单的正则表达式以及这些模式所表述的字符串。下面所介绍的正则表达式都是最基本的、最普通的。它们仅仅用一个简单的字符串构造成一个匹配字符串的模式:该字符串由正则表达式定义。下面我们展示几个正则表达式和它们匹配的字符串:

上面的第一个正则表达式模式是“foo”。该模式没有使用任何特殊符号去匹配其他符号,而之匹配所描述的内容,所以,能够匹配这个模式的只有包含“foo”的字符串。同理,对于字符串“Python”和“abc123”也是一样的。正则表达式的强大之处在于引入特殊字符来定义字符集、匹配子组和重复模式。正是由于这些特殊符号,使得正则表达式可以匹配字符串集合,而不仅仅只是某个字符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值