La búsqueda de personas en mi sitio web y algunas de estas investigaciones son las siguientes:

tapoktrpasawe
qweasd qwa as
aıe qwo ıak kqw
qwe qwe qwe a

Mi pregunta es hay alguna manera de detectar cadenas similares a los de arriba ?

Supongo que es imposible detectar el 100% de ellos, pero cualquier solución será bienvenida 🙂

edit: me refiero a la «galimatías» búsquedas. Por ejemplo, algunas personas cadenas de búsqueda como «asdqweasdqw», «paykaprkg», «iwepr wepr ow» en mi motor de búsqueda, y quiero detectar jibberish búsquedas.

No importa si el resultado de la búsqueda será 0 o cualquier otra cosa. Yo no puedo usar esta lógica.

Algunas nuevas marcas o productos será ignorado si voy a considerar «normales palabras».

Gracias por su ayuda

  • Lo que exactamente están tratando de detectar? Necesitamos más información si vamos a ayudar.
  • Incluso Google no dio ningún resultado para que ponga#@@ .Entonces, ¿Qué resultado están dando ? 🙂
  • Tal vez usted podría poner un corrector ortográfico en tu formulario de búsqueda.
  • No hay manera de detectar con un equipo, si una cadena de búsqueda tiene sentido o no. Si entrar en el absurdo, no encontrarán nada – ¿no es esto suficiente?
  • Yo iba a sugerir que el cálculo de una suma ponderada donde los caracteres consecutivos que son adyacentes en un teclado obtener un peso mayor, y la escala y el resultado por la longitud de la cadena, pero que va a coger sólo un tipo específico de galimatías de escribir.
  • Kavendeck puede utilizar una idea similar en la dirección opuesta (ver lotes texto en inglés, encontrar lo que los personajes tienden a ser adyacentes), y a continuación, utilizarlo para estimar la posibilidad de que un texto es en realidad el inglés. Es simple y funciona razonablemente bien.
  • ¿Por qué usted necesita hacer esto? Hacer un galimatías búsquedas constituyen una fracción importante de tráfico de búsqueda, o imponer una notable carga en la base de datos?
  • ahe – ¿alguna vez convertir @rrenaud de python respuesta a PHP?
  • Yo dejaría la idea debido a la detección de basura más posiblemente necesite más potencia de cálculo que la ejecución de un cubo de basura de la consulta (que es técnicamente correcta, e incluso puede ser lo que el usuario quiere, porque la basura es bastante subjetivo, supongo).

InformationsquelleAutor ahe | 2011-06-09

8 Comentarios

  1. 152

    Se podría construir un modelo de personaje a personaje de la transición de un montón de texto en inglés. Así, por ejemplo, saber cómo de común es que exista una ‘h’, después de una ‘t’ (bastante común). En inglés, se espera que después de una ‘q’, obtendrá una ‘u’. Si usted recibe una ‘q’ seguido por algo distinto de una «u», esto sucederá con probabilidad muy baja, y por lo tanto debe ser bastante alarmante. Normalizar la cuenta en sus mesas, por lo que tiene una probabilidad. Luego de una consulta, a pie a través de la matriz y calcular el producto de las transiciones que usted toma. Luego normalizar por la duración de la consulta. Cuando el número es bajo, es probable que tenga un galimatías de consulta (o algo en un idioma diferente).

    Si usted tiene un montón de registros de consultas, se podría hacer un modelo de inglés general, de texto y, a continuación, fuertemente su peso propio de consultas en el que el modelo de la fase de entrenamiento.

    Para el fondo, leer acerca de Las Cadenas De Markov.

    Editar, he implementado esta aquí en Python:

    https://github.com/rrenaud/Gibberish-Detector

    y buggedcom reescribió en PHP:

    https://github.com/buggedcom/Gibberish-Detector-PHP

    my name is rob and i like to hack True
    is this thing working? True
    i hope so True
    t2 chhsdfitoixcv False
    ytjkacvzw False
    yutthasxcvqer False
    seems okay True
    yay! True
    • +1 para una solución de trabajo. Muy bonito.
    • +1, muy impresionante cosas
    • +1 para responder a la pregunta en lugar de escurrir de las manos y en general, siendo un ninny como todos los demás en el hilo :).
    • muy bonito solución. respeto!
    • Lo que implica que las Cadenas de Markov son el «fondo» de la técnica que está utilizando da la impresión de que están haciendo algo mucho más sofisticado de lo que realmente son. El lector no requiere de la comprensión de las Cadenas de Markov para entender la solución a esto.
    • Yo no consideren esto una respuesta pertinente, ya que no es la deseada lenguaje de secuencias de comandos.
    • He traducido rrenaud de la secuencia de comandos de python en PHP github.com/buggedcom/Gibberish-Detector-PHP
    • Genial, he editado la respuesta a añadir un enlace a su proyecto.
    • Yo no podía creer mis ojos. Estoy cavando en…
    • He reescrito esta en perl aquí github.com/complexitydev/PerlGibberishDetector
    • +1. La mente que sopla. Simplemente brillante. Muchas personas argumentan que ¿por qué molestarse filtrado de dicha consulta . Sin embargo, uno de los sencillos caso de uso (la que yo necesitaba) es el uso de esta para un chatbot para identificar si el usuario es simplemente tratando de poner algo desagradable. Gracias
    • Gran uso de cadenas de Markov! 🙂
    • alguien me puede ayudar a entender lo que es gib_model.pki. como mirando adelante a tener soluciones similares a través del lenguaje R
    • es sólo una versión almacenada de la modelo, por lo que no necesita leer todos los datos de entrenamiento
    • Donde has creado el modelo…. este algo es un servidor de proceso de aprendizaje de la máquina o la especie de que tipo de programación a través de la cual se han creado gib_model.pki.

  2. 10

    Suponiendo que te refieres a jibberish búsquedas… sería más problemas de lo que vale. Usted está proporcionando a ellos con una función de búsqueda, que la utilice sin embargo ellos por favor. Estoy seguro de que hay algunos de los algoritmos, hay que detectar el extraño carácter de las agrupaciones, pero probablemente sería más recursos y mano de obra que simplemente regresan ningún resultado.

    • OK, voy a comprar este. +1
    • Creo que podría determinar si la búsqueda se jibberish bastante bien, manteniendo un 65KB (128 * 128 matriz de carrozas) de la tabla y, básicamente, sólo la iteración a través de la cadena. Estoy seguro de que va a ser mucho más barato que una base de datos de consulta que no devuelve ningún resultado.
    • Así que usted planea hacer esto para cada búsqueda, incluso el ‘válido’? ¿ No vale la pena.
    • Puedo obtener un 10 caracteres de entrada. Así que me agregue hasta 10 números, hacer una división, y comparar a un umbral. El tiempo de ejecución de la computación es muy baja. El mayor costo de la misma será en la recogida de los datos y la codificación de seguridad.
    • Ok llego… Pero eso es algo de la recolección de datos y análisis. Más allá de mi (y de la mayoría de la gente) capacidad.
    • Es sólo un par de horas de hacking, github.com/rrenaud/Gibberish-Detector
    • Si usted podría hacer un galimatías de prueba sólo en el galimatías cadenas, no se necesita la prueba en el primer lugar.

  3. 5

    Me gustaría pensar que podría detectar estas cadenas de la misma manera que se podría detectar «regular las palabras». Es sólo coincidencia de patrón, ¿no?

    Como a por qué los usuarios están buscando estas cadenas, que es la pregunta más grande. Usted puede ser capaz de madre fuera de la galimatías en busca de alguna otra manera. Por ejemplo, si el comentario de spam frases que las personas (o una secuencia de comandos) que está buscando, a continuación, instalar un CAPTCHA.

    Editar: Otro final de carrera alrededor de la interpretación de la entrada es de acelerador ligeramente. Permitir una búsqueda cada 10 segundos o así. (Recuerdo haber visto esto en el foro de software, así como varios lugares ASÍ.) Esto tomará un poco de la diversión de la búsqueda para sdfpjheroptuhdfj una y otra vez, y al mismo tiempo no interfieran con los usuarios que están buscando, y encontrando, sus cosas.

    • La mayoría de los visitantes son niños por lo que acaba de hacer. CAPTCHA no es una solución útil para poner antes de cada búsqueda. Algunas de las nuevas marcas o productos será ignorado si voy a considerar «normales palabras». Gracias por su ayuda
    • CAPTCHA no es lo que él necesita. ¿Por qué hacer la vida difícil para los usuarios que están buscando correctamente, viendo como jibberish búsquedas no thaaat perjudicial.
    • Si ese es el caso, entonces usted puede hacer todo a la derecha por la limitación de las búsquedas (ligeramente), como en permitir una búsqueda cada 10 segundos o así. Que se llevará a algunos de la diversión de la búsqueda para sdfgbpoisdfbijhaoi y otra vez, pero no afectará a las personas que realmente buscando, y encontrando, lo que necesitan.
    • Puesto que en su respuesta… Que es definitivamente la solución.
    • Hecho. A pesar de que me gusta su idea de no tener que preocuparse de que tal vez incluso un poco mejor.
    • Me nominal abajo, yo la tome de la espalda, +1

  4. 3

    Como algunas personas comentaron, no hay hits en google para tapoktrpasawe o putjbtghguhjjjanika (Bueno, ahora hay, por supuesto), así que si usted tiene una manera de hacer una rápida búsqueda en google a través de una API, usted podría lanzar fuera de los términos de búsqueda que no obtuvo los resultados de Google y no el nombre de uno de sus productos. Por qué se quiere hacer esto es otra pregunta – ¿estás tratando de ahorrar esfuerzos para su búsqueda la biblioteca? Que tu mano-reseña de «popular» términos de búsqueda más significativos? O simplemente estás frustrado por la inexplicable conducta de algunos de la gente de la gran internet? Si es esto último, mi consejo es que acaba de dejarlo ir, incluso si hay una manera de evitarlo. Algunas otras rarezas va a llegar.

  5. 2

    Respuesta corta – Jibberish Búsqueda

    Probabilístico Modelo de Lenguaje obras.

    Lógica

    palabra se compone de una secuencia de caracteres, y si 2 personajes vienen juntos con más frecuencia y si sumamos todas las frecuencias de 2 caracteres contiguos, se unen en la palabra, y la suma de la cruz umbral límite (de ser una palabra de inglés), se dice que es la correcta palabra de inglés. En breve, esta lógica es famoso por cadenas de Markov.

    Enlace

    De Matemáticas de Galimatías y una mejor comprensión, se refieren a video https://www.youtube.com/watch?v=l15C8UJu17s . Gracias !!

  6. 1

    Tenía que resolver un problema muy estrechamente relacionado con una fuente de código de minería de proyecto, y aunque el paquete está escrito en Python y no de PHP, parecía que vale la pena mencionar aquí, en caso de que todavía puede ser útil de alguna manera. El paquete es Fosa nasal (por «Tonterías Cadena Evaluador») y está dirigido a determinar si las cadenas extraídos durante la fuente de código de minería de datos son propensos a ser de clase/función/variable/etc. los identificadores o al azar galimatías. Funciona bien en el texto real, no solo los identificadores de programa. Fosa nasal se utiliza n-gramas (similar a la Galimatías Detector en la respuesta por Rob Neuhaus) en combinación con una costumbre TF-IDF función de puntuación. Se trata de preentrenado, y está listo para usar fuera de la caja.

    Ejemplo: el siguiente código,

    from nostril import nonsense
    real_test = ['bunchofwords', 'getint', 'xywinlist', 'ioFlXFndrInfo',
                 'DMEcalPreshowerDigis', 'httpredaksikatakamiwordpresscom']
    junk_test = ['faiwtlwexu', 'asfgtqwafazfyiur', 'zxcvbnmlkjhgfdsaqwerty']
    for s in real_test + junk_test:
        print('{}: {}'.format(s, 'nonsense' if nonsense(s) else 'real'))

    producirá la siguiente salida:

    bunchofwords: real
    getint: real
    xywinlist: real
    ioFlXFndrInfo: real
    DMEcalPreshowerDigis: real
    httpredaksikatakamiwordpresscom: real
    faiwtlwexu: nonsense
    asfgtqwafazfyiur: nonsense
    zxcvbnmlkjhgfdsaqwerty: nonsense

    El proyecto está en GitHub y doy la bienvenida a las contribuciones.

  7. 0

    Si la búsqueda se realiza en los productos, podría caché de sus nombres o códigos y comprobar que están en contra de esa lista antes de hacer la base de datos. Otra cosa, si su sitio es que los usuarios ingleses, usted puede construir un diccionario de cadenas de caracteres que no se usan en el idioma inglés, como qwkfagsd. Para lo cual, y de acuerdo con otra respuesta, será más recursos que si no hay.

    • Por lo que se sugiere que revise todas las búsquedas en el diccionario inglés? Por qué alguien querría hacer eso.
    • En realidad, no, me refiero a pequeñas cadenas como «tea» o «qwe» que la gente suele usar para llenar los insumos.

Dejar respuesta

Please enter your comment!
Please enter your name here