1
문자열에있는 사람들의 고유 이름을 계산해야하지만 약간의 오타가있을 수 있다는 점을 고려하여 문제를 다루고 있습니다. 내 생각은 문자열이 특정 임계 값 (예 : 2보다 아래의 levenshtein 거리)을 같게 설정했습니다. 지금은 문자열 거리를 계산할 수 있지만 입력 문자열에 어떤 수정도 가하지 않으면 고유 한 이름이 올바른 숫자가됩니다.R : 거리 측정 값에 의한 올바른 문자열 (stringdistmatrix)
library(stringdist);library(stringr)
names<-"Michael, Liz, Miichael, Maria"
names_split<-strsplit(names, ", ")[[1]]
stringdistmatrix(names_split,names_split)
[,1] [,2] [,3] [,4]
[1,] 0 6 1 5
[2,] 6 0 7 4
[3,] 1 7 0 6
[4,] 5 4 6 0
(number_of_people<-str_count(names, ",")+1)
[1] 4
NUMBER_OF_PEOPLE의 올바른 값은 "마이클은" "Miichael"로 대체 될 경우 물론, 3
나는 유니크 이름의 수에만 관심으로, 나는 걱정하지 오전,해야합니다 또는 다른 방향 라운드.
문제가 잘 정의되어 있는지 확실하지 않습니다. Maria, Mara, Sara, Sarah와 같은 이름을 생각해보십시오. Maria와 Sarah는 2보다 큰 거리를 가지고 있지만 각각의 연속적인 쌍에는 거리 1이 있습니다. 또한 대부분의 사람들은 그 이름 목록에 3 개의 고유 한 이름이 있다고 생각할 것입니다. –