una texto sirve separar que para numeros nombres misma macro extraer entre cómo convertir como columnas celda caracteres apellidos algorithm filter word nlp spam

algorithm - sirve - Algoritmo para separar texto sin sentido de texto significativo



separar numeros en columnas excel (11)

Proporcioné algunos de mis programas con una función de retroalimentación. Desafortunadamente, me olvidé de incluir algún tipo de protección contra correo no deseado, para que los usuarios pudieran enviar lo que quisieran a mi servidor, donde cada respuesta se almacena en una gran base de datos.

Al principio revisé periódicamente esas retroalimentaciones, filtré lo que se podía usar y eliminé la basura. El problema es: obtengo 900 retroalimentaciones por día. Solo 4-5 son realmente útiles, los otros mensajes son en su mayoría 2 tipos de galimatías:

  • tonterías: jfvgasdjkfahs kdlfjhasdf (La gente se golpea la cabeza con el teclado)
  • idioma que no entiendo

Lo que hice hasta ahora

  1. Instalé un filtro para eliminar cualquier comentario que contenga "asdf", "qwer", etc ... -> solo 700 por día

  2. Instalé un filtro de palabras para delimitar todo lo que contenga lenguaje incorrecto -> 600 por día (no preguntes) pero hay muchas personas extrañas por ahí)

  3. Elimino cualquier mensaje que contenga letras que no se usen en mi idioma -> 400 por día

Pero 400 por día todavía es demasiado. Así que me pregunto si alguien ya se ha enfrentado a ese problema antes y conoce algún tipo de algoritmo para filtrar los mensajes sin sentido.

¡Cualquier ayuda realmente sería apreciada!


¿Qué tal si usamos alguna implementación existente de un filtro de spam bayesiano en lugar de implementar la suya propia? He tenido buenos resultados con DSpam


El método más simple sería contar la ocurrencia de cada letra. E es la letra más común en inglés, por lo que debe usarse más. También puede verificar la frecuencia de palabras y dígrafos. Eche un vistazo aquí para obtener la lista de los más utilizados en inglés



Si solo espera (o le interesan) los comentarios en inglés, ¿por qué no simplemente cuenta el número de palabras válidas (con respecto a algún diccionario) en los comentarios cargados? Si el número supera cierto umbral, acepte los comentarios. Si no, basura. Esta heurística simple podría extenderse a otros idiomas al agregar sus diccionarios.


Tuve un problema de correo no deseado en una función de libro de visitas en uno de mis sitios a (bastante largo) hace tiempo. Mi solución fue simplemente agregar un pequeño campo de preguntas y respuestas tipo captcha que preguntaba al usuario "¿Eres un robot de spam?" Cualquier respuesta que contenga la palabra "no" (dejar pasar "no, no soy", "no" y "nada en absoluto", solo por diversión ...) permitió al usuario publicar ...

La razón por la que elegí no usar captcha fue simplemente que mis usuarios querían una sensación más "acogedora" para el sitio, y un captcha se sentía demasiado formal. Esto fue más personal =)


Un enfoque ligeramente diferente sería configurar un sistema para enviar por correo electrónico los mensajes de retroalimentación a una cuenta y usar el filtrado de correo no deseado estándar. Podrías enviarlos a través de Gmail y dejar que sus filtros tomen una oportunidad. No es perfecto, pero tampoco requiere demasiado esfuerzo para implementarlo.


Busca modelos de Claude Shannon y Markov. Estos conducen a una técnica estadística para evaluar las probabilidades de que las combinaciones de letras provengan de una fuente de idioma específica.

Aquí hay algunas notas de curso relevantes de la Universidad de Princeton.


Las respuestas anteriores sobre cómo ajustar algunos filtros de correo no deseado inspirados en Bayesian son una buena idea. Para su aplicación, dado que parece obtener muchas palabras largas y sin sentido, sería mejor activar una opción en su analizador para entrenar en bigramas y trigramas; de lo contrario, muchas de las palabras sin sentido se tratarán como "nunca antes vistas", lo cual no es el análisis más útil en su caso.


Fidelis Assis y yo hemos estado adaptando el filtro de spam OSBF-Lua para que se pueda adaptar fácilmente a otras aplicaciones, incluidas las aplicaciones web. Este filtro de spam ganó el concurso de spam TREC tres años seguidos. (No me importa presumir porque el algoritmo es de Fidelis, no mío).

Si quiere probar cosas, tenemos un código "casi beta" en

git clone http://www.cs.tufts.edu/~nr/osbf-lua-temp

Todavía estamos muy lejos de tener una versión ordenada, pero el código debería compilarse siempre que instale automake 1.9. Cualquiera de nosotros estará encantado de aconsejarle sobre cómo usarlo para limpiar su base de datos e integrarla en su aplicación.


Sí, como señalaron las personas, podrías mirar filtros de spam o modelos de Markov.

Algo más simple sería contar las diferentes palabras en cada respuesta y ordenarlas por frecuencia. Si palabras como las siguientes no están en la parte superior, entonces probablemente no sea un texto válido:

el , a , in , of , y , or , ...

Son la palabra más utilizada en cualquier texto inglés habitual.


Simplemente almacene los comentarios en un estado pendiente, páselos a través de Akismet o Defensio, y use la respuesta para marcarlos como posible correo no deseado o marcarlos como activos.

http://akismet.com/

http://defensio.com/

Yo personalmente prefiero la API de Defensio, pero ambos funcionan fantásticamente bien.