鍍金池/ 教程/ Python/ 文本處理狀態(tài)機(jī)
文本翻譯
提取URL地址
處理PDF
塊分類
搜索和匹配
大寫轉(zhuǎn)換
提取電子郵件地址
字符串的不變性
文本處理狀態(tài)機(jī)
雙字母組
閱讀RSS提要
單詞替換
WordNet接口
重新格式化段落
標(biāo)記單詞
向后讀取文件
塊和裂口
美化打印數(shù)字
拼寫檢查
將二進(jìn)制轉(zhuǎn)換為ASCII
文本分類
文字換行
頻率分布
字符串作為文件
約束搜索
詞干算法
符號(hào)化
同義詞和反義詞
過濾重復(fù)的字詞
刪除停用詞
Python文本處理教程
文字摘要
段落計(jì)數(shù)令牌
語料訪問
文字改寫
文本處理簡介
處理Word文檔
Python文本處理開發(fā)環(huán)境
排序行

文本處理狀態(tài)機(jī)

狀態(tài)機(jī)是關(guān)于設(shè)計(jì)程序來控制應(yīng)用程序中的流程。 它是一個(gè)有向圖,由一組節(jié)點(diǎn)和一組過渡函數(shù)組成。 處理文本文件通常包括順序讀取文本文件的每個(gè)塊并執(zhí)行某些操作以響應(yīng)每個(gè)塊讀取。 塊的含義取決于它之前存在的塊的類型以及它之后的塊。 該機(jī)器是關(guān)于設(shè)計(jì)程序來控制應(yīng)用程序中的流程。 它是一個(gè)有向圖,由一組節(jié)點(diǎn)和一組過渡函數(shù)組成。 處理文本文件通常包括順序讀取文本文件的每個(gè)塊并執(zhí)行某些操作以響應(yīng)每個(gè)塊讀取。 塊的含義取決于它之前存在的塊的類型以及它之后的塊。

考慮有一種情況,其中文本放置必須是AGC序列的重復(fù)連續(xù)串(用于蛋白質(zhì)分析)。 如果在輸入字符串中保持此特定序列,則機(jī)器的狀態(tài)保持為TRUE,但是一旦序列偏離,機(jī)器的狀態(tài)將變?yōu)?code>FALSE并且在之后保持為FALSE。 這確保了即使稍后可能存在更多正確序列的塊,也停止進(jìn)一步處理。

下面的程序定義了一個(gè)狀態(tài)機(jī),它具有啟動(dòng)機(jī)器的功能,獲取處理文本的輸入并逐步完成處理。

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

當(dāng)運(yùn)行上面的程序時(shí),得到以下輸出 -

[True, False, False]
[True, True, True, True, False, False, False]

在x的結(jié)果中,AGC的模式在第一個(gè)’A’之后的第二個(gè)輸入失敗。 在此之后,結(jié)果的狀態(tài)將永遠(yuǎn)保持為False。 在Y的結(jié)果中,AGC的模式持續(xù)到第4個(gè)輸入。 因此,結(jié)果的狀態(tài)在此之前保持為真。 但是從第5個(gè)輸入開始,結(jié)果變?yōu)?code>False,因?yàn)?code>G是預(yù)期的結(jié)果,但是查找結(jié)為C


上一篇:文本分類下一篇:符號(hào)化