- Python-文本处理
- Python-文本处理简介
- Python - 文本处理环境
- Python - 字符串不变性
- Python - 排序行
- Python - 重新格式化段落
- Python - 计算段落中的标记
- Python - 二进制 ASCII 转换
- Python - 字符串作为文件
- Python-向后读取文件
- Python - 过滤重复单词
- Python - 从文本中提取电子邮件
- Python - 从文本中提取 URL
- Python - 漂亮的打印
- Python - 文本处理状态机
- Python - 大写和翻译
- Python - 标记化
- Python - 删除停用词
- Python - 同义词和反义词
- Python - 文本翻译
- Python-单词替换
- Python-拼写检查
- Python - WordNet 接口
- Python - 语料库访问
- Python - 标记单词
- Python - 块和缝隙
- Python - 块分类
- Python-文本分类
- Python-二元组
- Python - 处理 PDF
- Python-处理Word文档
- Python - 读取 RSS 提要
- Python-情感分析
- Python - 搜索和匹配
- Python - 文本修改
- Python-文本换行
- Python-频率分布
- Python-文本摘要
- Python - 词干算法
- Python - 约束搜索
Python - 文本处理状态机
状态机是设计一个程序来控制应用程序中的流程。它是一个有向图,由一组节点和一组转换函数组成。处理文本文件通常包括顺序读取文本文件的每个块并响应每个块读取执行某些操作。块的含义取决于它之前存在什么类型的块以及它之后存在什么类型的块。该机器旨在设计一个程序来控制应用程序中的流程。它是一个有向图,由一组节点和一组转换函数组成。处理文本文件通常包括顺序读取文本文件的每个块并响应每个块读取执行某些操作。块的含义取决于它之前存在什么类型的块以及它之后存在什么类型的块。
考虑这样一个场景,其中输入的文本必须是 AGC 序列的连续重复字符串(用于蛋白质分析)。如果在输入字符串中保留此特定序列,则机器的状态将保持为 TRUE,但一旦序列发生偏差,机器的状态就会变为 FALSE,并在之后保持为 FALSE。这确保了进一步的处理停止,即使稍后可能有更多的正确序列块可用。
下面的程序定义了一个状态机,它具有启动机器、获取输入以处理文本并逐步完成处理的功能。
class StateMachine: # Initialize def start(self): self.state = self.startState # Step through the input def step(self, inp): (s, o) = self.getNextValues(self.state, inp) self.state = s return o # Loop through the input def feeder(self, inputs): self.start() return [self.step(inp) for inp in inputs] # Determine the TRUE or FALSE state class TextSeq(StateMachine): startState = 0 def getNextValues(self, state, inp): if state == 0 and inp == 'A': return (1, True) elif state == 1 and inp == 'G': return (2, True) elif state == 2 and inp == 'C': return (0, True) else: return (3, False) InSeq = TextSeq() x = InSeq.feeder(['A','A','A']) print x y = InSeq.feeder(['A', 'G', 'C', 'A', 'C', 'A', 'G']) print y
当我们运行上面的程序时,我们得到以下输出 -
[True, False, False] [True, True, True, True, False, False, False]
在 x 的结果中,AGC 模式对于第一个“A”之后的第二个输入失败。此后结果的状态永远保持为 False。在 Y 的结果中,AGC 的模式持续到第 4 个输入。因此,直到此时结果的状态仍保持 True。但从第 5 个输入开始,结果变为 False,因为 G 是预期的,但找到了 C。