Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 56998|Respuesta: 2

[Fuente] Implementa el algoritmo de similitud de cadenas en C#

[Copiar enlace]
Publicado en 23/4/2019 12:59:18 | | | |
Recientemente, hay un problema que debe abordarse, es decir, comparar la cadena introducida por el usuario con la cadena obtenida por el sistema; si el error no es muy grande, el sistema considerará que cumple con los requisitos y es mejor establecer un umbral.
Al realizar el reconocimiento CAPTCHA, necesitas comparar la similitud de los códigos de caracteres y usar el "algoritmo de distancia de edición" para hacer un registro del principio y la implementación en C#.

Según la Enciclopedia Baidu:

La distancia de edición, también conocida como distancia de Levenshtein (también conocida como distancia de edición), es el número mínimo de ediciones necesarias para cambiar de una a otra entre dos cadenas, y cuanto mayor es la distancia, más diferentes son. Las operaciones de edición con permisos incluyen reemplazar un carácter por otro, insertar un carácter y eliminar un personaje.

Por ejemplo, convierte la palabra gatita en sentado:

Sentado (K→s)

Sittin (E→I)

sentado (→G)

El científico ruso Vladimir Levenshtein propuso este concepto en 1965. De ahí el nombre de Distancia Levenshtein.

Por ejemplo

Si str1="iván", str2="iván", entonces se calcula que es igual a 0. No convertido. similitud=1-0/Math.Max(str1.longitud,str2.longitud)=1
Si str1="ivan1", str2="ivan2", entonces se calcula que es igual a 1. El "1" de str1 se convierte en "2", convierte un carácter, así que la distancia es 1, similitud = 1-1/Math.Max(str1.longitud, str2.longitud) = 0,8

Aplicación:

  • Análisis de ADN
  • Corrector ortográfico
  • Reconocimiento de voz
  • Detección de plagio



El algoritmo está implementado en C#:

Código de prueba:






A partir de los resultados de las pruebas, se concluye queespaciooPuntuaciónPosición de las cuerdasDiferentes ciudadesResultados que afectan la similitudPor lo tanto, al comparar el reconocimiento de cadenas, se recomienda eliminar todos los espacios y símbolos especiales de la cadena antes de llamar al algoritmo

Recursos:El inicio de sesión del hipervínculo es visible.

En GitHub también hay una biblioteca para comparaciones de similitudes de cadenas en C#

FuzzyString es una biblioteca desarrollada para mi trabajo diario que coordina convenciones de nombres entre diferentes modelos de cuadrícula. He eliminado el código específico del sistema eléctrico y he montado lo que puede usarse eficazmente como una extensión de cadena para determinar la igualdad aproximada entre las dos cadenas. Todos los algoritmos usados aquí han sido extraídos de fuentes en línea, convertidos a C# y compilados en esta biblioteca. He encontrado varias otras implementaciones de código abierto similares que no están disponibles para . NET / C#。 Añadir *.dll a tu proyecto te dará acceso a esta extensión y a las extensiones individuales bajo la extensión ApproximatelyEquals().



Dirección:El inicio de sesión del hipervínculo es visible.

Instalación de Nuget:

Algoritmos incluidos en este proyecto:

  • Distancia de Hamming
  • Distancia de Jaccard
  • Distancia de Jaro
  • Distancia Jaro-Winkler
  • Distancia de Levenshtein
  • El público más largo
  • La subcadena común más larga de la subsecuencia
  • Coeficiente de solapamiento
  • Similitud entre Ratcliff y Obershelp
  • Distancia de Sorensen-Dice
  • Coeficiente de Tanimoto



Uso:


Resultado:



(Fin)




Anterior:El arte de probar software 3ª edición pdf
Próximo:"Ocho competencias de analistas de datos" no encripta el curso completo
Publicado en 6/5/2019 13:11:34 |
El conocimiento viene
Publicado en 7/9/2021 15:01:05 |
¿Es posible ver el código después de responder?
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com