N-grams: Difference between revisions

m (RPL: add section)
Line 202:
LIVE: 2
</pre>
</pre>
 
=={{header|Julia}}==
<syntaxhighlight lang="julia">function ngrams(str::AbstractString, n; uppercaseinput = true)
s = uppercaseinput ? uppercase(str) : str
unique([(ng, count(ng, s)) for ng in [SubString(s, i:i+n-1) for i=1:length(s)-n+1]])
end
 
function eightcolumns(arr)
for (i, elem) in pairs(arr)
print(lpad(elem, 10), i % 8 == 0 ? "\n" : "")
end
println("\n")
end
const s = "Live and let live"
 
ngrams(s, 1) |> eightcolumns
ngrams(s, 2) |> eightcolumns
ngrams(s, 2, uppercaseinput = false) |> eightcolumns
</syntaxhighlight>{{out}}
<pre>
("L", 3) ("I", 2) ("V", 2) ("E", 3) (" ", 3) ("A", 1) ("N", 1) ("D", 1)
("T", 1)
 
("LI", 2) ("IV", 2) ("VE", 2) ("E ", 1) (" A", 1) ("AN", 1) ("ND", 1) ("D ", 1)
(" L", 2) ("LE", 1) ("ET", 1) ("T ", 1)
 
("Li", 1) ("iv", 2) ("ve", 2) ("e ", 1) (" a", 1) ("an", 1) ("nd", 1) ("d ", 1)
(" l", 2) ("le", 1) ("et", 1) ("t ", 1) ("li", 1)
</pre>
 
4,105

edits