Text completion: Difference between revisions
Content added Content deleted
(→{{header|Nim}}: insert Mathematica solution) |
(Text completion en FreeBASIC) |
||
Line 288: | Line 288: | ||
{ "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|FreeBASIC}}== |
|||
This uses '[http://wiki.puzzlers.org/pub/wordlists/unixdict.txt unixdict]' and the [https://www.rosettacode.org/wiki/Levenshtein_distance#FreeBASIC Levenshtein distance] algorithm to test for similarity. |
|||
<lang freebasic>#define MIN(a, b) iif((a) < (b), (a), (b)) |
|||
Dim As String palabra = "complition" |
|||
Dim As Integer longitud = Len(palabra) |
|||
Open "unixdict.txt" For Input As #1 |
|||
Dim As String cStr, wordList() |
|||
Dim As Integer n, p = 0, posic = 0 |
|||
Do While Not Eof(1) |
|||
Line Input #1, cStr |
|||
p += 1 |
|||
If Len(cStr) > 8 Then |
|||
posic += 1 |
|||
Redim Preserve wordList(posic) |
|||
wordList(posic) = cStr |
|||
End If |
|||
Loop |
|||
Close #1 |
|||
Dim As String lev(4) |
|||
For n = Lbound(wordList) To Ubound(wordList) |
|||
Dim As Integer ld = levenshtein(palabra, wordList(n)) |
|||
If ld < 4 Then lev(ld) &= wordList(n) & " " |
|||
Next n |
|||
Print "Input word: "; palabra |
|||
For n = 1 To 3 |
|||
Dim As Integer semejanza = (longitud - n) * 100 / longitud |
|||
Print Using !"\nWords at Levenshtein distance of # (##% similarity):"; n; semejanza |
|||
Print lev(n); " "; |
|||
Print |
|||
Next n |
|||
Sleep</lang> |
|||
{{out}} |
|||
<pre>Input word: complition |
|||
Words at Levenshtein distance of 1 (90% similarity): |
|||
completion |
|||
Words at Levenshtein distance of 2 (80% similarity): |
|||
coalition competition compilation complexion composition |
|||
Words at Levenshtein distance of 3 (70% similarity): |
|||
cognition collision combustion commotion companion compassion complicity compulsion compunction computation condition contrition demolition incompletion</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |