Bug fixes for lcs.diff2html; xml.writer
[factor/jcg.git] / basis / porter-stemmer / porter-stemmer-docs.factor
blobe16190f86119e050622b38edfacaea163402b44b
1 IN: porter-stemmer
2 USING: help.markup help.syntax ;
4 HELP: step1a
5 { $values { "str" "a string" } { "newstr" "a new string" } }
6 { $description "Gets rid of plurals." }
7 { $examples
8     { $table
9         { "Input:" "Output:" }
10         { "caresses" "caress" }
11         { "ponies" "poni" }
12         { "ties" "ti" }
13         { "caress" "caress" }
14         { "cats" "cat" }
15     }
16 } ;
18 HELP: step1b
19 { $values { "str" "a string" } { "newstr" "a new string" } }
20 { $description "Gets rid of \"-ed\" and \"-ing\" suffixes." }
21 { $examples
22     { $table
23         { "Input:" "Output:" }
24         { "feed"  "feed" }
25         { "agreed"  "agree" }
26         { "disabled"  "disable" }
27         { "matting"  "mat" }
28         { "mating"  "mate" }
29         { "meeting"  "meet" }
30         { "milling"  "mill" }
31         { "messing"  "mess" }
32         { "meetings"  "meet" }
33     }
34 } ;
36 HELP: step1c
37 { $values { "str" "a string" } { "newstr" "a new string" } }
38 { $description "Turns a terminal y to i when there is another vowel in the stem." } ;
40 HELP: step2
41 { $values { "str" "a string" } { "newstr" "a new string" } }
42 { $description "Maps double suffices to single ones. so -ization maps to -ize etc. note that the string before the suffix must give positive " { $link consonant-seq } "." } ;
44 HELP: step3
45 { $values { "str" "a string" } { "newstr" "a new string" } }
46 { $description "Deals with -c-, -full, -ness, etc. Similar strategy to " { $link step2 } "." } ;
48 HELP: step5
49 { $values { "str" "a string" } { "newstr" "a new string" } }
50 { $description "Removes a final -e and changes a final -ll to -l if " { $link consonant-seq } " is greater than 1," } ;
52 HELP: stem
53 { $values { "str" "a string" } { "newstr" "a new string" } }
54 { $description "Applies the Porter stemming algorithm to the input string." } ;
56 ARTICLE: "porter-stemmer" "Porter stemming algorithm"
57 "The help system uses the Porter stemming algorithm to normalize words when building the full-text search index."
58 $nl
59 "The Factor implementation of the algorithm is based on the Common Lisp version, which was hand-translated from ANSI C by Steven M. Haflich. The original ANSI C was written by Martin Porter."
60 $nl
61 "A detailed description of the algorithm, along with implementations in various languages, can be at in " { $url "http://www.tartarus.org/~martin/PorterStemmer" } "."
62 $nl
63 "The main word of the algorithm takes an English word as input and outputs its stem:"
64 { $subsection stem }
65 "The algorithm consists of a number of steps:"
66 { $subsection step1a }
67 { $subsection step1b }
68 { $subsection step1c }
69 { $subsection step2 }
70 { $subsection step3 }
71 { $subsection step4 }
72 { $subsection step5 } ;
74 ABOUT: "porter-stemmer"