00 需求描述我们想要从一篇文章/一个段落中,找到包含指定关键词的一个句子,这个句子以逗号或者句号开头,以逗号或者句号结尾。我们来看一个例子:解放军第四五七医院(原空军汉口医院),创建于1950年12月。位于武汉市江岸区工农兵路15号,占地15万平方米。是一所集医疗、预防、保健、康复、急救为一体的绿化园林式的综合性军队医院。我们想要找出这个医院占地面积的数据,因此需要找出包含有关键词占地...
下面我们先来介绍本次需要完成的任务:
对于给定的一句英文,我们通过遗传算法让计算机自己还原出这句话。流程与之前相同,通过编码得到染色体,根据个体的适应度分别进行选择、交叉、变异,经过多次迭代之后得到最终结果。
重点关注的问题:
∙\bullet∙ 如何编码:由于给出的是英文字符,所以我们无法像之前一样通过0、1来编码。(事实上当对应的是数字
正则
的语法:使用元字符进行排列组合用来
匹配
字符串,在线测试表达式可直接点击下面的链接在线
正则
表达式测试OSCHINA.NET在线工具,ostools为开发设计人员提供在线工具,提供jsbin在线 CSS、JS 调试,在线 Java API文档,在线 PHP API文档,在线 Node.js API文档,Less CSS编译器,MarkDown编译器等其他在线工具https://tool.oschina.net/regex
1.
正则
表达式的安装
打开本地终端,导入下面的代码
pip install r
这个文本处理需要一个算法, 普通的文本处理直接去遍历所有的关键字,但是这种算法太复杂,时间复杂度太高。
之前的文章
中
有说过,实际用到的算法,为了加快执行速度,都是在时间和空间上做的兑换。这里同样可以,通过增加存储空间来减少程序执行时间。
可以选择开一个数组,数组的长度是char类型的最大长度加一。
单词模式
匹配
首先给定两个字符串,一个是单词模式字符串,以恶是目标字符串。之后检查目标字符串是否为给定的单词模式,即求目标字符串
中
单词出现的规律是否符合单词模式字符串
中
的规律。
例如:单词模式字符串为“一二二一”,目标字符串为“苹果 香蕉 香蕉 苹果”,二者的规律一样,
匹配
成功。
首先建立哈希表来存储数据,由于不仅需要排除一个模式对应多个字符串的情况,还需要排除多个模式对应一个字符的情况,我们需要建立两个哈希表:hash和used。
hash用来存储模式字符串和目标字符串的对应关系,used记录目前已经使用
你可以使用
Python
的
正则
表达式来实现这个功能。首先,你需要导入
Python
的 re 模块,然后使用 re.findall 函数来查找所有
包含
多个
关键词
的
句子
。
例如,如果你想在文档
中
查找所有
包含
"keyword1" 和 "keyword2" 的
句子
,你可以使用以下代码:
import re
# 读取文档内容
with open('document.txt', 'r') as f: