Question: interrogate the dictionary

i_before_e$.mw

My Homies

I'm trying to find words which contradict the rule "i before e except after c". according to BBC program "QI" there are 923 exceptions, but below i get less than that. i guess its only as good as the dictionary, the 'inbuilt' has only 25k words but 'ospd3' (with 80k words) seems to stop before letter Q (with my sledgehammer code) when there are more words out there like "weird", "veil" and "reciept".

with(StringTools); with(PatternDictionary); bid := Create(ospd3);
words :=([seq])(LowerCase(Get(bid, i)), i = 1 .. Size(bid)-1);
tot := 0;
for n to nops(words) do
C := searchtext(cie, words[n]); E := searchtext(ei, words[n]);
if`and`(C = 0, E = 0) then next else tot := tot+1;
print([tot, words[n]]) end if
end do

Please Wait...