Text completion: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (Thundergnat moved page Text Completion to Text completion: Follow normal task title capitalization policy) |
|||
Line 477: | Line 477: | ||
["collection", "combination", "commission", "comparison", "compensation", "competing", "competitive", "complaint", "complete", "completed", "completely", "complexity", "compliance", "compliant", "compression", "computing", "conclusion", "conditions", "connection", "convention", "conviction", "cooperation", "corporation", "correction", "correlation", "corruption", "nomination", "opinion", "opposition", "option", "pollution", "population", "position", "simulation", "solution"] |
["collection", "combination", "commission", "comparison", "compensation", "competing", "competitive", "complaint", "complete", "completed", "completely", "complexity", "compliance", "compliant", "compression", "computing", "conclusion", "conditions", "connection", "convention", "conviction", "cooperation", "corporation", "correction", "correlation", "corruption", "nomination", "opinion", "opposition", "option", "pollution", "population", "position", "simulation", "solution"] |
||
</pre> |
</pre> |
||
=={{header|Nim}}== |
|||
{{trans|Go}} |
|||
We use the function <code>editDistance</code> from the <code>std/editdistance</code> module to get the Levenshtein distance (computed by considering in Unicode codepoints). |
|||
<lang Nim>import std/editdistance, sequtils, strformat, strutils |
|||
let search = "complition" |
|||
let words = toSeq("unixdict.txt".lines) |
|||
var lev: array[4, seq[string]] |
|||
for word in words: |
|||
let ld = editDistance(search, word) |
|||
if ld < 4: |
|||
lev[ld].add word |
|||
echo &"Input word: {search}\n" |
|||
let length = float(search.len) |
|||
for i in 0..3: |
|||
if lev[i].len == 0: continue # No result. |
|||
let similarity = (length - float(i)) * 100 / length |
|||
echo &"Words which are {similarity:4.1f}% similar:" |
|||
echo lev[i].join(" ") |
|||
echo()</lang> |
|||
{{out}} |
|||
<pre>Input word: complition |
|||
Words which are 90.0% similar: |
|||
completion |
|||
Words which are 80.0% similar: |
|||
coalition competition compilation complexion composition |
|||
Words which are 70.0% similar: |
|||
cognition collision combustion commotion companion compassion complain complicity compton compulsion compunction computation condition contrition demolition incompletion volition</pre> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |