root/lang/elisp/pdicv-mode/trunk/nt-english.el @ 67

Revision 67, 12.1 kB (checked in by naoya_t, 16 years ago)
RevLine 
[67]1;;; nt-english.el --- English
2;;
3;; Copyright (C) 2005 Naoya TOZUKA. All Rights Reserved.
4;;
5;; Author: Naoya TOZUKA <pdicviewer@gmail.com>
6;; Maintainer: Naoya TOZUKA <pdicviewer@gmail.com>
7;; Primary distribution site: http://pdicviewer.naochan.com/el/
8;;
9;; Created: 23 Dec 2005
10;; Last modified: 23 Dec 2005
11;; Version: 0.2
12;; Keywords:
13
14(provide 'nt-english)
15
16;;; Commentaries:
17
18; (nt:english-guess-original-form WORD)
19;    - ������ñ���������Ȥ��롣
20;      ������Υꥹ�Ȥˤ�WORD �ϴޤޤ�����
21;
22; (nt:skipit-p WORD)
23;    - �����åפ�����ñ����, �����Ǥʤ��� nil
24
25;; Code
26(defvar nt-skip-words '("the" "a" "an"
27                        "i" "you" "he" "she" "it" "we" "they"
28                        "am" "are" "is" "was" "were"
29                        "this" "that" "these" "those"
30                        "or" "and" "but"))
31
32(defvar nt-english-irreg-verbs-list
33      '(("abode" . "abide")
34        ("alit" . "alight")
35        ("arose" . "arise") ("arisen" . "arise")
36        ("awoke" . "awake") ("awoken" . "awake")
37        ("backbit" . "backbite") ("backbitten" . "backbite")
38        ("backslid" . "backslide")
39        ("was" . "be") ("were" . "be") ("been" . "be")
40        ("bore" . "bear") ("borne" . "bear") ("born" . "bear")
41        ("beaten" . "beat")
42        ("became" . "become")
43        ("befell" . "befall") ("befallen" . "befall")
44        ("begot" . "beget") ("begotten" . "beget")
45        ("began" . "begin") ("begun" . "begin")
46        ("beheld" . "behold")
47        ("bent" . "bend")
48        ("bereft" . "bereave")
49        ("besought" . "beseech")
50        ("bade" . "bid") ("bidden" . "bid")
51        ("bade" . "bide")
52        ("bound" . "bind")
53        ("bit" . "bite") ("bitten" . "bite")
54        ("bled" . "bleed")
55        ("blent" . "blend")
56        ("blest" . "bless")
57        ("blew" . "blow") ("blown" . "blow")
58        ("broke" . "break") ("broken" . "break")
59        ("bred" . "breed")
60        ("brought" . "bring")
61        ("built" . "build")
62        ("burnt" . "burn")
63        ("bought" . "buy")
64        ("caught" . "catch")
65        ("chose" . "choose") ("chosen" . "choose")
66        ("clove" . "cleave") ("cleft" . "cleave") ("cloven" . "cleave")
67        ("clung" . "cling")
68        ("clad" . "clothe")
69        ("came" . "come")
70        ("crept" . "creep")
71        ("crew" . "crow")
72        ("durst" . "dare")
73        ("dealt" . "deal")
74        ("dug" . "dig")
75        ("did" . "do") ("done" . "do")
76        ("drew" . "draw") ("drawn" . "draw")
77        ("dreamt" . "dream")
78        ("drank" . "drink") ("drunk" . "drink")
79        ("drove" . "drive") ("driven" . "drive")
80        ("dwelt" . "dwell")
81        ("ate" . "eat") ("eaten" . "eat")
82        ("fell" . "fall") ("fallen" . "fall")
83        ("fed" . "feed")
84        ("felt" . "feel")
85        ("fought" . "fight")
86        ("found" . "find")
87        ("fled" . "flee")
88        ("flung" . "fling")
89        ("flew" . "fly") ("flown" . "fly")
90        ("forbade" . "forbid") ("forbad" . "forbid") ("forbidden" . "forbid")
91        ("forgot" . "forget") ("forgotten" . "forget")
92        ("forgave" . "forgive") ("forgiven" . "forgive")
93        ("forsook" . "forsake") ("forsaken" . "forsake")
94        ("froze" . "freeze") ("frozen" . "freeze")
95        ("gelt" . "geld")
96        ("got" . "get") ("gotten" . "get")
97        ("gilt" . "gild")
98        ("girt" . "gird")
99        ("gave" . "give") ("given" . "give")
100        ("gnawn" . "gnaw")
101        ("went" . "go") ("gone" . "go")
102        ("graven" . "grave")
103        ("ground" . "grind")
104        ("gript" . "grip")
105        ("grew" . "grow") ("grown" . "grow")
106        ("hamstrung" . "hamstring")
107        ("hung" . "hang") ("hung" . "hang")
108        ("had" . "have")
109        ("heard" . "hear")
110        ("hove" . "heave")
111        ("hewn" . "hew")
112        ("hid" . "hide") ("hidden" . "hide")
113        ("held" . "hold")
114        ("inlaid" . "inlay")
115        ("kept" . "keep")
116        ("knelt" . "kneel")
117        ("knew" . "know") ("known" . "know")
118        ("laid" . "lay")
119        ("led" . "lead")
120        ("leant" . "lean")
121        ("leapt" . "leap")
122        ("learnt" . "learn")
123        ("left" . "leave")
124        ("lent" . "lend")
125        ("lay" . "lie") ("lain" . "lie")
126        ("lit" . "light")
127        ("lost" . "lose")
128        ("made" . "make")
129        ("meant" . "mean")
130        ("met" . "meet")
131        ("molten" . "melt")
132        ("misled" . "mislead")
133        ("mistook" . "mistake") ("mistaken" . "mistake")
134        ("misunderstood" . "misunderstand")
135        ("mowed" . "mow") ("mown" . "mow")
136        ("outdid" . "outdo") ("outdone" . "outdo")
137        ("outwent" . "outgo") ("outgone" . "outgo")
138        ("outgrew" . "outgrow") ("outgrown" . "outgrow")
139        ("outran" . "outrun")
140        ("overcame" . "overcome")
141        ("overdid" . "overdo") ("overdone" . "overdo")
142        ("overdrew" . "overdraw") ("overdrawn" . "overdraw")
143        ("overtook" . "overtake") ("overtaken" . "overtake")
144        ("overthrew" . "overthrow") ("overthrown" . "overthrow")
145        ("paid" . "pay")
146        ("pent" . "pen")
147        ("pled" . "plead")
148        ("proven" . "prove")
149        ("rent" . "rend")
150        ("repaid" . "repay")
151        ("retold" . "retell")
152        ("rewound" . "rewind")
153        ("rewrote" . "rewrite") ("rewritten" . "rewrite")
154        ("rode" . "ride") ("ridden" . "ride")
155        ("rang" . "ring") ("rung" . "ring")
156        ("rose" . "rise") ("risen" . "rise")
157        ("ran" . "run")
158        ("sawn" . "saw")
159        ("said" . "say")
160        ("saw" . "see") ("seen" . "see")
161        ("sought" . "seek")
162        ("sold" . "sell")
163        ("sent" . "send")
164        ("sewn" . "sew")
165        ("shook" . "shake") ("shaken" . "shake")
166        ("shaven" . "shave")
167        ("shorn" . "shear")
168        ("shone" . "shine") ("shone" . "shine")
169        ("shat" . "shit")
170        ("shod" . "shoe")
171        ("shot" . "shoot")
172        ("shown" . "show")
173        ("shrank" . "shrink") ("shrunk" . "shrink") ("shrunken" . "shrink")
174        ("shrove" . "shrive") ("shriven" . "shrive")
175        ("sang" . "sing") ("sung" . "sing")
176        ("sank" . "sink") ("sunk" . "sink") ("sunken" . "sink")
177        ("sat" . "sit")
178        ("slew" . "slay") ("slain" . "slay")
179        ("slept" . "sleep")
180        ("slid" . "slide")
181        ("slung" . "sling")
182        ("slunk" . "slink")
183        ("smelt" . "smell")
184        ("smote" . "smite") ("smitten" . "smite")
185        ("sown" . "sow")
186        ("spoke" . "speak") ("spoken" . "speak")
187        ("sped" . "speed")
188        ("spelt" . "spell")
189        ("spellbound" . "spellbind")
190        ("spent" . "spend")
191        ("spilt" . "spill")
192        ("spun" . "spin") ("span" . "spin")
193        ("spat" . "spit")
194        ("spoilt" . "spoil")
195        ("sprang" . "spring") ("sprung" . "spring")
196        ("stood" . "stand")
197        ("stove" . "stave")
198        ("stole" . "steal") ("stolen" . "steal")
199        ("stuck" . "stick")
200        ("stung" . "sting")
201        ("stank" . "stink") ("stunk" . "stink")
202        ("strewn" . "strew")
203        ("strode" . "stride") ("stridden" . "stride")
204        ("struck" . "strike") ("stricken" . "strike")
205        ("strung" . "string")
206        ("strove" . "strive") ("striven" . "strive")
207        ("swore" . "swear") ("sworn" . "swear")
208        ("swept" . "sweep")
209        ("swollen" . "swell")
210        ("swam" . "swim") ("swum" . "swim")
211        ("swung" . "swing")
212        ("took" . "take") ("taken" . "take")
213        ("taught" . "teach")
214        ("tore" . "tear") ("torn" . "tear")
215        ("telecasted" . "telecast")
216        ("told" . "tell")
217        ("thought" . "think")
218        ("throve" . "thrive") ("thriven" . "thrive")
219        ("threw" . "throw") ("thrown" . "throw")
220        ("thrust" . "thrust") ("thrust" . "thrust")
221        ("trod" . "tread") ("trodden" . "tread")
222        ("unbent" . "unbend")
223        ("unbound" . "unbind")
224        ("underwent" . "undergo") ("undergone" . "undergo")
225        ("understood" . "understand")
226        ("undertook" . "undertake") ("undertaken" . "undertake")
227        ("undid" . "undo") ("undone" . "undo")
228        ("woke" . "wake") ("woken" . "wake")
229        ("wore" . "wear") ("worn" . "wear")
230        ("wove" . "weave") ("woven" . "weave")
231        ("wept" . "weep")
232        ("won" . "win")
233        ("wound" . "wind")
234        ("withdrew" . "withdraw") ("withdrawn" . "withdraw")
235        ("withheld" . "withhold")
236        ("withstood" . "withstand")
237        ("wrought" . "work")
238        ("wrung" . "wring")
239        ("wrote" . "write") ("written" . "write")
240;;
241        ("does" . "do") ("did" "do")
242        ("could" . "can")
243        ("would" . "will")
244        ("should" . "shall")
245        ("might" . "may")
246;       ("ain't" "be")
247        ))
248
249(defvar nt-english-irreg-nouns-list
250      '(
251        ("children" . "child")
252        ("boxen" . "box") ("oxen" . "ox")
253        ("men" . "man") ("women" . "woman")
254        ("geese" . "goose") ("teeth" . "tooth") ("feet" . "foot") ("mice" . "mouse")
255                                        ; ("those" . "that") ("these" . "this")
256        ))
257
258(defun nt:english-guess-original-form (word)
259  (catch 'block
260    (cond
261     ((null word) (throw 'block nil))
262     ((string= word "") (throw 'block nil))
263     (t nil)
264     )
265   
266    (let* ((word-len (length word))
267           (body-1 nil) (suffix-1 nil)
268           (body-2 nil) (suffix-2 nil)
269           (body-3 nil) (suffix-3 nil)
270           (body-4 nil) (suffix-4 nil) (tmp))
271
272      (setq body-1 (substring word 0 -1))
273      (setq suffix-1 (substring word -1 nil))
274
275      (if (>= word-len 2)
276          (progn
277           (setq body-2 (substring word 0 -2))
278           (setq suffix-2 (substring word -2 nil))
279           
280           (if (>= word-len 3)
281               (progn
282                (setq body-3 (substring word 0 -3))
283                (setq suffix-3 (substring word -3 nil))
284               
285                (if (>= word-len 4)
286                    (progn
287                     (setq body-4 (substring word 0 -4))
288                     (setq suffix-4 (substring word -4 nil))
289                     ))
290                ))
291           ))
292     
293      ;; irregular verbs/nouns first.
294      (setq tmp (cdr (assoc word nt-english-irreg-verbs-list)))
295      (if tmp (throw 'block (list tmp)))
296      (setq tmp (cdr (assoc word nt-english-irreg-nouns-list)))
297      (if tmp (throw 'block (list tmp)))
298     
299      (cond
300       ((string= suffix-3 "ves") (list (concat body-3 "fe") (concat body-3 "f") body-1)) ;; -f > -ves
301       ((string= suffix-3 "ies") (list (concat body-3 "y") body-1)) ;; -y > -ies
302       ((string= suffix-3 "oes") (list body-2)) ;; o > o(e)s
303       ((string= suffix-2 "es") (list (concat body-2 "is") body-1 body-2)) ;; (e)s, -is
304       ((string= suffix-1 "s") (list body-1))
305       ((string= suffix-1 "i") (list (concat body-1 "us"))) ;; -us > -i
306       ((string= suffix-1 "a") (list (concat body-1 "um") (concat body-1 "on"))) ;; -um > -a
307       ((string= suffix-2 "ae") (list body-1)) ;; -a > -ae
308       
309                                        ; verb -ed
310       ((string= suffix-4 "nned") (list body-3)) ;; -n > -nned
311       ((string= suffix-4 "dded") (list body-3)) ;; -d > -dded
312       ((string= suffix-4 "tted") (list body-3)) ;; -t > -tted
313       ((string= suffix-4 "pped") (list body-3)) ;; -p > -pped
314       ((string= suffix-4 "gged") (list body-3)) ;; -g > -gged
315       ((string= suffix-4 "cked") (list body-2 body-3)) ;; -c[k] > -cked
316       ((string= suffix-3 "ied") (list (concat body-3 "y"))) ;; -�Ҳ�+y > -ied ��-���+y > yed
317       ((string= suffix-2 "ed") (list body-1 body-2)) ;; (default) -(e) > -ed
318       ((string= suffix-2 "id") (list (concat body-2 "y"))) ;; pay > paid, say > said
319                                        ; verb -ing
320       ((string= suffix-4 "ying") (list (concat body-4 "ie") body-3))
321       ((string= suffix-3 "ing") (list (concat body-3 "e") body-3))
322
323       ((string= suffix-3 "n't") (list body-3))
324       ((string= suffix-3 "'ll") (list body-3))
325       ((string= suffix-3 "'re") (list body-3))
326       ((string= suffix-2 "'m") (list body-2))
327       ((string= suffix-2 "'d") (list body-2))
328       ((string= suffix-2 "'s") (list body-2))
329     
330       (t nil) ;; ������ʤ���������������
331       ) ;cond
332      ) ;let
333    );caught
334  )
335
336(defmacro nt:skipit-p (word)
337  `(if (member (downcase ,word) nt-skip-words) t nil))
338
339;;; nt-english.el ends here
Note: See TracBrowser for help on using the browser.