Способ классификации слов с ошибками в группах по правильному слову?

У меня есть огромный список стран, по которым мне нужно классифицировать их по группам в соответствии с их первоначальным названием. На самом деле есть много орфографических ошибок, но есть много написанных на других языках. Например

ТАИЛАНД ТУНИС ТУНИС ТУНИС ТУРСКИЕ ТУРЦИЯ ТУРЦИЯ ТАИЛАНД ИТАЛИЯ ИТАЛИЯ ИТАЛИЯ ИТАЛИЯ

Как я могу объединить их в группы легко? так как классифицировать их вручную - самая большая боль за всю историю. Я думал о способе чтения строк или символов, но я не нашел эффективного способа сделать это. Я могу работать с R и C/C++.

Буду очень признателен за помощь!

Большое спасибо за Вашу помощь!!

1 ответ

Вот один из подходов:

x <- trimws(readLines(n=11))
THAILAND 
TUNESIE 
TUNIS 
TUNISIE 
TURCQUIE 
TURKIJE 
TURQUIE 
Tailand 
italie 
italien 
italy
m <- adist(x, x, ignore.case = T); colnames(m) <- x; rownames(m) <- x
hc <- hclust(as.dist(m), method="average")
plot(hc); rect.hclust(hc, h=3.8)
split(x, cutree(hc, h=3.8))
# $`1`
# [1] "THAILAND" "Tailand" 
# 
# $`2`
# [1] "TUNESIE" "TUNIS"   "TUNISIE"
# 
# $`3`
# [1] "TURCQUIE" "TURKIJE"  "TURQUIE" 
# 
# $`4`
# [1] "italie"  "italien" "italy" 

Вот еще один.

Другие вопросы по тегам