- 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 feed
- 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。
廣告