Способ классификации слов с ошибками в группах по правильному слову?
У меня есть огромный список стран, по которым мне нужно классифицировать их по группам в соответствии с их первоначальным названием. На самом деле есть много орфографических ошибок, но есть много написанных на других языках. Например
ТАИЛАНД ТУНИС ТУНИС ТУНИС ТУРСКИЕ ТУРЦИЯ ТУРЦИЯ ТАИЛАНД ИТАЛИЯ ИТАЛИЯ ИТАЛИЯ ИТАЛИЯ
Как я могу объединить их в группы легко? так как классифицировать их вручную - самая большая боль за всю историю. Я думал о способе чтения строк или символов, но я не нашел эффективного способа сделать это. Я могу работать с 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"
Вот еще один.