X

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
?>

所以最後的解法是, 如下步驟:

  1. 先用這個 英語不規則動詞表 做一次轉換(讓 ate => eat)
  2. 用 Porter  Stemmer 跑一次
  3. 再對其它有問題的字, 單獨另外處理.

實作完成的可於此處玩玩: 動詞原型轉換, 因為目前沒有特別好的解法, 如果有玩出某個字有問題, 還麻煩請告訴我一下, 讓我再做第 3 點的補強.. Orz..

相關網頁

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post