Sensible a la palabra de sustitución (algoritmo DFA), antes de sustituir el sufijo que contiene la palabra palabras sensibles, o reemplazar palabras específicas

DFA

Que DFA determinista Autómata Finito, que es autómatas finitos determinado. En el algoritmo de filtro de texto, DFA es un mejor algoritmo.

¿Qué es exactamente el principio de la misma?

Hay algunas palabras sensibles: Japonesa, demonios japoneses, Mao Zedong.

Primero: Día consulta ---> {} esto, consulta este ---> {hombre, diablo}, consulta de personas ---> {null}, fantasma consulta ---> {sub}. Formar la siguiente estructura:

 

         Aquí extendemos esta tabla:

 

De esta manera vamos a construir nuestro tesauro sensibles se convirtió en un árbol, de modo que cuando juzgamos si una palabra es una palabra sensible reduciendo en gran medida la recuperación gama coincidente. Por ejemplo, queremos juzgar a los japoneses, podemos confirmar que, de acuerdo a la primera palabra que ser recuperados es el árbol, y después ser recuperado en este árbol.

realización

HashSet en las palabras sensibles, el algoritmo DFA para construir un modelo, por ejemplo:

  En {= 
iSend = 0
país <br> {=
iSend = 1
persona = {iSend = 0
China 1} = {iSend =
}
M {=
iSend = 0
personas {=
iSend = 1
}
}
}
}
cinco {=
iSend = 0
estrellas = {
iSend 0 =
Rojo = {
iSend = 0
{Flag =
iSend =. 1
}
}
}
}

iSend, determina si la palabra es la última palabra de la palabra. Si representa el final de las palabras sensibles, establecer el indicador iSend = 1, establecer de otro modo la bandera iSend = 0.

a continuación, ponemos en práctica un ejemplo, se requiere:

  • El escudo puede ser palabras sueltas. Por ejemplo, la palabra sensible "agradable", el original "U son un buen tipo", la salida "T son un tipo XXXX";
  • Para proteger a más de una palabra. Por ejemplo, la palabra sensible "agradable", "sol", descripción "un buen día este tipo con un sol brillante", la salida "Tal día XXXX XXX con un brillante"
  • Que contiene palabras sensibles que pueden reemplazar una palabra como un prefijo, por ejemplo, el original "U son muy amables", la salida "T son tan XXXXXXXX"
  • Se puede reemplazar con palabras sensibles como sufijos de palabras. Anteriormente.
  • Será capaz de especificar la palabra sensible se sustituye con las palabras especificadas. Por ejemplo, el original "objeción es mala, una cosa mejor que hacer", la salida "objeción es no bueno, una cosa que hacer más bueno"

Fuente en https://github.com/Ivyvivid/algorithm

Éstos son sólo implementación simple, el rendimiento puede optimizarse aún más. Hay una solución que no esperaba, de acuerdo con puntuacion símbolos de división, en el montaje de la cadena hacia atrás, puntuacion desaparecer . Espero que alguien pueda resolver.

Supongo que te gusta

Origin www.cnblogs.com/ivy-xu/p/12601504.html
Recomendado
Clasificación