Red de conocimiento informático - Programación de la red - ¿El Centro de capacitación en programación de software informático Xuchang Carp IT le permite comprender los principios de búsqueda en cinco minutos?

¿El Centro de capacitación en programación de software informático Xuchang Carp IT le permite comprender los principios de búsqueda en cinco minutos?

1. Información y volumen de información

Antes de introducir la búsqueda, introduzcamos dos conceptos: información y volumen de información.

(Utilizo explicaciones que creo que son relativamente fáciles de entender. Si estás interesado, puedes leer libros relevantes)

1.1 La información es algo que reduce la incertidumbre, y la información también aumenta certeza. Cosas sexuales.

La primera mitad de la oración es la definición de información de Shannon y la segunda mitad de la oración es la definición de información de Shannon inversa. Por ejemplo, piense en el proceso de salir con una persona del sexo opuesto. Antes de conocerlo, no sabes que esa persona existe en el mundo. Luego ves cómo es y luego comprendes su carácter, su mantra y sus acontecimientos pasados. Luego, paso a paso, se pasa de no conocerlos en absoluto a familiarizarse con ellos poco a poco. Este período es un proceso en el que continúas obteniendo información sobre ellos. Es esta información la que te permite pasar de estar completamente inseguro sobre qué tipo de persona es a estar completamente seguro de que es adecuado para ti.

1.2 La cantidad de información es una medida de que la información puede reducir la incertidumbre, y la cantidad de información también es una medida de que la información puede aumentar la certeza.

Hay muchas descripciones matemáticas de la cantidad de información, pero en términos simples, se puede entender de manera muy simple. Por ejemplo, un testigo describe a un sospechoso. La información del testigo A es "Él es un hombre". La información del testigo B es "TA es un chico de secundaria", la información del testigo C es "TA es un estudiante de secundaria con cabello largo de unos 170 cm". La información del testigo D es "Lo conozco, es Chen Haonan, el líder de". la escuela." Podemos sentir intuitivamente que la relación entre la cantidad de información es: A

Traducido a una lógica matemática que las computadoras pueden entender: la proporción de hombres locales es del 50%, la proporción de chicos de secundaria locales es del 8%, la proporción de chicos de secundaria locales con cabello largo de aproximadamente 170 cm es del 4%, el nombre local es Chen Haonan. La proporción de tomar la delantera es del 0,0001%. Debido a que P (A)>P(B)>P(C)>P(D), la relación entre la cantidad de información es: A

2. Lógica del producto de búsqueda

La búsqueda satisface las necesidades de los usuarios de encontrar rápidamente el contenido que les interesa. El usuario ingresa una consulta y el sistema de búsqueda filtra el contenido que el sistema cree que le interesa al usuario en función de la información ingresada por el usuario, y clasifica y muestra el contenido de acuerdo con la importancia determinada por el sistema. Tenga en cuenta esta afirmación. En términos simples, la búsqueda se puede dividir en tres pasos.

Paso 1: Interpretar la información ingresada por el usuario

Paso 2: Filtrar el contenido según la información ingresada por el usuario

Paso 3: Ordenar los resultados filtrados

p>

Para comprender cómo se completan estos tres pasos en el sistema de búsqueda, primero debe comprender cómo el servidor de búsqueda almacena la información.

3. Principio de almacenamiento de los datos de búsqueda

Como se muestra en la imagen anterior, suponiendo que hayamos creado un sitio web de noticias, su estructura es la siguiente. El contenido es simplificado, asumiendo una noticia, el texto solo tiene título, introducción y texto principal. Los datos solo incluyen el número de lecturas, comentarios y acciones compartidas.

Figura 1-1

Es casi la estructura del lado derecho de la imagen de arriba. A la derecha está marcado el almacenamiento de contenido de noticias: al igual que los libros en una biblioteca, ordenados cuidadosamente para facilitar la búsqueda (el nombre de esta estructura de almacenamiento se llama índice, que proviene del término biblioteca). A la izquierda está el tesauro: siempre que la palabra ingresada en una búsqueda pueda coincidir con el tesauro, puede buscar rápidamente en el tesauro para encontrar el contenido correspondiente.

Cada sistema de búsqueda tiene su propio léxico, y las acciones de búsqueda que no puedan corresponderse con la segmentación de palabras no arrojarán resultados. Cada sistema de búsqueda tendrá un conjunto de léxico correspondiente basado en diferentes usuarios objetivo. Al igual que un diccionario, las entradas incluidas en el "Diccionario profesional de metalurgia" y el "Diccionario de biología" son diferentes. Muchas optimizaciones de búsqueda se centran en la optimización del léxico.

Para resumir brevemente, el principio de almacenamiento de la búsqueda es: una biblioteca de vocabulario del sistema y una biblioteca de índice de contenido ordenada al mismo tiempo, la biblioteca de vocabulario del sistema y la biblioteca de índice de contenido se pueden asociar rápidamente.

Según la estructura de almacenamiento de este sistema de búsqueda, los tres pasos de búsqueda que mencionamos se llevarán a cabo en secuencia.

4. Paso 1: Interpretación de la información ingresada por el usuario

Como se mencionó anteriormente, el vocabulario de búsqueda es limitado, pero la entrada del usuario es ilimitada. Entonces, ¿cómo convertir una búsqueda ilimitada en un vocabulario limitado y hacer coincidir los resultados correspondientes? Aquí es necesario introducir un nuevo concepto: segmentación de palabras, que simplemente significa dividir la cadena de entrada.

Tome también como ejemplo el sistema de búsqueda de noticias de la Figura 1-1. Si la consulta ingresada por el usuario es "alimentos genéticamente modificados de China", esta palabra en realidad no existe en el sistema. Si no existe una función de segmentación de palabras, la búsqueda finalizará inmediatamente, incluso si efectivamente existe el contenido correspondiente en el sistema. El principio de funcionamiento de la segmentación de palabras es dividir aún más la entrada del usuario cuando no se puede lograr una coincidencia exacta. Entonces obtuvimos los siguientes resultados.

"Alimentos genéticamente modificados de China" - "China", "los", "genéticamente modificados", "alimentos".

No todas las palabras son informativas. Si recuerda los resultados de "的", casi todo el contenido de noticias contendrá esta palabra. Obviamente es incorrecto recordar tantos resultados. "的" en realidad se ignora directamente en el sistema de segmentación de palabras, es precisamente porque la probabilidad de aparecer en el contenido es diferente. Cuantas más noticias aparezca, menor será el contenido de información de la palabra. se ignorará, es decir, el contenido de noticias que contenga palabras con mayor contenido informativo será más importante. Después de eliminar las palabras vacías, los resultados se simplificarán aún más

"Alimentos genéticamente modificados de China" - "China". , "GMO", "food".

Después del procesamiento, la consulta no estándar del usuario se convierte en un vocabulario estándar y la consulta correspondiente se puede encontrar rápidamente. El contenido se muestra en la Figura 1-1.

5. Paso 2: filtrar el contenido según la información ingresada por el usuario.

Después de interpretar la consulta del usuario, obtenemos algunas palabras estandarizadas, y estas palabras corresponderán a algunas. buscar contenido objetivo. El siguiente paso es filtrar el contenido.

Después de que el usuario realiza una búsqueda, se buscan algunos resultados en función de las dos dimensiones: "si el contenido es relevante" y "si el contenido ha sido retirado" se dividen en cuatro partes.

Contenido relevante retirado: la parte del contenido buscado que es relevante para la búsqueda del usuario.

Contenido irrelevante retirado: La parte del contenido buscado que no es relevante para la búsqueda del usuario

Contenido relevante que no ha sido recuperado: La parte del contenido buscado que es relevante para la búsqueda del usuario

Contenido irrelevante que no ha sido recordado: la parte del contenido que no se busca y que no es relevante para la búsqueda del usuario.

De forma general, la decisión de búsqueda se basará en dos factores. , precisión y recuerdo.

La precisión es la proporción de contenido relevante entre todos los contenidos buscados. Tasa de precisión:

El recuerdo es todo lo que se debe buscar. realmente buscado:

La precisión y la recuperación son un par de indicadores contradictorios que deben sopesarse. La medición final tomará el promedio armónico de los dos como función objetivo. :

Estos tres conceptos son indicadores clave en la optimización de la búsqueda, que implican puntuación manual y optimización más avanzada. Aquí solo debemos recordar una cosa: no todos los resultados que contengan las palabras clave de consulta del usuario deben recordarse. /p>

6. Paso 3: Ordenar los resultados filtrados

La clasificación afecta la calidad de los resultados de búsqueda. Es probable que los usuarios hagan clic fácilmente en los resultados. Una buena búsqueda no solo debe buscar. busque el contenido que debe buscarse tanto como sea posible, pero también considere que el contenido que tiene más probabilidades de atraer a los usuarios debe mostrarse al frente.

La lógica básica de clasificación es universal:

El usuario ingresa un texto y lo convierte en palabras en el diccionario de sinónimos estándar. El sistema de búsqueda decide si muestra el contenido en función de si cada contenido específico contiene estas palabras. contenido una puntuación basada en la relevancia textual. La clasificación final se basa en la puntuación de cada contenido.

El principio de la fórmula de clasificación central de Lucene se presenta en línea. Pero la situación real es en realidad más complicada.

Tomemos como ejemplo el sistema de búsqueda de noticias que mencionamos antes (para facilitar la comprensión, publique la imagen nuevamente)

Si el usuario busca "modificado genéticamente", el texto de este modificado genéticamente aparecerá en el título o en la introducción, o aparece en el texto, las puntuaciones deben ser diferentes. Evidentemente aparecer en el título debería tener una puntuación mayor. También es necesario considerar los datos comerciales, por ejemplo, en comparación con una publicación con un volumen de lectura de más de 100.000 y una publicación con un volumen de lectura de 3, incluso si el texto de una publicación con un volumen de lectura bajo es más relevante, obviamente el La publicación con un volumen de lectura de más de 100.000 debe estar al principio.

De hecho, todos los datos se pueden dividir en dos categorías, texto y datos. El texto se utiliza para calcular la relevancia del contenido. Esta parte de la puntuación se deja en manos del algoritmo maduro de Lucene. También existen soluciones de código abierto establecidas en el mercado. Cómo abordar la relación entre textos y la relación entre datos es la parte central del diseño de un sistema de búsqueda.

Tome el sistema Solr basado en Lucene como ejemplo. El código de configuración de texto y datos es realmente muy simple. Solo se necesitan unas pocas líneas de código en las etiquetas y .

es asignar peso a los datos comerciales.

es asignar peso a los datos de texto.

Después de estudiar el mecanismo del sistema Solr, transformamos la fórmula central de Solr y obtuvimos una fórmula:

Representa el peso de la puntuación del texto que le asignamos al texto. Por ejemplo, existen tres tipos de texto en este sistema, título, introducción y cuerpo. Según la importancia, el peso del título es 10, el peso de la introducción es 5 y el peso del texto principal es 1.

Representa la puntuación de relevancia del texto dada por el algoritmo de Lucene para el texto. Esto considerará de manera integral la cantidad de palabras en el texto, la probabilidad de que el término de búsqueda aparezca en todos los textos y otros factores (para estudiantes que. Si desea obtener más información sobre el principio, puede leer la introducción de TF-IDF y la similitud del coseno).

Representa el peso que le damos a los datos. Por ejemplo, hay tres tipos de datos en este sistema, el número de comentarios, el número de acciones y el número de lecturas. Según la importancia, el peso del número de comentarios sobre el título es 100, el peso del número de acciones es 200 y el peso del número de lecturas es 1. (En términos generales, se introducirá una disminución del tiempo, que no se analizará aquí).

Representa un valor específico para los datos. Por ejemplo, este sistema tiene tres tipos de datos: número de comentarios, número de compartidos y número de lecturas.

Representa el coeficiente normalizado, lo que significa que se puede dar un peso muy grande y la puntuación total final estará dentro de un rango razonable.

Esta vez se determina en función del índice del algoritmo. Representa la cantidad de información proporcionada por la consulta de entrada del usuario para esta puntuación. Si la consulta de entrada proporciona más información, S será mayor.

Aumentar, permanecer sin cambios, el coeficiente anterior permanece sin cambios, el coeficiente anterior aumenta. Cuanto mayor sea la contribución que representan los datos de texto a la puntuación general, significa que los datos de texto tienen un mayor peso en comparación con los datos comerciales. Por ejemplo: ingresar "Congestión de tráfico en el Día Nacional de Beijing", en comparación con ingresar "Congestión de tráfico", "Congestión de tráfico en el Día Nacional de Beijing" proporciona más información al sistema, el valor S es mayor y la puntuación del texto representa una proporción mayor de la puntuación total.

Entonces podemos ver que lo que finalmente afecta la clasificación es el peso que asignamos a los datos de texto y a los datos comerciales, es decir: representa el peso del texto y representa el peso de los datos.

Estos dos conjuntos de datos afectan la clasificación final de la búsqueda, y la asignación de este conjunto de datos es exactamente la comprensión del negocio por parte del sistema de búsqueda.