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

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

在〈PHP: 英文單字正規化, 把 進行式, 過去式. 等 轉換回 原型〉中有 8 則留言

  1. 抱歉ㄋㄟ 無意間 搜尋到這篇文章
    而我對於英文單字 的名詞動詞 型態還原 有需求
    不知道 有沒有程式碼 是可以將已標明好詞性的文章
    整篇或是整個資料夾文章讀取 然後幫忙將其中的 名詞 動詞 還原型態
    再重新變成新的檔案 而儲存呢
    真的很抱歉 我非常急 所以無論您只能做到哪個階段
    或是不懂我說的 都可以再問我 麻煩您了

  2. Mmm... 這得要另外作些研究才可以, 您的文章篇數有多少, 然後這種英文轉換會有誤判率, 得要花多少人工掃描等等.
    要看看您預算大概有多少囉. 🙂

  3. 冒昧問一下 所以若是請您告知相關的程式碼
    是需要付費的是嗎??
    因為我以為是您單純自己對這些有興趣而已
    所以看到您的部落格時 才會發問
    而我是學生 單純是學術上需求 所以沒有想到預算這個層面
    甚至您說的 掃描等 都是我自己得完成的
    因此 若是需要付費 也請您告知一下 相關費用
    我再評估一下 ~"~

  4. 我知道的 和 寫的程式都在上面囉, 剩下的東西都是需要另外研究的.
    只要有興趣, 是可以一起研究, 但是, 我認為若是作業要找人幫忙寫, 我就會考慮要收費. (而且有標明這是急件).

  5. 你好 我有參考你的建議實作出正規化還原的動作

    比較想請教一個問題是 如何讓程式判斷名詞

    我遭遇到的問題是 輸入body時 Porter Stemmer演算法會輸出bodi

    我有去你的網站嘗試過發現可以將body還原成body

    所以想詢問一下你的方式

  6. 先用这个英语不规则动词表做一次转换(让ate => eat)
    用Porter Stemmer 跑一次

    这两步详细要怎么做呢?

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料