星期五, 元月 25, 2008
PHP: 英文單字正規化, 把 進行式, 過去式. 等 轉換回 原型
要把英文的變化型的字, 轉回原型, 找了一些資料, 發現大家都是用一樣的演算法, 會發生的錯誤都一樣... XD
ex: ate => at, play => plai .... 不知為何這個問題一直無解~
需求: 將英文單字的各種型態, 全部做正規化, 全部轉回原型的型態. 因為有技術上的困難, 先只做 動詞類 轉 原型動詞
實作:
找到這個站: The Porter Stemming Algorithm, 裡面有各種程式語言的版本(for 此正規化), 我需要的是 PHP 版, 原始碼如下:
使用方法很簡單:
<?php
require('porter_stemmer.php');
$word = 'talking';
$stem = PorterStemmer::Stem($word);
echo $stem; // talk
?>所以最後的解法是, 如下步驟:
- 先用這個 英語不規則動詞表 做一次轉換(讓 ate => eat)
- 用 Porter Stemmer 跑一次
- 再對其它有問題的字, 單獨另外處理.
實作完成的可於此處玩玩: 動詞原型轉換, 因為目前沒有特別好的解法, 如果有玩出某個字有問題, 還麻煩請告訴我一下, 讓我再做第 3 點的補強.. Orz..
相關網頁
發表迴響
PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.)
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~





