c# - lematizacion - lematizar online
Analizar texto(lematizaciĆ³n, editar distancia) (2)
Necesito analizar el texto para que exista en las palabras prohibidas. Supongamos que la lista negra es la palabra: "Prohibir". La palabra tiene muchas formas. En el texto, la palabra puede ser, por ejemplo: "prohibido", "prohibido", "prohibido". Para llevar la palabra a la forma inicial, utilizo una lematización de proceso. ¿Tus sugerencias?
¿Qué hay de los errores tipográficos?
Por ejemplo: "F0rb1d". Creo que use damerau-Levenshtein u otro. Usted sugerencias?
Y qué pasa si el texto está escrito de la siguiente manera :
"ForbiddenInformation.Privatecorrespondence de la compañía". O "F0rb1dden1nformation.Privatecorresp0ndenceofthec0mpany". (sí, sin espacios en blanco)
¿Cómo resolver este problema?
Algoritmo preferiblemente rápido, porque el texto se procesa en tiempo real.
Y tal vez, ¿cuáles son algunos consejos para mejorar el rendimiento (cómo almacenar, etc.)?
Lo siento por mi ingles. Gracias.
hay dos posibles soluciones por lo que sé de algoritmos.
Podría tratar de usar la programación dinámica, LCS (subsecuencia común más larga). Buscará texto original para la palabra deseada como patrón, creo que es O (mn):
http://en.wikipedia.org/wiki/Longest_common_subsequence_problem http://www.ics.uci.edu/~eppstein/161/960229.html
Aunque lo más fácil sería usar el algoritmo de búsqueda de texto. Lo mejor que sé es KMP y es O (n). Para la comparación de caracteres, puedes agruparlos en conjuntos como {i I l (L) 1}, {o O 0} y así sucesivamente. Sin embargo, puede modificar esto para que no coincida con todas las letras (prohibir -> forbad).
http://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm
Entonces, ahora puedes comparar los beneficios de estos dos y tu sugerencia.
También puede usar RegEx Matches para buscar palabras. http://www.c-sharpcorner.com/uploadfile/prasad_1/regexppsd12062005021717am/regexppsd.aspx