youtubers tesis sobre sirve resumida que para investigaciones investigacion historia caracteristicas r text character string-matching agrep

tesis - de acuerdo: solo devolver las mejores coincidencias



tesis sobre youtube pdf (2)

Estoy usando la función ''acepp'' en R, que devuelve un vector de coincidencias. Me gustaría una función similar a la que está de acuerdo que solo devuelva la mejor coincidencia, o las mejores coincidencias si hay empates. Actualmente, estoy haciendo esto usando la función ''sdist ()'' del paquete ''cba'' en cada elemento del vector resultante, pero esto parece muy redundante.

/ edit: aquí está la función que estoy usando actualmente. Me gustaría acelerarlo, ya que parece redundante calcular la distancia dos veces.

library(cba) word <- ''test'' words <- c(''Teest'',''teeeest'',''New York City'',''yeast'',''text'',''Test'') ClosestMatch <- function(string,StringVector) { matches <- agrep(string,StringVector,value=TRUE) distance <- sdists(string,matches,method = "ow",weight = c(1, 0, 2)) matches <- data.frame(matches,as.numeric(distance)) matches <- subset(matches,distance==min(distance)) as.character(matches$matches) } ClosestMatch(word,words)


El paquete RecordLinkage se eliminó de CRAN, use stringdist en su lugar:

library(stringdist) ClosestMatch2 = function(string, stringVector){ stringVector[amatch(string, stringVector, maxDist=Inf)] }


El paquete de acuerdo utiliza las distancias de Levenshtein para coincidir con las cadenas. El paquete RecordLinkage tiene una función C para calcular la Distancia Levenshtein, que se puede utilizar directamente para acelerar su cálculo. Aquí hay una función ClosestMatch reelaborada que es aproximadamente 10 veces más rápida

library(RecordLinkage) ClosestMatch2 = function(string, stringVector){ distance = levenshteinSim(string, stringVector); stringVector[distance == max(distance)] }