數學之美 系列十 有限狀態機和位址識別

2021-04-12 14:35:51 字數 1299 閱讀 7958

7/05/2006 09:09:00 上午

發表者:吳軍,google研究員

位址的識別和分析是本地搜尋必不可少的技術,儘管有許多識別和分析位址的方法,最有效的是有限狀態機。

乙個有限狀態機是乙個特殊的有向圖(參見有關

圖論的系列),它包括一些狀態(節點)和連線這些狀態的有向弧。下圖是乙個識別中國位址的有限狀態機的簡單的例子。

每乙個有限狀態機都有乙個啟始狀態和乙個終止狀態和若干中間狀態。每一條弧上帶有從乙個狀態進入下乙個狀態的條件。比如,在上圖中,當前的狀態是「省」,如果遇到乙個片語和(區)縣名有關,我們就進入狀態「區縣」;如果遇到的下乙個片語和城市有關,那麼我們就進入「市」的狀態,如此等等。如果一條位址能從狀態機的起始狀態經過狀態機的若干中間狀態,走到終止狀態,那麼這條位址則有效,否則無效。比如說,「北京市雙清路83號」對於上面的有限狀態來講有效,而「上海市遼寧省馬家庄」則無效(因為無法從市走回到省)。google本地會自動識別出位址「北京市雙清路」和要找的物件「酒家」。

上述基於有限狀態機的位址識別方法在實用中會有一些問題:當使用者輸入的位址不太標準或者有錯別字時,有限狀態機會束手無策,因為它只能進行嚴格匹配。(其實,有限狀態機在電腦科學中早期的成功應用是在程式語言編譯器的設計中。乙個能執行的程式在語法上必須是沒有錯的,所以不需要模糊匹配。而自然語言則很隨意,無法用簡單的語法描述。)

為了解決這個問題,我們希望有乙個能進行模糊匹配、並給出乙個字串為正確位址的可能性。為了實現這一目的,科學家們提出了基於概率的有限狀態機。這種基於概率的有限狀態機和離散的馬爾可夫鏈(詳見前面關於

馬爾可夫模型的系列)基本上等效。

在八十年代以前,儘管有不少人使用基於概率的有限狀態機,但都是為自己的應用設計專用的有限狀態機的程式。九十年代以後,隨著有限狀態機在自然語言處理的廣泛應用,不少科學家致力於編寫通用的有限狀態機程式庫。其中,最成功的是前 at&t 實驗室的三位科學家,莫瑞(mohri), 皮瑞爾(pereira) 和瑞利(riley)。他們三人花了很多年時間,編寫成乙個通用的基於概率的有限狀態機 c 語言工具庫。由於 at&t 有對學術界免費提供各種程式設計工具的好傳統,他們三人也把自己多年的心血拿出來和同行們共享。可惜好景不長,at&t 實驗室風光不再,這三個人都離開了 at&t,莫瑞成了紐約大學的教授,皮瑞爾當了賓夕法尼亞大學計算機系系主任,而瑞利成了google的研究員,at&t 實驗室的新東家不再免費提供有限狀態機 c 語言工具庫。雖然此前莫瑞等人公布了他們的詳細演算法,但是省略了實現的細節。因此在學術界,不少科學家能夠重寫同樣功能的工具庫,但是很難達到 at&t 工具庫的效率(即運算速度),這的確是一件令人遺憾的事。 

數學之美 系列十 有限狀態機和位址識別

發表者 吳軍,google 研究員 位址的識別和分析是本地搜尋必不可少的技術,儘管有許多識別和分析位址的方法,最有效的是有限狀態機。乙個有限狀態機是乙個特殊的有向圖 參見有關 圖論的系列 它包括一些狀態 節點 和連線這些狀態的有向弧。下圖是乙個識別中國位址的有限狀態機的簡單的例子。馬爾可夫模型 的系...

數學之美 系列十 有限狀態機和位址識別

數學之美 系列十 有限狀態機和位址識別 位址的識別和分析是本地搜尋必不可少的技術,儘管有許多識別和分析位址的方法,最有效的是有限狀態機。乙個有限狀態機是乙個特殊的有向圖 參見有關圖論的系列 它包括一些狀態 節點 和連線這些狀態的有向弧。下圖是乙個識別中國位址的有限狀態機的簡單的例子。每乙個有限狀態機...

00XX系列 搞搞有限狀態機

需要修改遊戲中的一些ai,自己做了個小模型。一些頭 原始檔隨便塞了。嚴格來說fsm不算是乙個ai的思路。對於乙個fsm,基本的要有如下的東西 一些若干的狀態指示變數 一張狀態轉換表 乙個根據狀態轉換表進行描述行為的函式。如果還有其他需求也是根據以上進行增加額外的資料。比如遊戲的一些npc通常有不同的...