Jump to content

N-grams: Difference between revisions

1,560 bytes added ,  1 month ago
Add Refal
(Add SETL)
(Add Refal)
Line 965:
<pre>("IV"=>2,"T "=>1,"VE"=>2,"E "=>1,"LE"=>1,"AN"=>1,"LI"=>2,"ND"=>1,"ET"=>1," L"=>2," A"=>1,"D "=>1).Bag
("ET "=>1,"AND"=>1,"LIV"=>2," LI"=>1,"ND "=>1," LE"=>1,"IVE"=>2,"E A"=>1,"VE "=>1,"T L"=>1,"D L"=>1,"LET"=>1," AN"=>1).Bag</pre>
 
=={{header|Refal}}==
<syntaxhighlight lang="refal">$ENTRY Go {
, 'LIVE AND LET LIVE': e.Str
= <ShowNgrams 2 e.Str>
<ShowNgrams 3 e.Str>
<ShowNgrams 4 e.Str>;
};
 
ShowNgrams {
s.N e.Str =
<Prout <Symb s.N> '-grams of "' e.Str '":'>
<ShowLines 5 <Ngrams s.N e.Str>>
<Prout>;
};
 
ShowLines {
s.N = ;
s.N e.X, <First s.N e.X>: (e.L) e.R =
<Prout <Each DispNgram e.L>> <ShowLines s.N e.R>;
};
 
Each {
s.F = ;
s.F t.I e.Is = <Mu s.F t.I> <Each s.F e.Is>;
};
 
DispNgram {
((e.S) s.C) = '(' e.S ') - ' <Symb s.C> ' ';
};
 
Ngrams {
s.N e.Str = <Count () <Groups s.N e.Str>>;
};
 
Groups {
s.N e.X, <Lenw e.X>: s.L e.X, <Compare s.L s.N>: {
'-' = ;
s.C, <First s.N e.X>: (e.G) e.R, e.X: s.Z e.Y =
(e.G) <Groups s.N e.Y>;
}
};
 
Count {
(e.Cs) = e.Cs;
(e.Cs) t.I e.Is = <Count (<Inc (e.Cs) t.I>) e.Is>;
};
 
Inc {
(e.X (t.I s.C) e.Y) t.I = e.X (t.I <+ 1 s.C>) e.Y;
(e.X) t.I = e.X (t.I 1);
};</syntaxhighlight>
{{out}}
<pre>2-grams of "LIVE AND LET LIVE":
(LI) - 2 (IV) - 2 (VE) - 2 (E ) - 1 ( A) - 1
(AN) - 1 (ND) - 1 (D ) - 1 ( L) - 2 (LE) - 1
(ET) - 1 (T ) - 1
 
3-grams of "LIVE AND LET LIVE":
(LIV) - 2 (IVE) - 2 (VE ) - 1 (E A) - 1 ( AN) - 1
(AND) - 1 (ND ) - 1 (D L) - 1 ( LE) - 1 (LET) - 1
(ET ) - 1 (T L) - 1 ( LI) - 1
 
4-grams of "LIVE AND LET LIVE":
(LIVE) - 2 (IVE ) - 1 (VE A) - 1 (E AN) - 1 ( AND) - 1
(AND ) - 1 (ND L) - 1 (D LE) - 1 ( LET) - 1 (LET ) - 1
(ET L) - 1 (T LI) - 1 ( LIV) - 1</pre>
 
=={{header|RPL}}==
2,117

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.