Procesamiento del lenguaje natural: ¿Cuáles son algunos métodos efectivos para detectar / calificar cadenas que pueden contener palabras profanas / ofensivas?

Los kits de herramientas de modelado de idiomas son útiles para rectificar texto mal formateado. el modelado de lenguaje utiliza el enfoque de n-gramas. Algunas de las herramientas de modelado de idiomas populares son

  1. http://www.speech.cs.cmu.edu/SLM…
  2. http://www-speech.sri.com/projec…
  3. http://alias-i.com/lingpipe/demo…

El segundo enfoque es la distancia de edición, Secondstring (http: //secondstring.sourceforge….) es uno de los juegos de herramientas más populares para editar la distancia.
Lucene / solr también admite el corrector ortográfico utilizando la distancia de edición y el índice de caracteres n-gram para el corrector ortográfico. En la indexación de caracteres de N-gram, cada palabra se divide en caracteres de n-gram, por ejemplo, en tri-gramos ‘lucene’ se divide como ‘luc’, ‘uce’. ‘Cen’, ‘ene’ y estos trigramas se usan para auto sugiriendo las palabras similares. Para obtener más información relacionada con la sugerencia automática basada en el índice n-gram, consulte los enlaces http://wiki.apache.org/jakarta-l… y http://www.lucidimagination.com/…

No hay otras respuestas aquí, así que intentaré hacer que la pelota ruede con mi (muy) limitado conocimiento de IR.

(Si el método que propongo es incorrecto o defectuoso, hágamelo saber)

Para algunos problemas de clasificación con dominios finitos y relativamente pequeños, el mejor método no es solo un diccionario, es un gran diccionario que alguien más ha compilado: f.ex http://www.cs.cmu.edu/~biglou/re

Si está buscando algo solo un poco más elegante que eso, la distancia de edición puede ser útil, es decir, verifique si la distancia de edición de cada uno de los n-gramas (para n = 1, 2, 3) en su documento es dentro de un umbral de cada una de las palabras de maldición en el diccionario (lo que sea). Es posible que desee tener en cuenta el hecho de que las palabras legítimas pueden estar dentro de una distancia de edición de una palabra en el diccionario, así como mantener un diccionario separado de palabras seguras en la lista blanca que puedan ignorarse.

Por supuesto, este enfoque de distancia de edición total es increíblemente ineficiente para el procesamiento en línea, pero debería ser capaz de ayudarlo a comenzar el procesamiento fuera de línea. Tiene la ventaja de ser increíblemente fácil de codificar.

Comience con un diccionario conocido de palabras profanas / abusivas. Ahora intente hacer coincidir las siguientes consideraciones:

  • Editar distancia podría ajustarse para que funcione ignorando o reduciendo el peso de las vocales en una palabra. Esto cubrirá algunas palabras intencionalmente ofuscadas.
  • Tener un mapeo de caracteres que podría usarse como reemplazo para un personaje dado. Por ejemplo, E a 3 y S a $, use esta asignación en la creación de tablas de edición-distancia.

Nota: ¡Es computacionalmente costoso usar la distancia de edición a nivel de palabra para el filtrado de spam si el volumen de correos electrónicos manejados es enorme!

More Interesting

¿Cuál es el análisis de opinión en el caso de TripAdvisor? ¿Como funciona?

¿Por qué es importante la clasificación en papel de ImageNet con redes neuronales convolucionales profundas?

¿Qué es el preprocesamiento de audio?

¿Puede el conocimiento del dominio ayudar a usar menos datos de entrenamiento, cuando se entrena una red neuronal convolucional para una aplicación específica?

Aprendí algo de teoría de la probabilidad, pero aún me cuesta leer el aprendizaje automático: una perspectiva probabilística. ¿Qué libro de texto de teoría de probabilidad me recomiendan para estudiar el aprendizaje automático?

Cómo construir mi propio sistema de inteligencia artificial

¿Es efectivo el entrenamiento de confrontación contra los ejemplos de confrontación en general?

¿Es cierto que una vez que tenemos grandes conjuntos de datos, la selección del clasificador ML no tiene mucho efecto? ¿Qué significa 'grande' aquí?

¿Cuál es la mejor extracción de características de un conjunto de datos de imágenes?

Cómo eliminar una fila completa de un conjunto de datos si encuentro entradas faltantes en R

¿Cuál es la diferencia entre el paralelismo del modelo y el paralelismo de datos?

¿Cuándo es el final de la red neuronal profunda? La gente está loca por esto y muchos de ellos no saben lo que está pasando dentro

¿Cuál es el mejor blog / sitio para mantenerse actualizado sobre las últimas tecnologías y herramientas de big data, aprendizaje automático?

¿Hay conjuntos de datos abiertos que contengan textos y calificaciones de los usuarios para ellos?

¿Cuáles son los problemas menos resueltos o no resueltos que se pueden resolver con el aprendizaje automático y el aprendizaje profundo?