要把英文的變化型的字, 轉回原型, 找了一些資料, 發現大家都是用一樣的演算法, 會發生的錯誤都一樣... 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..