顯示具有 Projects 標籤的文章。 顯示所有文章
顯示具有 Projects 標籤的文章。 顯示所有文章

2011年3月16日 星期三

SVN Server

使用的是COLLABNET: http://www.open.collab.net/

安裝完成後,加入一些細部的修改:

  1. 首先,COLLABNET 的管理介面是利用 Jetty 架設,所有的 request 都會被 redirect rule 修改,故,先修改 csvn\appserver\contexts 裡的 redirect.xml,將 csvn 的 contextPath 修改成需要的值,如 <Set name="contextPath">/</Set> => <Set name="contextPath">/test</Set> newContextURL 也可以視需求修改,如 <Set name="newContextURL">/new_csvn</Set>
    • 若是修改了 newContextURL,則還需另外修改 csvn\appserver\contexts 裡的 csvn.xml 檔,以對應修改完的 URL,假設 URL 修改成 test,則必須將 csvn.xml 內的 contextPath 作如下修改:
    • <Set name="contextPath">/csvn</Set> => <Set name="contextPath">/new_csvn/csvn</Set>
  2. 若是需要修改管理介面的服務埠號(預設是 3343),請開啟 csvn\svcwrapper\conf 裡的 wrapper.conf,然後將 wrapper.java.additional.3=-Djetty.port=3343 的值修改成需要的埠號
  3. 修改完畢後,須利用系統工具內的「服務」,將 CollabNet Subversion Edge 服務重新啟動

再來是跟 PHP 整合的部分,使用的是 Quercus,一個可以讓 PHP 和 JAVA 緊密整合的 PHP Java 實作。

  1. 將 Quercus 是一個 WAR 檔,直接下載完成後,將該檔解壓到 csvn\appserver\webapps 目錄裡。並將解開的所有 lib 檔複製到 Jetty 本身的 lib 資料夾中: copy quercus\WEB-INF\lib\*.jar csvn\appserver\lib
  2. 下載 MySQL JDBC Connector,並將解開的 mysql-connector-java-x-bin.jar 檔放到 csvn\appserver\lib 目錄內。
  3. 重新啟動 CollabNet Subversion Edge 服務後,開啟 quercus 的服務網址,若是出現 Congratulations 字樣即設定成功。若是要再進一步測試,可以在 csvn\appserver\webapps\quercus 目錄內 test.php 然後在內容填上:<?php phpinfo(); ?> 來檢視 PHP 的各項參數。

安裝 phpMyAdmin

  1. 複製 Quercus 的 WEB-INF 目錄,並且修改 web.xml,將 <init-param> <param-name>ini-file</param-name> <param-value>WEB-INF/php.ini</param-value> </init-param> 的註解取消。
  2. 複製 PHP 安裝目錄內的 php.ini 檔到 phpMyAdmin/WEB-INF 中。
  3. 目前 Quercus 跟 phpMyAdmin 整合上還有 bug,還待處理。我修改過的這個版本可以順利地出現登入畫面,不過還未完整。

java.security.InvalidKeyException: Illegal key size

  1. 將 local_policy.jar 和 US_export_policy.jar 檔複製到 JAVA_HOME/jre/lib/security (系統應該會提示你是否要覆蓋原本的檔案,選"是")
  2. 重新啟動 CollabNet Subversion Edge。

參考

2008年8月26日 星期二

db4o 簡介與初探

db4o object database 引擎主要由一單獨的 DLL 組成。目前版本支援了 Microsoft .NET. framework 1.0/1.1 以及 2.0。

一般 .NET framework 的 DLL 檔位於安裝目錄內的 bin/net/ 目錄底下;.NET Compact Framework 則位於 bin/compact/ 下(我使用的 6.4 版本檔名為 Db4objects.Db4o.dll)。在開發時,必須將這個 DLL 加入到參考中。

Db4objects.Db4o namespace

包含了大部分開發所需要用到的功能。其中最重要的兩個類別是 Db4objects.Db4o.Db4oFactory 和 Db4objects.Db4o.IObjectContainer。

  • Db4oFactory:提供的靜態方法讓我們可以開啟資料庫檔案、啟動伺服器或是連線到既存的伺服器。另外,它也允許我們再開啟資料庫前先設定好 db4o 的環境變數。
  • IObjectContainer:則是我們最常會使用到,也是最重要的資料庫程式介面。它代表的就是我們的 db4o 資料庫。
    • IObjectContainer 可能是處於單一使用者模式的某個資料庫,或是一個連線到某個 db4o 伺服器的客戶端連線。
    • 每一個 IObjectContainer 都擁有一個 transaction。每個執行的動作都是處於 transaction 狀態;當我們開啟一個 IObjectContainer,我們就處於一個 transaction 之中;當我們下達 Commit() 或是 Rollback(),將會馬上切換到另一個 transaction。
    • 只要我們有在操作 IObjectContainers,它將會持續保持開啟連接的狀態。當我們關閉一個 IObjectContainer,所有存在記憶體中的資料庫參考將會被丟棄。

第一個 db4o 程式

我們首先常是如何儲存、擷取、更新和刪除某個只包含 primitive 以及字串成員的類別 。

public class Sentence
{
 private string rawText;

 /// raw 參數代表原本的文字內容
 /// section 參數則為該文字所屬的 section
 public Sentence(string raw, string section)
 {
     rawText = raw;
     this.section = section;
 }
 public string RawText
 {
     get { return rawText; }
     set { rawText = value; length=value.Length}
 }
 private int length;
 public int Length
 {
     get { return length; }
     set { length = value; }
 }

 private string html;
 public string HTML
 {
     get { return html; }
     set { html = value; }
 }
 private string section;
 public string Section
 {
     get { return section; }
     set { section = value; }
 }
}

開啟資料庫

要存取一個 db4o database 資料檔或是建立一個新的資料庫,我們只要呼叫 Db4oFactory.OpenFile(),並提供我們想要存取的資料庫檔案路徑當作參數及可。該方法會回傳一個 IObjectContainer 實例。

如前述,IObjectContainer 代表的就是一個資料庫,並且扮演了我們跟 db4o 將的主要溝通橋梁。藉由呼叫 Close() 方法,將關閉該 IObjectContainer 資料庫檔,並且是放所有參考到的資訊。

// accessDb4o
IObjectContainer db = Db4oFactory.OpenFile(dbfilename);
try
{
// do something with db4o
}
finally
{
  db.Close();
}

儲存物件

要儲存某個物件,我們只要對我們的資料庫呼叫 Set() 方法,並且存給它某個物件當作參數及可!

// store First Sentence object
Sentence s = new Sentence("Pain management: evaluating the effectiveness of an educational programme for surgical nursing staff.", "Title");
db.Set(s);
Console.WriteLine("Stored {0}", s);

取回物件

db4o 提供三種不同的 query 系統:

  • Query by Example (QBE)
  • Native Queries (NQ)
  • SODA Query API (SODA)
這裡我們先嘗試利用 QBE。而 NQ 則是 db4o 主要的 query 介面,文件也建議開發者使用該介面為主。

當使用 QBE 時,我們會提供 db4o 一個原型物件(prototypical object)作為我們想要取得的物件的一個範例,並呼叫 Get() 方法。db4o 將會依據傳給 Get() 方法的物件的內容,從資料庫內取得包含跟我們提供的物件一樣資料值欄位的所有物件(非預設值;一般物件的預設值為 null,int 為 0),並以 ObjectSet 實例回傳(代表所有符合的物件)。

下面我們示範如何從資料庫中取得所有的 Sentence 實例。方法很簡單,我們只要提供一個空的 Sentence 原型即可(所有的資料欄位值都為預設值):

Sentence sents = new Sentence(null, null);
ObjectSet result = db.Get(sents);
ListResult(result);

// ...略

public static void ListResult(IObjectSet result)
{
    Console.WriteLine(result.Size());
    while (result.HasNext())
    {
        Console.WriteLine(result.Next());
    }
}

db4o 另外提供了一個簡便的方法讓我們可以取得某類別的所有實例:

ObjectSet result = db.Get(typeof(Sentence));
ListResult(result);
對於泛型物件,可以利用 query() 方法取得:
IList <Sentence> sents = db.query<Sentence>(typeof(Sentence));

下面示範如何依據 section 來查詢:

Sentence sent = new Sentence(null, "BACKGROUND");
ObjectSet result = db.Get(sent);
ListResult(sent);

更新物件

更新物件跟儲存物件的動作很類似;我們也是呼叫同樣的 Set() 方法:

ObjectSet result = db.Get(new Sentence(null, "TITLE"));
Sentence found = (Sentence)result.Next();
found.Section="BACKGROUND";
db.Set(found);
Console.WriteLine("Modified section for" + found);

注意很重要的一點是我們第一個步驟是先去 query 物件。假若,當我們呼叫 Set() 方法去修改一個未知的(但是實際上我們想要修改的是既存的物件)的物件;也就是說我們沒有先去 queyr 物件,那麼 db4o 將會在資料庫內插入一個新的物件。db4o 並不會自動的把我們產生的物件跟資料庫內的物件進行比對;它假設我們實際上要插入一個剛剛好有同樣值的物件到資料庫內。

刪除物件

在資料庫內的物件可經由 DELETE() 方法加以移除。
IObjectSet result = db.Get(new Sentence("Pain management: evaluating the effectiveness of an educational programme for surgical nursing staff.", null));
Sentence found = (Sentence)result.Next();
db.Delete(found);
Console.WriteLine("Deleted {0}", found);

2008年8月5日 星期二

由 Greasemonkey script 直接產生 Firefox extension

參考這個線上工具。將 script 檔

// ==UserScript==

之後的所有原始碼直接貼上,即可產生 xpi 檔。
注意事項

==UserScript== 區塊中請把空白欄位去除。比如

// @include http://www.example.idv/*
// @exclude
^^^^^^^^^^^^^
 移除此欄

2006年11月17日 星期五

Maximum Entropy Modeling Toolkit

bbME

我客製化過後的 ME。

  1. 啟用 LBFGS
  2. 預設 300 iteraction
  3. .NET CLR library 實做讀檔

注意事項

將 cutoff 設成 0 和設成 1 是一樣的,因為不會有 0 次的 event 啊!

另外,若是設的數值過大,比如 2000,但是在 train 資料中沒有出現超過 2000 的 event,那麼程式會出錯!如下的錯誤訊息:

 IFLAG= -3
IMPROPER INPUT PARAMETERS (N OR M ARE NOT POSITIVE)

使用方式

Train

依據 train.txt 建立一個名為 test.model 的 model 檔,並設定 iteraction 為 30(預設會啟用 L-BFGS):

MEMT.exe/maxent.exe train.txt -m model1 -i 30

假若指定 -b 參數,那麼 model 在儲存時會以 binary 的方式儲存,如此可以增進載入和儲存的速度(相較於 text mode)。在載入時,會自動判斷 model 的格式,因此不需要額外指定 -b 參數。

預設 MEMT 會使用 mmap() 系統呼叫來讀取檔案;若是無法順利的讀取,則請在參數中加上: --nommap。

若是指定 -v 則會印出 verbose 訊息。

Predict

進行 predict 並輸出 predict accuracy:

MEMT.exe/maxent -p  -m 

進行 predict 並輸出 label 到指定的檔案:

MEMT.exe/maxent -p -m  -o  

另外加上 --detail,會輸出完整的描述。

其它特殊使用

在 train.txt 上執行 10-fold cross-validation,並回報正確率:

MEMT.exe/maxent.exe -n 10 train.txt

編譯法

編譯 Maximum Entropy Modeling Toolkit for Python and C++。

在編譯前,必須先安裝好 Intel 的 Fortran Compiler(可在此下載)。安裝完後,在 Visual Studio 環境中會多出開發 Fortran 的功能。

利用整合好的環境,編譯 src/lbfgs.f 檔,產生 static library。或是直接使用安裝好的 Intel Fortran Compiler Environment,在命令列下達:

ifort  -c -O3 lbfgs.f

這樣會產生 lbfgs/obj 檔。將該檔直接加到專案的檔案列表中。(拉到 IDE 內即可)

接著把所有的 C++ source code 匯入 C++ 專案後,修改 hash_map 和 hash_set 的定義(在編譯時會出錯,將它們的 namespace 改為 stdext 即可)。接著加入額外的 Include 目錄:lib(裡面含有 boot 目錄和其它標頭檔),並在連結器選項中加入 Intel Fortran 的 lib 作為額外的程式庫目錄。若是在編譯時發生:Strings.h 找不到時,請定義 HAVE_STRING_H 的前置處理器定義。

接著進行編譯。若是遇到 LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit 已經在 MSVCRTD.lib(MSVCR71D.dll) 中定義,等類似錯誤時,請在專案選項中的:「C/C++→程式碼產生→執行階段程式庫」將之修改為:多執行緒偵錯(/MTd),並且在「連結器→輸入」 中,將 LIBCMT.lib 加到忽略的特定程式庫中。

這是最後產生的專案檔。參考壓縮檔內的 build 目錄。要啟用 LBFGS 支援,則多定義 HAVE_FORTRAN 標頭。

CreateFile 失敗?

在編譯時,我習慣把 .c 檔設定為編譯為 C 程式碼。這似乎會造成呼叫 CreateFile 失敗。若是遇到該問題時,請將該 source code 修改成「C/C++→進階→編譯成為 C++ 程式碼/TP」。

此外,若遇到無法將 const char* 轉換為 LPCWSTR 的問題時,請參考本文。下面是一個修改範例:

// add by hongjie for CA2W
#include 

// ...
// modify by hongjie
//fh = CreateFile(file, access_mode, FILE_SHARE_READ, NULL,
fh = CreateFile(CA2W(file), access_mode, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_RANDOM_ACCESS,NULL);

Link Error: unresolved external symbol iob ?

注意,用這種方式 compile 出來的為 dynamic link,因此目標電腦上必須安裝好 Intel Fortran!

參考本文

節錄如下:

Whatever your reason was for ignoring these libs, ignoring them is the reason you're getting linker errors. It looks like you're going to have to figure out why you are forced to ignore those libs, and correct it from there.

LNK2001s/LNK2019s are usually a result of mixing debug libs with release libs (or libs compiled with another version of Visual Studio). It can also be caused by static libraries not using the same runtime library (project properties -> c/c++ -> code generation -> runtime library -> should be /MDd for debug and /MD for release).

以這裡為例,在 compile LBFGS 時,應該再加上 -MD 參數;如下:

ifort  -c -O3 /Qvc8  -MD lbfgs.f
/MD
use dynamically-loaded, multithread runtime
/MDs
use dynamically-loaded, single thread runtime

convert System::String to std:string

參考原文

方法如下:

#include 
#include 
#include 
using namespace System;
bool To_CharStar( String^ source, char*& target )
{
pin_ptr wch = PtrToStringChars( source );
int len = (( source->Length+1) * 2);
target = new char[ len ];
return wcstombs( target, wch, len ) != -1;
}

bool To_string( String^ source, string &target )
{
pin_ptr wch = PtrToStringChars( source );
int len = (( source->Length+1) * 2);
char *ch = new char[ len ];
bool result = wcstombs( ch, wch, len ) != -1;
target = ch;
delete ch;
return result;
}

convert std:string to System::String

System::String* std2gc(const std::string& s)
{
return new System::String(s.c_str());
}

2006年3月14日 星期二

Word Calculator

更新紀錄

  • 2006/03/13:讀取檔名列表,並計算列在其中的檔案之間的 f-score 差異。
  • 2006/03/10:計算 GTB 和 PB 中的動詞個數。
  • 2005/11/15:加入不規則變化字典;結果
  • 2005/11/11:結果

檔名列表格式

#Base
代表下一行的檔名為 base line
#Lists
代表其後列出的每一行為要比較的檔名列表

預設,碰到的第一個 #Base 和 #Lists 代表的是 PB,其後的 #Base 和 #Lists 會被視為是 GTB。 下面是一個完整範例:

#Base
pb-pasbio_:0:1:_test.svm.Result.Eval
#Lists
pb-pasbio_:0:1:_test.svm.*1*9*.svm.Result.Eval
pb-pasbio_:0:1:_test.svm.13.svm.Result.Eval
pb-pasbio_:0:1:_test.svm.15.svm.Result.Eval
pb-pasbio_:0:1:_test.svm.16.svm.Result.Eval
pb-pasbio_:0:1:_test.svm.*20*24*.svm.Result.Eval
pb-pasbio_:0:1:_test.svm.*27*31*.svm.Result.Eval
pb-pasbio_:0:1:_test.svm.*35*37*.svm.Result.Eval
pb-pasbio_:0:1:_test.svm.41.svm.Result.Eval
pb-pasbio_:0:1:_test.svm.45.svm.Result.Eval
pb-pasbio_:0:1:_test.svm.51.svm.Result.Eval
#Base
gtb-supervised_:0:1:.svm.Result.Eval
#Lists
gtb-supervised_:0:1:.svm.*1*9*.svm.Result.Eval
gtb-supervised_:0:1:.svm.13.svm.Result.Eval
gtb-supervised_:0:1:.svm.15.svm.Result.Eval
gtb-supervised_:0:1:.svm.16.svm.Result.Eval
gtb-supervised_:0:1:.svm.*20*24*.svm.Result.Eval
gtb-supervised_:0:1:.svm.*27*31*.svm.Result.Eval
gtb-supervised_:0:1:.svm.*35*37*.svm.Result.Eval
gtb-supervised_:0:1:.svm.41.svm.Result.Eval
gtb-supervised_:0:1:.svm.45.svm.Result.Eval
gtb-supervised_:0:1:.svm.51.svm.Result.Eval

另外,列表檔中的特殊字元「:」和「*」,分別代表的是實驗取樣編號(上例是取樣 0 到 1)和 feature 編號(1~9、13、15、16、20~24、27~31、35~37、41、45 和 51)

feature 編號

##### Feature: Predicate
1
##### Feature: Path 
2
##### Feature: Phrase Type
3
##### Feature: Position (Left / Right / ContainJust / Contain)
4
##### Feature: Voice
5
##### Feature: Head Word
6
##### Feature: Sub-categorization
7
##### Feature: Head POS
8
##### Feature: First Word
9
##### Feature: First Word's POS
10
##### Feature: Last Word
11
##### Feature: Last Word's POS
12
##### Feature: Contain First Word
13
##### Feature: Contain Last Word
14
##### Feature: Combination: Distance(predicate and phrase) and Predicate
15
##### Feature: Syntactic Frame of predicate/NP
16 17 18 19
##### Feature: PP Parent's Headword
20
##### Feature: Combination: Voice and Position
21
##### Feature: Combination: Predicate and Phrase Type
22
##### Feature: Combination: Predicate and Headword
23
##### Feature: Named Entity

##### Feature: Headword suffixes of length 2, 3, 4
24 25 26
##### Feature: Number of words in the phrase
27
##### Feature: Chunk distance: All/VP

##### Feature: Predicate's Verb Class
28
##### Feature: Predicate POS tag
29
##### Feature: Predicate Frequency: (f > 3) ? frequent : rare
30
##### Feature: Predicate's Context: BP (Chunk)

##### Feature: Predicate's Context: POS
31 32 33 34
##### Feature: Number of predicates
35
##### Feature: Level 
36
##### Feature: Context: Words +-2
37 38 39 40
##### Feature: Context: Context POS +-2
41 42 43 44
##### Feature: Context: Chunk Type

##### Feature: Parent's Features 
45 46 47 48 49 50
##### Feature: Siblings' Features
L : 51 52 53 54 55 56
R : 57 58 59 60 61 62

需求

將命令列指定檔案內的各種動、名詞(各種型態)總數加起來。

本程式主要的目的是能夠自動辨識不同型態的英文單字,將相同意義但是型態不同的單字(比如 abolish、abolished、abolishes、abolishing)視為相同,在將它們的總數計算成列於後。

使用範例

加入 GTP 和 PB 支援後:

java -jar wordsummer.jar -h

上面的用法會顯示使用說明:

usage:
   java -jar tools.jar [option] [verb list filename] filename
available option:
   -Tfre:
           total frequence.
   -Vfre:
           verb frequence.
-Tfre
計算所有句子中,滿足是動詞的個數(frequency)
-Vfre
必須加上 verb list filename 參數(該參數是一個包含動詞(變化型、原形)的列表檔),其會依據提供的列表檔中的動詞列表,來計算動詞個數(frequency)

上面兩個參數都會產生原檔名.fre 的結果檔,其內容為每一個動詞的出現次數。

不加上任何參數時,會依據提供的動詞 fre 檔,產生結果。


Ant task

  • WordSummer
  • WordSummerTest
  • build
  • clean
  • help
  • init
java -jar wordsummer.jar [inputfile]

或是執行 JUnit 測試程式:

java -jar wordsummer.jar WordSummerTest

輸入檔案的內容格式(以 tab 分隔字元和其出現數目:字元^t數目):

-competed 1
-expressing 1
-phosphorylated 1
-ribosylates 1
/activating 1
a 1
abbreviated 1
ablating 2
abolish 10
abolished 54
abolishes 16
abolishing 1

輸出的結果為:

-competed,1,-competed,1

-expressing,1,-expressing,1

-phosphorylated,1,-phosphorylated,1

-ribosylates,1,-ribosylates,1

/activating,1,/activating,1

a,1,a,1

abbreviated,1,abbreviated,1

ablating,2,ablating,2

abolish,81,abolish,10
abolish,81,abolished,54
abolish,81,abolishes,16
abolish,81,abolishing,1

即經過 WordSummer 處理後的結果格式為:

單字,總出現數目,原始單字,原始單字出現的數目

輸入的資料可以不用排序過如下:

activated 620
induced 589
expressed 503
has 492
been 478
found 422
suggest 391
increased 372
show 367
required 348
involved 330
inhibited 329
demonstrate 309
identified 308
shown 295
showed 290
binding 290
using 289
observed 276
associated 270
demonstrated 270
did 264
mediated 255
induce 233
including 228
containing 227

程式說明

因為趕著要交給 Jacky 作文檔的分析,因此整個程式架構有點凌而且有許多重複,或為完整實做的部分。不過執行出來的結果已經可以讓人接受,省去不少時間!

基本上程式的實做是依循著英文的文法規則來加以撰寫,大致上,被讀進來的每一個單字,會被 model 成一個個 idv.hjd.util.Vocabulary 物件,而若是經由文法規則判斷某幾個單字為變化形時,則會把它們全部填入 idv.hjd.util.VocabularyList 物件中。

程式主要是以 eclipse 開發,另外提供了 ant 的建構檔。

不規則變化字典

下面列出是套用的字典檔:

abide,abides,abiding,abided,abided
aby,abyes,abys,abying,abought,abought
aerify,aerifies,aerifying,aerified,aerified
air-dry,air-dries,air-drying,air-dried,air-dried
anglicise,anglicises,anglicising,anglicised,anglicised
anglicize,anglicizes,anglicizing,anglicized,anglicized
anglify,anglifies,anglifying,anglified,anglified
ante,antes,anteing,anted,anteed,anted,anteed
arc,arcs,arcing,arcking,arced,arcked,arced,arcked
argufy,argufies,argufying,argufied,argufied
arise,arises,arising,arisen,arose
awake,awakes,awaking,awoken,awaked
baa,baas,baaing,baaed,baaed
baby-sit,baby-sits,baby-sitting,baby-sat,baby-sat
backbite,backbites,backbiting,backbitten,backbit
back-pedal,back-pedals,back-pedaling,back-pedalling,back-pedaled,back-pedalled,back-pedaled,back-pedalled
backslide,backslides,backsliding,backslidden,backslid
ballyhoo,ballyhoos,ballyhooing,ballyhooed,ballyhooed
ballyrag,ballyrags,ballyragging,ballyragged,ballyragged
bar,bars,barring,barred,barred
barrel,barrels,barreling,barrelling,barreled,barrelled,barreled,barrelled
basify,basifies,basifying,basified,basified
bayonet,bayonets,bayoneting,bayonetting,bayoneted,bayonetted,bayoneted,bayonetted
bear,bears,bearing,borne,bore
beat,beats,beating,beaten,beat
become,becomes,becoming,become,became
bedevil,bedevils,bedeviling,bedevilling,bedeviled,bedevilled,bedeviled,bedevilled
bedim,bedims,bedimming,bedimmed,bedimmed
befall,befalls,befalling,befallen,befell
befog,befogs,befogging,befogged,befogged
beget,begets,begetting,begotten,begat,begot
begin,begins,beginning,begun,began
behold,beholds,beholding,beholden,beheld
bejewel,bejewels,bejeweling,bejewelling,bejeweled,bejewelled,bejeweled,bejewelled
belly-flop,belly-flops,belly-flopping,belly-flopped,belly-flopped
bename,benames,benaming,benamed,benamed
bend,bends,bending,bent,bent
beseech,beseeches,beseeching,beseeched,besought,beseeched,besought
beset,besets,besetting,beset,beset
bespeak,bespeaks,bespeaking,bespoken,bespoke
bespread,bespreads,bespreading,bespread,bespread
bestead,besteads,besteading,besteaded,besteaded
bestrew,bestrews,bestrewing,bestrewed,bestrewn,bestrewed
bestride,bestrides,bestriding,bestridden,bestrode
bet,bets,betting,bet,betted,bet,betted
betake,betakes,betaking,betaken,betook
bethink,bethinks,bethinking,bethought,bethought
bevel,bevels,beveling,bevelling,beveled,bevelled,beveled,bevelled
bias,biases,biasing,biassing,biased,biassed,biased,biassed
bid,bids,bidding,bid,bidden,bade,bid
bind,binds,binding,bound,bound
bird-dog,bird-dogs,bird-dogging,bird-dogged,bird-dogged
birdie,birdies,birdieing,birdied,birdied
bit,bits,bitting,bitted,bitted
bite,bites,biting,bitten,bit
blackberry,blackberries,blackberrying,blackberried,blackberried
blackleg,blacklegs,blacklegging,blacklegged,blacklegged
blat,blats,blatting,blatted,blatted
bleed,bleeds,bleeding,bled,bled
bless,blesses,blessing,blessed,blest,blessed,blest
blob,blobs,blobbing,blobbed,blobbed
blot,blots,blotting,blotted,blotted
blow,blows,blowing,blown,blew
blub,blubs,blubbing,blubbed,blubbed
blue,blues,blueing,bluing,blued,blued
blue-pencil,blue-pencills,blue-pencils,blue-penciling,blue-pencilling,blue-penciled,blue-pencilled,blue-penciled,blue-pencilled
blur,blurs,blurring,blurred,blurred
bob,bobs,bobbing,bobbed,bobbed
bog-down,bogs-down,bogging-down,bogged-down,bogged-down
boo,boos,booing,booed,booed
boogie,boogies,boogieing,boogied,boogied
boohoo,boohoos,boohooing,boohooed,boohooed
bottle-feed,bottle-feeds,bottle-feeding,bottle-fed,bottle-fed
break,breaks,breaking,broken,broke
breast-feed,breast-feeds,breast-feeding,breast-fed,breast-fed
breed,breeds,breeding,bred,bred
brei,breis,breiing,breid,breid
brevet,brevets,breveting,brevetting,breveted,brevetted,breveted,brevetted
bring,brings,bringing,brought,brought
broadcast,broadcasts,broadcasting,broadcast,broadcasted,broadcast,broadcasted
browbeat,browbeats,browbeating,browbeaten,browbeat
brutify,brutifies,brutifying,brutified,brutified
buckram,buckrams,buckraming,buckramed,buckramed
build,builds,building,built,built
bullwhip,bullwhips,bullwhipping,bullwhipped,bullwhipped
bullyrag,bullyrags,bullyragging,bullyragged,bullyragged
bunco,buncos,buncoing,buncoed,buncoed
bunko,bunkos,bunkoing,bunkoed,bunkoed
bur,burs,burring,burred,burred
burn,burns,burning,burned,burnt,burned,burnt
burst,bursts,bursting,burst,burst
bus,buses,busses,busing,bussing,bused,bussed,bused,bussed
bushel,bushels,busheling,bushelling,busheled,bushelled,busheled,bushelled
buss,busses,bussing,bussed,bussed
bust,busts,busting,bust,busted,bust,busted
buy,buys,buying,bought,bought
calque,calques,calquing,calqued,calqued
can,could
canal,canals,canaling,canalling,canaled,canalled,canaled,canalled
cancel,cancels,canceling,cancelling,canceled,cancelled,canceled,cancelled
canopy,canopies,canopying,canopied,canopied
carbonado,carbonados,carbonadoing,carbonadoed,carbonadoed
carburet,carburets,carbureting,carburetting,carbureted,carburetted,carbureted,carburetted
carol,carols,caroling,carolling,caroled,carolled,caroled,carolled
cast,casts,casting,cast,cast
catch,catches,catching,caught,caught
catnap,catnaps,catnapping,catnapped,catnapped
cavil,cavils,caviling,cavilling,caviled,cavilled,caviled,cavilled
cbel,cbels,cbeling,cbelling,cbeled,cbelled,cbeled,cbelled
channel,channels,channeling,channelling,channeled,channelled,channeled,channelled
char,chars,charring,charred,charred
chasse,chasses,chasseing,chassed,chassed
chide,chides,chiding,chid,chidden,chid,chided
chisel,chisels,chiseling,chiselling,chiseled,chiselled,chiseled,chiselled
chivy,chevies,chivies,chivvies,chevying,chivvying,chivying,chevied,chivied,chivvied,chevied,chivied,chivvied
chondrify,chondrifies,chondrifying,chondrified,chondrified
choose,chooses,choosing,chosen,chose
chop,chops,chopping,chopped,chopped
citify,citifies,citifying,citified,citified
clad,clads,cladding,clad,clad
cleave,cleaves,cleaving,cleaved,cleft,clove,cloven,cleaved,cleft
clepe,clepes,cleping,cleped,clept,yclept,cleped,clept,yclept
cling,clings,clinging,clung,clung
clog,clogs,clogging,clogged,clogged
clop,clops,clopping,clopped,clopped
clot,clots,clotting,clotted,clotted
cockneyfy,cockneyfies,cockneyfying,cockneyfied,cockneyfied
cod,cods,codding,codded,codded
cog,cogs,cogging,cogged,cogged
coif,coifs,coiffing,coiffed,coiffed
collogue,collogues,colloguing,collogued,collogued
colly,collies,collying,collied,collied
combat,combats,combating,combatting,combated,combatted,combated,combatted
come,comes,coming,come,came
complot,complots,complotting,complotted,complotted
con,cons,conning,conned,conned
coo,coos,cooing,cooed,cooed
cop,cops,copping,copped,copped
coquet,coquets,coquetting,coquetted,coquetted
cost,costs,costing,cost,cost
co-star,co-stars,co-starring,co-starred,co-starred
counsel,counsels,counseling,counselling,counseled,counselled,counseled,counselled
counterplot,counterplots,counterplotting,counterplotted,counterplotted
countersink,countersinks,countersinking,countersunk,countersank
creep,creeps,creeping,crept,crept
crossbreed,crossbreeds,crossbreeding,crossbred,crossbred
crosscut,crosscuts,crosscutting,crosscut,crosscut
cuckoo,cuckoos,cuckooing,cuckooed,cuckooed
cudgel,cudgels,cudgeling,cudgelling,cudgeled,cudgelled,cudgeled,cudgelled
cupel,cupels,cupeling,cupelling,cupeled,cupelled,cupeled,cupelled
curet,curets,curettes,curetting,curetted,curetted
curry,curries,currying,curried,curried
curse,curses,cursing,crust,cursed,crust,cursed
curvet,curvets,curveting,curvetting,curveted,curvetted,curveted,curvetted
cut,cuts,cutting,cut,cut
dag,dags,dagging,dagged,dagged
damnify,damnifies,damnifying,damnified,damnified
dandify,dandifies,dandifying,dandified,dandified
dap,daps,dapping,dapped,dapped
daresay,daresays,daresaying,daresaid,daresaid
deal,deals,dealing,dealt,dealt,delt
debar,debars,debarring,debarred,debarred
debus,debuses,debusses,debusing,debussing,debused,debussed,debused,debussed
decalcify,decalcifies,decalcifying,decalcified,decalcified
decontrol,decontrols,decontrolling,decontrolled,decontrolled
de-emphasize,de-emphasizes,de-emphasizing,de-emphasized,de-emphasized
deepfreeze,deep-freezes,deep-freezing,deep-freezed,deep-freezed
deep-fry,deep-fries,deep-frying,deep-fried,deep-fried
degas,degases,degasses,degassing,degassed,degassed
dehumidify,dehumidifies,dehumidifying,dehumidified,dehumidified
dele,deles,deleing,deled,deled
demit,demits,demitting,demitted,demitted
demulsify,demulsifies,demulsifying,demulsified,demulsified
denazify,denazifies,denazifying,denazified,denazified
denitrify,denitrifies,denitrifying,denitrified,denitrified
detoxify,detoxifies,detoxifying,detoxified,detoxified
devaluate,devaluates,devaluating,devaluated,devaluated
devil,devils,deviling,devilling,deviled,devilled,deviled,devilled
devitrify,devitrifies,devitrifying,devitrified,devitrified
diagram,diagrams,diagraming,diagramming,diagramed,diagrammed,diagramed,diagrammed
dial,dials,dialing,dialling,dialed,dialled,dialed,dialled
dib,dibs,dibbing,dibbed,dibbed
die,dies,dying,died,died
dig,digs,digging,dug,dug
dight,dights,dighting,dight,dighted,dight,dighted
dilly-dally,dilly-dallies,dilly-dallying,dilly-dallied,dilly-dallied
disannul,disannuls,disannulling,disannulled,disannulled
disbud,disbuds,disbudding,disbudded,disbudded
disembody,disembodies,disembodying,disembodied,disembodied
disembogue,disembogues,disemboguing,disembogued,disembogued
disembowel,disembowels,disemboweling,disembowelling,disemboweled,disembowelled,disemboweled,disembowelled
disenthral,disenthrall,disenthralls,disenthralling,disenthralled,disenthralled
dishevel,dishevels,disheveling,dishevelling,disheveled,dishevelled,disheveled,dishevelled
disinter,disinters,disinterring,disinterred,disinterred
ditto,dittoes,dittos,dittoing,dittoed,dittoed
dive,dives,diving,dived,dived,dove
do,does,doing,done,did
dog,dogs,dogging,dogged,dogged
don,dons,donning,donned,donned
dot,dots,dotting,dotted,dotted
double-tongue,double-tongues,double-tonguing,double-tongued,double-tongued
draw,draws,drawing,draws,drew
dream,dreams,dreaming,dreamed,dreamt,dreamed,dreamt
dree,drees,dreeing,dreed,dreed
drink,drinks,drinking,drunk,drank
drive,drives,driving,driven,drove
drivel,drivels,driveling,drivelling,driveled,drivelled,driveled,drivelled
drop,drops,dropping,dropped,dropped
duel,duels,dueling,duelling,dueled,duelled,dueled,duelled
dulcify,dulcifies,dulcifying,dulcified,dulcified
dup,dups,dupping,dupped,dupped
dwell,dwells,dwelling,dwelled,dwelt,dwelled,dwelt
dye,dyes,dyeing,dyed,dyed
eat,eats,eating,eaten,ate
embus,embuses,embusses,embusing,embussing,embused,embussed,embused,embussed
emcee,emcees,emceeing,emceed,emceed
empanel,empanels,empaneling,empanelling,empaneled,empanelled,empaneled,empanelled
enamel,enamels,enameling,enamelling,enameled,enamelled,enameled,enamelled
endue,endues,enduing,endued,endued
englut,engluts,englutting,englutted,englutted
ensue,ensues,ensuing,ensued,ensued
entrammel,entrammels,entrammelling,entrammelled,entrammelled
enwind,enwinds,enwinding,enwound,enwound
enwrap,enwraps,enwrapping,enwrapped,enwrapped
equal,equals,equaling,equalling,equaled,equalled,equaled,equalled
esterify,esterifies,esterifying,esterified,esterified
estop,estops,estopping,estopped,estopped
etherify,etherifies,etherifying,etherified,etherified
eye,eyes,eyeing,eying,eyed,eyed
facet,facets,faceting,facetting,faceted,facetted,faceted,facetted
fall,falls,falling,fallen,fell
featherbed,featherbeds,featherbedding,featherbedded,featherbedded
feed,feeds,feeding,fed,fed
feel,feels,feeling,felt,felt
fight,fights,fighting,fought,fought
filagree,filagrees,filagreeing,filagreed,filagreed
fill up,filled up
fin,fins,finning,finned,finned
find,finds,finding,found,found
fine-draw,fine-draws,fine-drawing,fine-drawn,fine-drew
fit,fits,fitting,fit,fitted,fit,fitted
flam,flams,flamming,flammed,flammed
flannel,flannels,flanneling,flannelling,flanneled,flannelled,flanneled,flannelled
flee,flees,fleeing,fled,fled
flimflam,flimflams,flimflamming,flimflammed,flimflammed
fling,flings,flinging,flung,flung
flip-flop,flip-flops,flip-flopping,flip-flopped,flip-flopped
floodlight,floodlights,floodlighting,floodlit,floodlit
flub,flubbed,flubbed
flurry,flurries,flurrying,flurried,flurried
fly,flies,flying,flown,flew
flyblow,flyblows,flyblowing,flyblown,flyblew
fog,fogs,fogging,fogged,fogged
forbear,forbears,forbearing,forborne,forbore
forbid,forbad,forbids,forbidding,forbidden,forbad,forbade
force-feed,force-feeds,force-feeding,force-fed,force-fed
fordo,fordoes,fordoing,fordone,fordid
forecast,forecasts,forecasting,forecast,forecasted,forecast,forecasted
foredo,foredoes,foredoing,foredone,foredid
forego,foregoes,foregoing,foregone,forewent
foreknow,foreknows,foreknowing,foreknown,foreknew
forerun,foreruns,forerunning,foreran,foreran
foresee,foresees,foreseeing,foreseen,foresaw
forespeak,forespeaks,forespeaking,forespoken,forespoke
foretell,foretells,foretelling,foretold,foretold
forget,forgets,forgetting,forgotten,forgot
forgive,forgives,forgiving,forgiven,forgave
forgo,forgoes,forgoing,forgone,forwent
format,formats,formatting,formatted,formatted
forsake,forsakes,forsaking,forsaken,forsook
forspeak,forspeaks,forspeaking,forspoken,forspoke
forswear,forswears,forswearing,forsworn,forswore
frap,fraps,frapping,frapped,frapped
free,frees,freeing,freed,freed
freeze,freezes,freezing,frozen,froze
freeze-dry,freeze-dries,freeze-drying,freeze-dried,freeze-dried
frenchify,frenchifies,frenchifying,frenchified,frenchified
frig,frigs,frigging,frigged,frigged
frit,frits,fritting,fritted,fritted
frivol,frivols,frivoling,frivolling,frivoled,frivolled,frivoled,frivolled
fuel,fuels,fueling,fuelling,fueled,fuelled,fueled,fuelled
funnel,funnels,funneling,funnelling,funneled,funnelled,funneled,funnelled
fur,furs,furring,furred,furred
gad,gads,gadding,gadded,gadded
gainsay,gainsays,gainsaying,gainsaid,gainsaid
gam,gams,gamming,gammed,gammed
gambol,gambols,gamboling,gambolling,gamboled,gambolled,gamboled,gambolled
gan,gans,ganning,ganned,ganned
garnishee,garnishees,garnisheeing,garnisheed,garnisheed
gas,gases,gasses,gassing,gassed,gassed
geld,gelds,gelding,gelded,gelt,gelded,gelt
gen-up,gens-up,genning-up,genned-up,genned-up
get,gets,getting,got,gotten,got
get lost,gets lost,got lost,gotten lost,getting lost
get started,gets started,getting started,got started,got started
ghostwrite,ghostwrites,ghostwriting,ghostwritten,ghostwrote
gib,gibs,gibbing,gibbed,gibbed
giftwrap,giftwraps,giftwrapping,giftwrapped,giftwrapped
gild,gilds,gilding,gilded,gilt,gilded,gilt
gip,gips,gipping,gipped,gipped
gird,girds,girding,girded,girt,girded,girt
give,gives,giving,given,gave
glom,glomming,glommed,glommed
glue,glues,gluing,glued,glued
gnaw,gnaws,gnawing,gnawed,gnawn,gnawed
go,goes,going,gone,went
go deep,goes deep,going deep,gone deep,went deep
goose-step,goose-steps,goose-stepping,goose-stepped,goose-stepped
grab,grabs,grabbing,grabbed,grabbed
grave,graves,graving,graven,graved
gravel,gravels,graveling,gravelling,graveled,gravelled,graveled,gravelled
gree,grees,greeing,greed,greed
grind,grinds,grinding,ground,ground
grovel,grovels,groveling,grovelling,groveled,grovelled,groveled,grovelled
grow,grows,growing,grown,grew
gumshoe,gumshoes,gumshoeing,gumshoed,gumshoed
hallo,hallos,halloing,halloed,halloed
halloo,halloos,hallooing,hallooed,hallooed
halo,haloes,halos,haloing,haloed,haloed
hamstring,hamstrings,hamstringing,hamstringed,hamstrung,hamstring,hamstrung
handfeed,handfeeds,handfeeding,handfed,handfed
handicap,handicaps,handicapping,handicapped,handicapped
hand-knit,hand-knits,hand-knitting,hand-knitted,hand-knitted
handsel,handsels,handselling,handselled,handselled
hang,hangs,hanging,hanged,hung,hanged,hung
hansel,hansels,hanseling,hanseled,hanseled
has,have,having,had,had
hatchel,hatchels,hatcheling,hatchelling,hatcheled,hatchelled,hatcheled,hatchelled
hear,hears,hearing,heard,heard
heave,heaves,heaving,heaved,hove,heaved,hove
hiccup,hiccups,hiccuping,hiccupping,hiccuped,hiccupped,hiccuped,hiccupped
hide,hides,hiding,hid,hidden,hid,hided
hie,hieing,hying,hied,hied
high-hat,high-hats,high-hatting,high-hatted,high-hatted
hinny,hinnies,hinnying,hinnied,hinnied
hit,hits,hitting,hit,hit
hocus,hocuses,hocusing,hocussing,hocused,hocussed,hocused,hocussed
hocus-pocus,hocus-pocuses,hocus-pocusing,hocus-pocussing,hocus-pocused,hocus-pocussed,hocus-pocused,hocus-pocussed
hoe,hoes,hoeing,hoed,hoed
hold,holds,holding,held,held
honey,honeys,honeying,honeyed,honied,honeyed,honied
hop,hops,hopping,hopped,hopped
housel,housels,houseling,houselling,houseled,houselled,houseled,houselled
hovel,hovels,hoveling,hovelling,hoveled,hovelled,hoveled,hovelled
hurry,hurries,hurrying,hurried,hurried
hurt,hurts,hurting,hurt,hurt
hypertrophy,hypertrophies,hypertrophying,hypertrophied,hypertrophied
imbrue,imbrues,imbruing,imbrued,imbrued
imbue,imbues,imbuing,imbued,imbued
impanel,impanells,impanels,impaneling,impanelling,impaneled,impanelled,impaneled,impanelled
inbreed,inbreeds,inbreeding,inbred,inbred
indue,indues,induing,indued,indued
indwell,indwells,indwelling,indwelt,indwelt
initial,initials,initialing,initialling,initialed,initialled,initialed,initialled
inlay,inlays,inlaying,inlaid,inlaid
inlet,inlets,inlet,inlet
input,inputs,inputting,input,inputted,input,inputted
inset,insets,insetting,inset,insetted,inset,insetted
inspan,inspans,inspanning,inspanned,inspanned
instal,install,instals,installing,installed,installed
interbreed,interbreeds,interbreeding,interbred,interbred
intercrop,intercrops,intercropping,intercropped,intercropped
intercut,intercuts,intercutting,intercut,intercut
interlay,interlays,interlaying,interlaid,interlaid
intermit,intermits,intermitting,intermitted,intermitted
interplead,interpleads,interpleading,interpleaded,interpled,interpleaded,interpled
interstratify,interstratifies,interstratifying,interstratified,interstratified
interweave,interweaves,interweaving,interwoven,interweaved,interwove
intromit,intromits,intromitting,intromitted,intromitted
inweave,inweaves,inweaving,inwoven,inweaved
inwrap,inwraps,inwrapping,inwrapped,inwrapped
issue,issues,issuing,issued,issued
jar,jars,jarring,jarred,jarred
jell,jells,jelling,jelled,jelled
jellify,jellifies,jellifying,jellified,jellified
jerry-build,jerry-builds,jerry-building,jerry-built,jerry-built
jewel,jewels,jeweling,jewelling,jeweled,jewelled,jeweled,jewelled
jitterbug,jitterbugs,jitterbugging,jitterbugged,jitterbugged
job,jobs,jobbing,jobbed,jobbed
jog,jogs,jogging,jogged,jogged
jollify,jollifies,jollifying,jollified,jollified
jot,jots,jotting,jotted,jotted
joypop,joypops,joypopping,joypopped,joypopped
joy-ride,joy-rides,joy-riding,joy-ridden,joy-rode
jut,juts,jutting,jutted,jutted
keep,keeps,keeping,kept,kept
kennel,kennels,kenneling,kennelling,kenneled,kennelled,kenneled,kennelled
kernel,kernels,kerneling,kernelling,kerneled,kernelled,kerneled,kernelled
kidnap,kidnaps,kidnaping,kidnapping,kidnaped,kidnapped,kidnaped,kidnapped
knap,knaps,knapping,knapped,knapped
kneel,kneels,kneeling,kneeled,knelt,kneeled,knelt
knit,knits,knitting,knit,knitted,knit,knitted
knot,knots,knotting,knotted,knotted
know,knows,knowing,known,knew
KO,KO's,F,Knock Out,KO'ing,KO'd,KO'd
label,labels,labeling,labelling,labeled,labelled,labeled,labelled
lade,lades,lading,laden,laded
ladify,ladyfies,ladyfying,ladyfied,ladyfied
laicize,laicizes,laicizing,laicized,laicized
lallygag,lallygags,lallygagging,lallygagged,lallygagged
lam,lams,lamming,lammed,lammed
lasso,lassoes,lassos,lassoing,lassoed,lassoed
laurel,laurels,laureling,laurelling,laureled,laurelled,laureled,laurelled
lay,lays,laying,laid,laid
lead,leads,leading,led,led
lean,leans,leaning,leaned,leant,leaned,leant
leap,leaps,leaping,leaped,leapt,leaped,leapt
leapfrog,leapfrogs,leapfrogging,leapfrogged,leapfrogged
learn,learns,learning,learned,learnt,learned,learnt
leave,leaves,leaving,left,left
leave undone,leaves undone,leaving undone,left undone,left undone
legitimize,legitimizes,legitimizing,legitimized,legitimized
lend,lends,lending,lent,lent
let,lets,letting,let,let
level,levels,leveling,levelling,leveled,levelled,leveled,levelled
libel,libels,libeling,libelling,libeled,libelled,libeled,libelled
lie,lies,lying,lain,lay
light,lights,lighting,lighted,lit,lighted,lit
lignify,lignifies,lignifying,lignified,lignified
lip-read,lip-reads,lip-reading,lip-read,lip-read
liquify,liquifies,liquifying,liquified,liquified
lob,lobs,lobbing,lobbed,lobbed
log,logs,logging,logged,logged
lop,lops,lopping,lopped,lopped
lose,loses,losing,lost,lost
lot,lots,lotting,lotted,lotted
machine-gun,machine-guns,machine-gunning,machine-gunned,machine-gunned
make,makes,making,made,made
man,mans,manning,manned,manned
manumit,manumits,manumitting,manumitted,manumitted
mar,mars,marring,marred,marred
marcel,marcels,marcelling,marcelled,marcelled
marshal,marshals,marshaling,marshalling,marshaled,marshalled,marshaled,marshalled
marvel,marvels,marveling,marvelling,marveled,marvelled,marveled,marvelled
may,might
mean,means,meaning,meant,meant
medal,medals,medaling,medalling,medaled,medalled,medaled,medalled
meet,meets,meeting,met,met
melt,melts,melting,molten,melted
metal,metals,metaling,metalling,metaled,metalled,metaled,metalled
metrify,metrifies,metrifying,metrified,metrified
militate against,militates against,militating against,militated against,militated against
minify,minifies,minifying,minified,minified
misbecome,misbecomes,misbecoming,misbecame,misbecame
miscast,miscasts,miscasting,miscast,miscast
misconstrue,misconstrues,misconstruing,misconstrued,misconstrued
misdeal,misdeals,misdealing,misdealt,misdealt
misgive,misgives,misgiving,misgiven,misgave
mishear,mishears,mishearing,misheard,misheard
mishit,mishits,mishitting,mishit,mishit
mislay,mislays,mislaying,mislaid,mislaid
mislead,misleads,misleading,misled,misled
misplead,mispleads,mispleading,mispleaded,mispled,mispleaded,mispled
misread,misreads,misreading,misread,misread
misspell,misspells,misspelling,mispelt,misspelled,mispelt,misspelled
misspend,misspends,misspending,misspent,misspent
mistake,mistakes,mistaking,mistaken,mistook
misunderstand,misunderstands,misunderstanding,misunderstood,misunderstood
mob,mobs,mobbing,mobbed,mobbed
model,models,modeling,modelling,modeled,modelled,modeled,modelled
moonlight,moonlights,moonlighting,moonlighted,moonlighted
mow,mows,mowing,mowed,mown,mowed
mug,mugs,mugging,mugged,mugged
nickel,nickels,nickeling,nickelling,nickeled,nickelled,nickeled,nickelled
nidify,nidifies,nidifying,nidified,nidified
nid-nod,nid-nods,nid-nodding,nid-nodded,nid-nodded
niello,niellos,nielloing,nielloed,nielloed
nitrify,nitrifies,nitrifying,nitrified,nitrified
nonplus,nonpluses,nonplusses,nonplusing,nonplussing,nonplused,nonplussed,nonplused,nonplussed
objectify,objectifies,objectifying,objectified,objectified
offset,offsets,offsetting,offset,offset
opsonize,opsonizes,opsonizing,opsonized,opsonized
outbid,outbids,outbidding,outbidden,outbid,outbidden
outbreed,outbreeds,outbreeding,outbred,outbred
outdo,outdoes,outdoing,outdone,outdid
outfit,outfits,outfitting,outfitted,outfitted
outgas,outgasses,outgassing,outgassed,outgassed
outgeneral,outgenerals,outgeneraling,outgeneralling,outgeneraled,outgeneralled,outgeneraled,outgeneralled
outgo,outgoes,outgoing,outgone,outwent
outgrow,outgrows,outgrowing,outgrown,outgrew
outlay,outlays,outlaying,outlaid,outlaid
outman,outmans,outmanning,outmanned,outmanned
outride,outrides,outriding,outridden,outrode
outrun,outruns,outrunning,outran,outran
outsell,outsells,outselling,outsold,outsold
outshine,outshines,outshining,outshined,outshone,outshined,outshone
outshoot,outshoots,outshooting,outshot,outshot
outspan,outspans,outspanning,outspanned,outspanned
outspread,outspreads,outspreading,outspread,outspread
outstand,outstands,outstanding,outstood,outstood
outthink,outthinks,outthinking,outthought,outthougth
outwear,outwears,outwearing,outworn,outwore
overbear,overbears,overbearing,overborne,overbore
overbid,overbids,overbidding,overbidden,overbid
overblow,overblows,overblowing,overblown,overblew
overbuild,overbuilds,overbuilding,overbuilt,overbuilt
overcast,overcasts,overcasting,overcast,overcast
overcome,overcomes,overcoming,overcome,overcame
overcrop,overcrops,overcropping,overcropped,overcropped
overdo,overdoes,overdoing,overdone,overdid
overdraw,overdraws,overdrawing,overdrawn,overdrew
overdrive,overdrives,overdriving,overdriven,overdrove
overeat,overeats,overeating,overeaten,overate
overflow,overflows,overflowing,overflowed,overflowed
overfly,overflies,overflying,overflew,overflew
overgrow,overgrows,overgrowing,overgrown,overgrew
overhang,overhangs,overhanging,overhung,overhung
overhear,overhears,overhearing,overheard,overheard
overissue,overissues,overissuing,overissued,overissued
overlap,overlaps,overlapping,overlapped,overlapped
overlay,overlays,overlaying,overlaid,overlaid
overlie,overlay,overlies,overlying,overlain,overlain
overload,overloads,overloading,overladen,overloaded,overloaded
overman,overmans,overmanning,overmanned,overmanned
overpay,overpays,overpaying,overpaid,overpaid
override,overrides,overriding,overridden,overrode
overrun,overruns,overrunning,overrun,overran
oversee,oversees,overseeing,overseen,oversaw
oversell,oversells,overselling,oversold,oversold
overset,oversets,oversetting,overset,overset
overshoot,overshoots,overshooting,overshot,overshot
oversleep,oversleeps,oversleeping,overslept,overslept
overspend,overspends,overspending,overspent,overspent
overstep,oversteps,overstepping,overstepped,overstepped
overtake,overtakes,overtaking,overtaken,overtook
overthrow,overthrows,overthrowing,overthrown,overthrew
overtop,overtops,overtopping,overtopped,overtopped
overwind,overwinds,overwinding,overwound,overwound
overwrite,overwrites,overwriting,overwritten,overwrote
pandy,pandies,pandying,pandied,pandied
panel,panels,paneling,panelling,paneled,panelled,paneled,panelled
panic,panics,panicking,panicked,panicked
parallel,parallels,paralleling,parallelling,paralleled,parallelled,paralleled,parallelled
parcel,parcels,parceling,parcelling,parceled,parcelled,parceled,parcelled
parenthesize,parenthesizes,parenthesizing,parenthesized,parenthesized
partake,partakes,partaking,partaken,partook
pasquinade,pasquils,pasquinades,pasquilling,pasquinading,pasquilled,pasquinaded,pasquilled,pasquinaded
pay,pays,paying,paid,paid
pedal,pedals,pedaling,pedalling,pedaled,pedalled,pedaled,pedalled
pencil,pencils,penciling,pencilling,penciled,pencilled,penciled,pencilled
pettifog,pettifogs,pettifogging,pettifogged,pettifogged
phantasy,phantasies,phantasying,phantasied,phantasied
photocopy,photocopies,photocopying,photocopied,photocopied
photomap,photomaps,photomapping,photomapped,photomapped
photoset,photosets,photosetting,photoset,photoset
pie,pies,pieing,piing,pied,pied
pinch-hit,pinch-hits,pinch-hitting,pinch-hit,pinch-hit
pistol,pistols,pistoling,pistolling,pistoled,pistolled,pistoled,pistolled
pistol-whip,pistol-whips,pistol-whipping,pistol-whipped,pistol-whipped
pitapat,pitapats,pitapatting,pitapatted,pitapatted
plat,plats,platting,platted,platted
plead,pleads,pleading,pleaded,pled,pleaded,pled
plod,plods,plodding,plodded,plodded
plop,plops,plopping,plopped,plopped
plot,plots,plotting,plotted,plotted
pod,pods,podding,podded,podded
pommel,pommels,pommeling,pommelling,pommeled,pommelled,pommeled,pommelled
pop,pops,popping,popped,popped
pot,pots,potting,potted,potted
precancel,precancels,precanceling,precancelling,precanceled,precancelled,precanceled,precancelled
precast,precasts,precasting,precast,precast
preoccupy,preoccupies,preoccupying,preoccupied,preoccupied
prepay,prepays,prepaying,prepaid,prepaid
preset,presets,presetting,preset,preset
presignify,presignifies,presignifying,presignified,presignified
pretermit,pretermits,pretermitting,pretermitted,pretermitted
prod,prods,prodding,prodded,prodded
program,programmes,programs,programming,programed,programmed,programed,programmed
prologue,prologs,prologues,prologing,prologuing,prologed,prologued,prologed,prologued
proofread,proofreads,proofreading,proofread,proofread
prop,props,propping,propped,propped
prove,proves,proving,proven,proved
pummel,pummels,pummeling,pummelling,pummeled,pummelled,pummeled,pummelled
pursue,pursues,pursuing,pursued,pursued
put,puts,putting,put,put
quarrel,quarrels,quarreling,quarrelling,quarreled,quarrelled,quarreled,quarrelled
quick-freeze,quick-freezes,quick-freezing,quick-frozen,quick-froze
radio,radios,radioing,raoed,raoed
rappel,rappels,rappelling,rappelled,rappelled
ravel,ravels,raveling,ravelling,raveled,ravelled,raveled,ravelled
raz-cut,raz-cuts,raz-cutting,raz-cut,raz-cut
razee,razees,razeeing,razeed,razeed
read,reads,reading,read,read
reave,reaves,reaving,reaved,reaved
rebel,rebels,rebelling,rebelled,rebelled
rebind,rebinds,rebinding,rebound,rebound
rebuild,rebuilds,rebuilding,rebuilt,rebuilt
recast,recasts,recasting,recast,recast
recce,recces,recceing,recced,recceed,recced,recceed
recommit,recommits,recommitting,recommitted,recommitted
recopy,recopies,recopying,recopied,recopied
redd,redds,redding,redded,redded
redo,redoes,redoing,redone,redid
red-pencil,red-pencills,red-pencilling,red-pencillling,red-pencilled,red-pencillled,red-pencilled,red-pencillled
refuel,refuels,refueling,refuelling,refueled,refuelled,refueled,refuelled
rehear,rehears,rehearing,reheard,reheard
relay,relays,relaying,relaid,relaid
rely,relies,relying,relied,relied
remake,remakes,remaking,remade,remade
rend,rends,rending,rent,rent
repay,repays,repaying,repaid,repaid
replevy,replevies,replevying,replevied,replevied
rerun,reruns,rerunning,rerun,reran
resell,resells,reselling,resold,resold
reset,resets,resetting,reset,reset
resit,resits,resitting,resat,resat
ret,rets,retting,retted,retted
retake,retakes,retaking,retaken,retook
retell,retells,retelling,retold,retold
rethink,rethinks,rethinking,rethought,rethought
retread,retreads,retreading,retreaded,retreaded
re-tread,re-treads,re-treading,re-trodden,re-trod
retrofit,retrofits,retrofitting,retrofitted,retrofitted
retry,retries,retrying,retried,retried
reunify,reunifies,reunifying,reunified,reunified
revalorize,revalorizes,revalorizing,revalorized,revalorized
revel,revels,reveling,revelling,reveled,revelled,reveled,revelled
revet,revets,revetting,revetted,revetted
rewind,rewinds,rewinding,rewound,rewound
rewrite,rewrites,rewriting,rewritten,rewrote
ricochet,ricochets,ricocheting,ricochetting,ricocheted,ricochetted,ricocheted,ricochetted
rid,rids,ridding,rid,ridded,rid,ridded
ride,rides,riding,ridden,rode
rigidify,rigidifies,rigidifying,rigidified,rigidified
ring,rings,ringing,rung,rang
rise,rises,rising,risen,rose
rival,rivals,rivaling,rivalling,rivaled,rivalled,rivaled,rivalled
rive,rives,riving,riven,rived
rob,robs,robbing,robbed,robbed
rot,rots,rotting,rotted,rotted
roughcast,roughcasts,roughcasting,roughcast,roughcast
rough-dry,rough-dries,rough-drying,rough-dried,rough-dried
rough-hew,rough-hews,rough-hewing,rough-hewed,rough-hewed
rowel,rowels,roweling,rowelling,roweled,rowelled,roweled,rowelled
rue,rues,ruing,rued,rued
ruggedize,ruggedizes,ruggedizing,ruggedized,ruggedized
run,runs,running,run,ran
saccharify,saccharifies,saccharifying,saccharified,saccharified
sandbag,sandbags,sandbagging,sandbagged,sandbagged
sand-cast,sand-casts,sand-casting,sand-cast,sand-cast
saponify,saponifies,saponifying,saponified,saponified
saute,sautes,sauteing,sauted,sauteed,sauted,sauteed
saw,saws,sawing,sawed,sawn,sawed
say,says,saying,said,said
scag,scags,scagging,scagged,scagged
scar,scars,scarring,scarred,scarred
scorify,scorifies,scorifying,scorified,scorified
scry,scries,scrying,scried,scried
scurry,scurries,scurrying,scurried,scurried
see,sees,seeing,seen,saw
seed,seeds,seeding,seeded,seeded
seek,seeks,seeking,sought,sought
sell,sells,selling,sold,sold
send,sends,sending,sent,sent
set,sets,setting,set,set
shake,shakes,shaking,shaken,shook
shall,should
sharecrop,sharecrops,sharecropping,sharecropped,sharecropped
shave,shaves,shaving,shaven,shaved
shear,shears,shearing,sheared,shorn,sheared
shed,sheds,shedding,shed,shed
shend,shends,shending,shent,shent
shikar,shikars,shikarring,shikarred,shikarred
shillyshally,shillyshallies,shillyshallying,shillyshallied,shillyshallied
shim,shims,shimming,shimmed,shimmed
shimmy,shimmies,shimmying,shimmied,shimmied
shine,shines,shining,shined,shone,shined,shone
shit,shits,shitting,shat,shit,shat,shit
shoe,shoes,shoeing,shod,shoed,shod,shoed
shoot,shoots,shooting,shot,shot
shop,shops,shopping,shopped,shopped
shot,shots,shotting,shotted,shotted
shovel,shovels,shoveling,shovelling,shoveled,shovelled,shoveled,shovelled
show,shows,showing,showed,shown,showed
shred,shredding,shred,shredded,shred,shredded
shrink,shrinks,shrinking,shrunk,shrunken,shrank,shrunk
shrink-wrap,shrink-wraps,shrink-wrapping,shrink-wrapped,shrink-wrapped
shrive,shrives,shriving,shriven,shrived
shrivel,shrivels,shriveling,shrivelling,shriveled,shrivelled,shriveled,shrivelled
shut,shuts,shutting,shut,shut
shy,shies,shying,shied,shied
sight-read,sight-reads,sight-reading,sight-read,sight-read
sightsee,sightsees,sightseeing,sightseen,sightsaw
signal,signals,signaling,signalling,signaled,signalled,signaled,signalled
silicify,silicifies,silicifying,silicified,silicified
sin,sins,sinning,sinned,sinned
sing,sings,singing,sung,sang
single-step,single-steps,single-stepping,single-stepped,single-stepped
sink,sinks,sinking,sunk,sunken,sank,sunk
sit,sits,sitting,sat,sat
skelly,skellies,skellying,skellied,skellied
sken,skens,skenning,skenned,skenned
sket,skets,sketting,sketted,sketted
skinny-dip,skinny-dips,skinny-dipping,skinny-dipped,skinny-dipped
skin-pop,skin-pops,skin-popping,skin-popped,skin-popped
sky,skies,skying,skied,skyed,skied,skyed
skydive,skydives,skydiving,skydived,skydived
slay,slays,slaying,slain,slew
sleep,sleeps,sleeping,slept,slept
slide,slides,sliding,slid,slidden,slid
sling,slings,slinging,slung,slung
slink,slinks,slinking,slunk,slunk
slit,slits,slitting,slit,slit
slog,slogs,slogging,slogged,slogged
slop,slops,slopping,slopped,slopped
slot,slots,slotting,slotted,slotted
slur,slurs,slurring,slurred,slurred
smell,smells,smelling,smelled,smelt,smelled,smelt
smite,smites,smiting,smitten,smote
sned,sneds,snedding,snedded,snedded
snivel,snivels,sniveling,snivelling,sniveled,snivelled,sniveled,snivelled
sob,sobs,sobbing,sobbed,sobbed
sod,sods,sodding,sodded,sodded
soft-pedal,soft-pedals,soft-pedaling,soft-pedalling,soft-pedaled,soft-pedalled,soft-pedaled,soft-pedalled
solemnify,solemnifies,solemnifying,solemnified,solemnified
soothsay,soothsays,soothsaying,soothsaid,soothsaid
sop,sops,sopping,sopped,sopped
sow,sows,sowing,sowed,sown,sowed
spancel,spancels,spanceling,spancelling,spanceled,spancelled,spanceled,spancelled
spar,spars,sparring,sparred,sparred
spat,spats,spatting,spatted,spatted
speak,speaks,speaking,spoken,spoke
speed,speeds,speeding,sped,speeded,sped,speeded
spell,spells,spelling,spelled,spelt,spelled,spelt
spellbind,spellbinds,spellbinding,spellbound,spellbound
spend,spends,spending,spent,spent
spill,spills,spilling,spilled,spilled
spin,spins,spinning,spun,span,spun
spin-dry,spin-dries,spin-drying,spin-dried,spin-dried
spiral,spirals,spiraling,spiralling,spiraled,spiralled,spiraled,spiralled
spit,spits,spitting,spat,spit,spat,spit
split,splits,splitting,split,split
spoil,spoils,spoiling,spoiled,spoilt,spoiled,spoilt
spoon-feed,spoon-feeds,spoon-feeding,spoon-fed,spoon-fed
spot,spots,spotting,spotted,spotted
spotlight,spotlights,spotlighting,spotlighted,spotlit,spotlighted,spotlit
spread,spreads,spreading,spread,spread
spring,springs,springing,sprung,sprang,sprung
spue,spues,spuing,spued,spued
spur,spurs,spurring,spurred,spurred
squat,squats,squatting,squatted,squatted
stall-feed,stall-feeds,stall-feeding,stall-fed,stall-fed
stand,stands,standing,stood,stood
star,stars,starring,starred,starred
steal,steals,stealing,stolen,stole
stellify,stellifies,stellifying,stellified,stellified
stencil,stencils,stenciling,stencilling,stenciled,stencilled,stenciled,stencilled
stick,sticks,sticking,stuck,stuck
sting,stings,stinging,stung,stung
stink,stinks,stinking,stunk,stank,stunk
strew,strews,strewing,strewed,strewn,strewed
stride,strides,striding,stridden,strode
strike,strikes,striking,struck,struck
string,strings,stringing,strung,strung
strive,strives,striving,strived,striven,strived,strove
strop,strops,stropping,stropped,stropped
stucco,stuccoes,stuccos,stuccoing,stuccoed,stuccoed
stultify,stultifies,stultifying,stultified,stultified
stum,stums,stumming,stummed,stummed
stymie,stymies,stymieing,stymying,stymied,stymied
sublet,sublets,subletting,sublet,sublet
subtotal,subtotals,subtotaling,subtotalling,subtotaled,subtotalled,subtotaled,subtotalled
sue,sues,suing,sued,sued
sulphuret,sulphurets,sulphureting,sulphuretting,sulphureted,sulphuretted,sulphureted,sulphuretted
swab,swabs,swabbing,swabbed,swabbed
swag,swags,swagging,swagged,swagged
swap,swaps,swops,swapping,swopping,swapped,swopped,swapped,swopped
swat,swats,swatting,swatted,swatted
swear,swears,swearing,sworn,swore
sweep,sweeps,sweeping,swept,swept
swell,swells,swelling,swelled,swollen,swelled
swim,swims,swimming,swum,swam
swing,swings,swinging,swung,swung
swivel,swivels,swiveling,swivelling,swiveled,swivelled,swiveled,swivelled
syllabicate,syllabicates,syllabicating,syllabicated,syllabicated
symbol,symbols,symboling,symbolling,symboled,symbolled,symboled,symbolled
take,takes,taking,taken,took
talc,talcs,talcing,talcking,talced,talcked,talced,talcked
tar,tars,tarring,tarred,tarred
tassel,tassels,tasseling,tasselling,tasseled,tasselled,tasseled,tasselled
tat,tats,tatting,tatted,tatted
tattoo,tattoos,tattooing,tattooed,tattooed
taxi,taxies,taxiing,taxying,taxied,taxied
teach,teaches,teaching,taught,taught
tear,tears,tearing,torn,tore
teasel,teasels,teaselling,teaseled,teaselled,teaseled,teaselled
ted,teds,tedding,tedded,tedded
tee,tees,teeing,teed,teed
te-hee,te-hees,te-heeing,te-heed,te-heed
telecast,telecasts,telecasting,telecasted,telecasted
tell,tells,telling,told,told
tepefy,tepefies,tepefying,tepefied,tepefied
think,thinks,thinking,thought,thought
thrive,thrives,thriving,thrived,thriven,thrived,throve
throw,throws,throwing,thrown,threw
thrust,thrusts,thrusting,thrust,thrust
tinge,tinges,tingeing,tinging,tinged,tinged
tinsel,tinsels,tinseling,tinselling,tinseled,tinselled,tinseled,tinselled
tittup,tittups,tittuping,tittupping,tittuped,tittupped,tittuped,tittupped
tog,togs,togging,togged,togged
top,tops,topping,topped,topped
torrefy,torrefies,torrefying,torrefied,torrefied
tot,tots,totting,totted,totted
total,totals,totaling,totalling,totaled,totalled,totaled,totalled
towel,towels,toweling,towelling,toweled,towelled,toweled,towelled
trammel,tramels,trameling,tramelling,trameled,tramelled,trameled,tramelled
transvalue,transvalues,transvaluing,transvalued,transvalued
traumatize,traumatizes,traumatizing,traumatized,traumatized
travel,travels,traveling,travelling,traveled,travelled,traveled,travelled
tread,treads,treading,trod,trodden,trod
trig,trigs,trigging,trigged,trigged
trot,trots,trotting,trotted,trotted
trowel,trowels,troweling,trowelling,troweled,trowelled,troweled,trowelled
true,trues,trueing,truing,trued,trued
tumefy,tumefies,tumefying,tumefied,tumefied
tun,tuns,tunning,tunned,tunned
tunnel,tunnels,tunneling,tunnelling,tunneled,tunnelled,tunneled,tunnelled
typecast,typecasts,typecasting,typecast,typecast
typeset,typesets,typesetting,typeset,typeset
typewrite,typewrites,typewriting,typewritten,typewrote
uglify,uglifies,uglifying,uglified,uglified
unbend,unbends,unbending,unbent,unbent
unbind,unbinds,unbinding,unbound,unbound
uncap,uncaps,uncapping,uncapped,uncapped
unclog,unclogs,unclogging,unclogged,unclogged
unclothe,unclothes,unclothing,unclothed,unclothed
underbid,underbids,underbidding,underbid,underbid
underbuy,underbuys,underbuying,underbought,underbought
undercut,undercuts,undercutting,undercut,undercut
underfeed,underfeeds,underfeeding,underfed,underfed
undergird,undergirds,undergirding,undergirded,undergirded
undergo,undergoes,undergoing,undergone,underwent
underlay,underlays,underlaying,underlaid,underlaid
underlet,underlets,underletting
underlie,underlies,underlying,underlain,underlay
underpay,underpays,underpaying,underpaid,underpaid
underpin,underpins,underpinning,underpinned,underpinned
underprop,underprops,underpropping,underpropped,underpropped
undersell,undersells,underselling,undersold,undersold
underset,undersets,undersetting,underset,underset
undershoot,undershoots,undershooting,undershot,undershot
understand,understands,understanding,understood,understood
undertake,undertakes,undertaking,undertaken,undertook
undervalue,undervalues,undervaluing,undervalued,undervalued
underwrite,underwrites,underwriting,underwritten,underwrote
undo,undoes,undoing,undone,undid
unfit,unfits,unfitting,unfitted,unfitted
unfreeze,unfreezes,unfreezing,unfrozen,unfroze
unkennel,unkennels,unkenneling,unkennelling,unkenneled,unkennelled,unkenneled,unkennelled
unknit,unknits,unknitting,unknit,unknitted,unknit,unknitted
unlay,unlays,unlaying,unlaid,unlaid
unlearn,unlearns,unlearning,unlearned,unlearned
unmake,unmakes,unmaking,unmade,unmade
unman,unmans,unmanning,unmanned,unmanned
unpeg,unpegs,unpegging,unpegged,unpegged
unpin,unpins,unpinning,unpinned,unpinned
unplug,unplugs,unplugging,unplugged,unplugged
unravel,unravels,unraveling,unravelling,unraveled,unravelled,unraveled,unravelled
unreeve,unreeves,unreeving,unreeved,unreeved
unrig,unrigs,unrigging,unrigged,unrigged
unsay,unsays,unsaying,unsaid,unsaid
unship,unships,unshipping,unshipped,unshipped
unsling,unslings,unslinging,unslung,unslung
unsnap,unsnaps,unsnapping,unsnapped,unsnapped
unspeak,unspeaks,unspeaking,unspoken,unspoke
unsteady,unsteadies,unsteadying,unsteadied,unsteadied
unstep,unsteps,unstepping,unstepped,unstepped
unstick,unsticks,unsticking,unstuck,unstuck
unstring,unstrings,unstringing,unstrung,unstrung
unswear,unswears,unswearing,unsworn,unswore
unteach,unteaches,unteaching,untaught,untaught
unthink,unthinks,unthinking,unthought,unthought
untread,untreads,untreading,untrodden,untrod
unwind,unwinds,unwinding,unwound,unwound
unwrap,unwraps,unwrapping,unwrapped,unwrapped
upbuild,upbuilds,upbuilding,upbuilt,upbuilt
upcast,upcasts,upcasting,upcast,upcast
upheave,upheaves,upheaving,upheaved,upheaved
uphold,upholds,upholding,upheld,upheld
uppercut,uppercuts,uppercutting,uppercut,uppercut
uprise,uprises,uprising,uprisen,uprose
upset,upsets,upsetting,upset,upset
upspring,upsprings,upspringing,upsprung,upsprang
upsweep,upsweeps,upsweeping,upswept,upswept
upswell,upswells,upswelling,upswollen,upswelled
upswing,upswings,upswinging,upswung,upswung
verbify,verbifies,verbifying,verbified,verbified
victual,victuals,victualing,victualling,victualed,victualled,victualed,victualled
vitriol,vitriols,vitrioling,vitriolling,vitrioled,vitriolled,vitrioled,vitriolled
vivify,vivifies,vivifying,vivified,vivified
wad,wads,wadding,wadded,wadded
waddy,waddies,waddying,waddied,waddied
wadset,wadsets,wadsetting,wadsetted,wadsetted
wake,wakes,waking,waked,woken,waked,woke
wan,wans,wanning,wanned,wanned
war,wars,warring,warred,warred
water-ski,water-skis,water-skiing,water-skied,water-skied
waylay,waylays,waylaying,waylaid,waylaid
wear,wears,wearing,worn,wore
weave,weaves,weaving,woven,weaved,wove
weep,weeps,weeping,wept,wept
wet,wets,wetting,wet,wetted,wet,wetted
whap,whaps,whapping,whapped,whapped
whir,whirs,whirring,whirred,whirred
whistle-stop,whistle-stops,whistle-stopping,whistle-stopped,whistle-stopped
whop,whops,whopping,whopped,whopped
wigwag,wigwags,wigwagging,wigwagged,wigwagged
will,would
win,wins,winning,won,won
wind,winds,winding,wound,wound
window-shop,window-shops,window-shopping,window-shopped,window-shopped
winterfeed,winterfeeds,winterfeeding,winterfed,winterfed
wiredraw,wiredraws,wiredrawing,wiredrawn,wiredrew
withdraw,withdraws,withdrawing,withdrawn,withdrew
withhold,withholds,withholding,withheld,withheld
withstand,withstands,withstanding,withstood,withstood
worry,worries,worrying,worried,worried
worship,worships,worshipping,worshipped,worshipped
wreak,wreaks,wreaking,wreaked,wrought,wreaked,wrought
wring,wrings,wringing,wrung,wrung
write,writes,writing,written,wrote
wry,wries,wrying,wried,wried
yak,yaks,yakking,yakked,yakked
yodel,yodels,yodeling,yodelling,yodeled,yodelled,yodeled,yodelled
zap,zaps,zapping,zapped,zapped
need,needed,needing,needs
invoke,invokes,invoked,invoked,invoking
involve,involves,involved,involving
isolate,isolates,isolated,isolating
act,acts,acted,acting
add,adds,adding,added
concern,concerned,concerns,concerning
exceed,exceeding,exceeded,exceeded
play,plays,played,playing
plate,plates,plated,plating
place,places,placing,placed
rearranges,rearranged,rearranging,rearrange
rest,resting,rests,rested
span,spans,spanned,spanning
stimulate,stimulated,stimulates,stimulating
activate,activates,activated,activating
believe,believes,believed,believing
belong,belongs,belonged,belonging
induce,induces,induced,inducing,induced.
infer,inferred,inferring,infers
influence,influences,influenced,influencing
interrupt,interrupts,interrupted,interrupting
introduce,introduces,introduced,introducing
wash,washs,washed,washing
mimic,mimics,mimiced,mimicing
be,being,is,are,was,were,been
occur,occurs,occured,occuring

只要不規則變化不是整個字都改變(比如 be、is、are),只要修改規則檔即可增進辨識率。

參考

2006年2月9日 星期四

Bio NER Tagger

展示網頁

Web Service

Web Service 所建立的資料並不是全部都能在網路上傳遞,因此使用 Web Service 實應注意。以下是在 .Net 中常用且可在網路上傳遞的資料型別:
  • 基本資料型別(bool、string、DataTime、int 以及所有數值類型的資料型別)
  • 列舉資料型別(透過 enum 所定義的資料型別)
  • 以 XML 結構描述的資料
  • DataSet 物件(DataSet 物件是利用 XML 來描述的因此可以傳遞)
  • 上述資料型別所組成的陣列

Web Service 物件的方法必須在程式碼前加上:

  • [WebMethod]
  • public
這樣才可以被外部程式所參考。

.NET 呼叫(啟動)外部程式

如何利用 C# 執行外部程式

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents=false;
proc.StartInfo.FileName="filename"; // 檔案名稱
proc.Start();

除了使用 System.Diagnostics.Process 以外,傳統的 Shell 方法也可以,不過必須注意存在的風險:

一般的命令提示列指令大多會存取系統資源,要使用 Web 應用程式呼叫命令列程式,可能會因為 Web 程式權限不足無法無法執行,也可能因為開放權限而造成安全漏洞。

這問題有兩種解法:

  • 將呼叫命令列的程式獨立寫成元件 將元件加入 COM+,若是 Windows 2003 可以設定成以 Windows service 方式執行。在 COM+ 上設定 Web 應用程式的存取權。
  • Web Service 將此一 Web services 獨立一個應用程式集區,並只提供本機呼叫,授與一個較高的權限執行系統命令。

重新導向輸出

當一個程式啟動時,作業系統會相對應的產生一個行程,而我們可以經由 process ID 和行程名稱來辨識該行程。

在 .NET 中,Process 元件可以用來產生、刪除、暫停一個新的行程;我們也可以經由下面的屬性來取的相關的資訊:

  • NonpagedSystemMemorySize:
  • PagedMemorySize:
  • PagedSystemMemorySize:
  • PeakPagedMemorySize:
  • PeakVirtualMemorySize:
  • PeakWorkingSet
  • PriorityClass
  • PrivateMemorySize
  • PrivilegedProcessorTime

Process 元件中,包含了靜態和實例方法。比較常用的靜態方法如:

  • EnterDebugMode:讓該行程進入除錯模式
  • GetCurrentProcess:回傳目前正在執行的行程
  • GetProcessById:回傳指定的行程 ID 參考
  • GetProcesses:回傳目前機器上所有執行的行程所組成的陣列
  • Start:啟動一個新行程

Process 類別方法:

  • Close:釋放 Process 元件所使用的相關資源
  • Kill:終止正在執行的行程
  • CloseMainWindow:藉由傳送訊息到行程所在的主視窗來結束該行程

Process 類別屬性:

  • Responding:取得目前行程的狀態;true 表示還在執行中,false 代表無回應
  • StandardError:取得行程的標準錯誤輸出的檔案描述子(file descriptor)好將其重新導向到 Stream Reader,以檔案的方式來讀取之
  • StandardInput:取得行程的標準輸入的檔案描述子(file descriptor)好將其重導向,使得我們寫入資料到行程就好像寫資料到 StremWriter 一樣
  • StandardOutput:類似標準錯誤輸出,但是用來讀取行程的標準輸出
  • StartInfo:在行程啟動前,傳遞初始化參數給行程的屬性;若是在行程啟動後才改變行程的參數,將不會有任何影響

要重新導向標準的輸出入,首先必須初始化一個 ProcessStartInfo 類別,並以我們想要啟動的應用程式名稱作為該類別的建構子引數,並設定一些參數,最後把它傳遞給 Process 實例:

ProcessStartInfo psI = new ProcessStartInfo("cmd"); 

psI.UseShellExecute 屬性必須設定為 false,以便重新導向 StandardInput 等其它標準輸出入。所以,下面的這些屬性

psI.RedirectStandardInput 
psI.RedirectStandardOutput 
psI.RedirectStandardError 

都被設定為 true。

為了避免顯示命令列提示字元那個惱人的視窗,我們也將 psI.CreateNoWindow 屬性設定為 true,因此 cmd 將不會顯示視窗。最後,設定 p.StartInfo 為剛剛建立的 ProcessStartInfo 實例。

為了能夠擷取 p.StandardInput、p.StandardOutput 和 p.StandardError,我們必須取得檔案描述子(StreamReaders 和 StreamWriter 類別),來讀取 StandardOutput、StandardError 和寫入 StandardInput;就跟我們讀取或寫入檔案一樣的方式。當我們關閉 p.StandardInput 檔案描述子時,cmd 行程也會被終止。

最後,我們讀取 p.StandardOutput 和 p.StandardError 檔案描述子的內容到 text box。

下面是整個完整範例:

private void start()
{
   Process p = new Process();
   StreamWriter input;
   StreamReader output;
   StreamReader err;

   ProcessStartInfo psI = new ProcessStartInfo("cmd");
   psI.UseShellExecute = false;
   psI.RedirectStandardInput = true;
   psI.RedirectStandardOutput = true;
   psI.RedirectStandardError = true;
   psI.CreateNoWindow = true;
   p.StartInfo = psI;

   p.Start();
   input = p.StandardInput;
   output = p.StandardOutput;
   err = p.StandardError;

   input.AutoFlush = true;
   if (tbComm.Text != "")
      input.WriteLine(tbComm.Text);
   else
      //execute default command
      input.WriteLine("dir \\");
   input.Close();

   textBox1.Text = output.ReadToEnd();
   textBox1.Text += err.ReadToEnd();
}

C# Thread

.NET Framework 在 System.Threading 命名空間中定義了一些跟執行緒相關的類別。下面我們示範如何在 C# 中產生一個執行緒:

步驟一:建立一個 System.Threading.Thread 物件

建立一個 System.Threading.Thread 物件會在 .NET 環境中產生一個 managed 執行緒。Thread 類別只有一個建構式,其接受一個 ThreadStart delegate 做為參數。ThreadStart delegate 是一個回呼方法,當我們啟動該執行緒時,會呼叫該方法。

步驟二:建立回呼函式

該方法將會是我們新產生的執行緒的起始點。它可能是一個類別物件的實例方法(instance function)或是一個靜態方法。

若是該方法為實例方法,我們必須在建立 ThreadStart delegate 前,建立該類別物件;對於靜態方法而言,我們只需直接使用方法名稱來初始化 delegate。另外要注意的是,回呼方法必須以 void 來當作其回傳類型和參數;因為 ThreadStart delegate 函數的宣告為如此!

步驟三:啟動執行緒

我們可以使用 Thread 類別的 Start 方法來啟動新建立的執行緒。這個方法是非同步的方法,該方法會要求作業系統來啟動建立的執行緒。

例子

// 執行緒的回呼方法

public static void MyCallbackFunction()
{
    while (true)
    {
        System.Console.WriteLine("Hey!, My Thread Function Running");
        ………
    }
}

public static void Main(String []args)
{
    // 建立執行緒物件
    Thread MyThread = new Thread(new ThreadStart
        (MyCallbackFunction));

    MyThread.Start()
    ……
}

刪除執行緒

藉由呼叫執行緒物件的 Abort 方法,我們可以刪除一個執行緒。呼叫 Abort 方法會造成目前的執行緒拋出 ThreadAbortException 例外,並結束執行。

MyThread.Abort();

暫停和恢復執行緒

我們可以用 Suspend 方法來暫停一個正在執行中的執行緒,或從另一個執行緒中使用 Resume 方法來恢復一個執行緒的執行。

MyThread.Suspend() // 暫停執行緒執行
MyThread.Resume() // 恢復執行緒執行

執行緒狀態

執行緒可能處於下列幾種狀態:

  • Unstarted:執行緒已經被建立於 Common Language Runtime 中,但是還未啟動
  • Running:執行緒的 Start 方法被呼叫後,即進入此狀態
  • WaitSleepJoin:當呼叫執行緒的 wait、Sleep 或是 Join 方法時,會進入此狀態
  • Suspended:當 Suspend 方法被呼叫時,會進入此狀態
  • Stopped:執行緒終止(不論是正常終止或是 Abort)

藉由使用 Thread 的 ThreadState 屬性我們可以得知目前執行緒所處的狀態。

執行緒優先權

Thread 類別的 ThreadPriority 屬性用來設定該執行緒的優先權。可用的值包括:Lowest、BelowNormal、Normal、AboveNormal、Highest。預設值為 Normal。

Cross compile

因為從 GENIA 中下載的 geniatagger 只有 Linux 版本,所以我們必須使用 cygwin 來將它編譯成為可以在 windows 上使用的版本。

要做 cross compile 很簡單,只要在安裝 cygwin 時記得安裝 g++、gcc 以及 vim (可以不安裝)後,就可以在 cygwin 的視窗中下達 gcc/g++ 來做編譯。要注意的是,若是要將編譯好的 exe 檔在其它的電腦上執行,必須要複製 cygwin1.dll 檔。

2005年11月24日 星期四

Biomedical Acronym Grabber

需求

將 JJ_NN_terms 檔內的所有生物名詞,連結到 Biomedical Acronym Resolver 資料庫,找出它們的縮寫。

使用方法

在命令列下:

grabber >> 輸出檔案名稱

已知臭蟲

連線失敗時,會發生 $socket 未定義的錯誤。

程式說明

輸出到標準錯誤

Perl 輸出到標準錯誤輸出的方法為:

print STDERR 輸出;

POST 方法說明

HTTP 連線中,若是使用 POST 方法,至少必須送出下面的資訊:

  1. POST target HTTP/1.1\r\n:其中的 target 表示目標處理程式位址(不包含 http://,並且以 / 開頭)
  2. Host: host ip \r\n:其中的 host ip 代表目的地主機位址
  3. Content-Length: length \r\n:送出的 POST 資料長度
  4. 接著再送出一個 \r\n 後,才送出 POST 資料

要注意的是,在 HTTP 中,必須以 \r\n 來區隔。

Regular expression

在正規表示法中,可以使用 () 來代表某一個要記憶的成功比對的樣式,接著再利用 $ 符號來取出該樣式。參考下面的例子:

if ($content=~ /\s*\s*(.*)<\/td>/i)
print $string.",".$1."\n";

if ($IP =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/) {   # $IP 可能是合法的 IP 位址
print "第一個 ip : $1\n";
print "第二個 ip : $2\n";
print "第三個 ip : $3\n";
print "第四個 ip : $4\n";
}

參考