N-grams: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add APL) |
Not a robot (talk | contribs) (Add SETL) |
||
Line 1,014: | Line 1,014: | ||
2: { "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" } |
2: { "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" } |
||
1: { "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" } |
1: { "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|SETL}}== |
|||
<syntaxhighlight lang="setl">program find_ngrams; |
|||
input := "LIVE AND LET LIVE"; |
|||
loop for size in [2,3,4] do |
|||
print(str size+"-grams of '"+input+"':"); |
|||
ng := ngrams(input, size); |
|||
col := 0; |
|||
loop for count = ng(ngram) do |
|||
nprint(rpad("'" + ngram + "': " + str count, 10)); |
|||
if (col +:= 1) mod 8 = 0 then print; end if; |
|||
end loop; |
|||
print; |
|||
print; |
|||
end loop; |
|||
proc ngrams(input, size); |
|||
ng := {}; |
|||
loop for i in [1..#input-size+1] do |
|||
ng(input(i..i+size-1)) +:= 1; |
|||
end loop; |
|||
return ng; |
|||
end proc; |
|||
end program;</syntaxhighlight> |
|||
{{out}} |
|||
<pre>2-grams of 'LIVE AND LET LIVE': |
|||
' A': 1 ' L': 2 'AN': 1 'D ': 1 'E ': 1 'ET': 1 'IV': 2 'LE': 1 |
|||
'LI': 2 'ND': 1 'T ': 1 'VE': 2 |
|||
3-grams of 'LIVE AND LET LIVE': |
|||
' AN': 1 ' LE': 1 ' LI': 1 'AND': 1 'D L': 1 'E A': 1 'ET ': 1 'IVE': 2 |
|||
'LET': 1 'LIV': 2 'ND ': 1 'T L': 1 'VE ': 1 |
|||
4-grams of 'LIVE AND LET LIVE': |
|||
' AND': 1 ' LET': 1 ' LIV': 1 'AND ': 1 'D LE': 1 'E AN': 1 'ET L': 1 'IVE ': 1 |
|||
'LET ': 1 'LIVE': 2 'ND L': 1 'T LI': 1 'VE A': 1 |
|||
</pre> |
</pre> |
||