La Red de Conocimientos Pedagógicos - Currículum vitae - Segmentador de palabras ElasticSearch, infórmese sobre él

Segmentador de palabras ElasticSearch, infórmese sobre él

Este artículo presenta principalmente qué es el análisis, qué es un segmentador de palabras y cómo funciona el segmentador de palabras que viene con ElasticSearch. Finalmente, presentará cómo se realiza la segmentación de palabras en chino.

Primero, hablemos de qué es el Análisis:

Como sugiere el nombre, el análisis de texto es el proceso de convertir el texto completo en una serie de palabras (término/token), también llamada segmentación de palabras. En ES, el análisis se implementa a través de un tokenizador (Analyzer). Puede utilizar el analizador integrado de ES o personalizar un analizador según demanda.

Tomemos un ejemplo simple de segmentación de palabras: por ejemplo, si ingresa Mastering Elasticsearch, se dividirá automáticamente en dos palabras, una es mastering y la otra es elasticsearch. las palabras también se convierten a minúsculas.

Después de comprender brevemente Análisis y Analizador, echemos un vistazo a la composición del segmentador de palabras:

El segmentador de palabras es un componente que se especializa en la segmentación de palabras. de las siguientes tres partes:

Al mismo tiempo, las tres partes del Analizador también están en orden. Como se puede ver en la figura, de arriba a abajo pasan por los filtros de personajes, Tokenizer y Token. Filtros: este orden es más fácil de entender. Primero se debe ingresar un texto, se procesan los datos del texto, luego se realiza la segmentación de palabras y finalmente se filtran los resultados de la segmentación de palabras.

Entre ellos, ES tiene muchos tokenizadores integrados:

A continuación, se explicarán los tokenizadores anteriores. Antes de explicar, echemos un vistazo a una API muy útil: _analyzer API:

p>

Puede comprobar cómo funciona el segmentador de palabras de las siguientes tres formas:

Después de comprender la API del analizador, echemos un vistazo a la palabra integrada. segmentador de ES:

Primero, introduzcamos el segmentador de palabras Stamdard Analyzer:

Es el segmentador de palabras predeterminado de ES. Segmentará el texto de entrada según las palabras. se convertirá a minúsculas. Manejo, las palabras vacías predeterminadas están desactivadas.

Usemos Kibana para ver cómo funciona. Especifique el Analizador como estándar en las herramientas de desarrollo de Kibana e ingrese el texto En 2020, Java es el mejor lenguaje del mundo, y luego lo ejecutamos:

Los resultados de la ejecución son los siguientes:

Se puede ver que el texto de entrada se convierte según espacios y no letras, como convertir Java a minúsculas, algunas palabras vacías no se eliminan. como en.

Entre ellos, token es el resultado de la segmentación de palabras; start_offset es el desplazamiento inicial; end_offset es la posición de desplazamiento final es la posición de segmentación de la palabra.

Echemos un vistazo al tokenizador de Simple Analyzer:

Solo incluye el tokenizador de minúsculas. Se dividirá según las letras que no sean letras, las que no sean letras se eliminarán y. finalmente corte por la mitad El texto separado se convierte a minúsculas, luego se usa el texto de entrada y el segmentador de palabras se cambia a simple para la segmentación de palabras. Los resultados de ejecución son los siguientes:

Como se puede ver. De los resultados, se eliminó el número 2020. Muestra que, de hecho, se eliminarán las letras que no son letras y que todas las palabras se han convertido a minúsculas.

Ahora, echemos un vistazo al segmentador de palabras de Whitespace Analyzer:

Es muy simple por el nombre, también puede ver que está segmentado según espacios. un vistazo a lo que es:

Se puede ver que incluso si solo está segmentado según espacios, el número 2020 sigue ahí, la primera letra de Java todavía está en mayúscula y. , todavía se conserva.

Veamos a continuación el tokenizador Stop Analyzer:

Está compuesto por el tokenizador de Lowe Case y los filtros de token de Stop. En comparación con el analizador simple que acabamos de mencionar, tiene un filtro de parada adicional. , stop eliminará modificadores como the, a, is, etc. Echemos un vistazo también a los resultados en ejecución:

Puedes ver que palabras como in, is y the son filtradas por el filtro de parada.

A continuación, echemos un vistazo al Analizador de palabras clave:

En realidad, no realiza el procesamiento de segmentación de palabras, solo genera la entrada como Término. Echemos un vistazo a los resultados de la ejecución. :

Como puede ver, el texto de entrada no se segmenta en palabras, sino que se genera directamente como Término.

A continuación, eche un vistazo al Analizador de patrones:

Puede segmentar palabras mediante expresiones regulares. El valor predeterminado es usar \W para la segmentación, es decir, los caracteres que no son letras se segmentan. , dado que los resultados de la ejecución son los mismos que los de Stamdard Analyzer, no se muestran.

ES proporciona un segmentador de palabras Language Analyzer para la entrada de idiomas de diferentes países. En él se pueden especificar diferentes idiomas. Usemos el inglés para segmentar las palabras:

. Se puede ver que el idioma ha cambiado. Se ha convertido en idioma y también tiene un filtro de parada. Por ejemplo, también se han eliminado palabras como in y is.

Finalmente, veamos la segmentación de palabras chinas:

La segmentación de palabras chinas tiene dificultades específicas. A diferencia del inglés, las palabras están separadas por espacios naturales, no pueden simplemente En lugar de. Al dividirlo en palabras individuales, es necesario dividirlo en palabras significativas, pero en diferentes contextos, existen diferentes interpretaciones.

Por ejemplo, el siguiente ejemplo:

Entonces, echemos un vistazo al tokenizador ICU Analyzer, que proporciona soporte Unicode y admite mejor los idiomas asiáticos.

Primero usemos estándar para segmentar la palabra para facilitar la comparación con UCI.

Los resultados de la ejecución no se mostrarán. La segmentación de palabras está segmentada palabra por palabra. Obviamente, el efecto no es muy bueno. A continuación, use ICU para segmentar las palabras. /p>

Puedes ver que se ha dividido en varios países y las empresas han cerrado una tras otra. El efecto es obviamente mucho mejor que antes.

Existen muchos segmentadores de palabras en chino, aquí tienes algunos:

IK:

jieba:

THULAC:

Puede instalarlo usted mismo y ver su efecto de segmentación de palabras chinas.

Este artículo presenta principalmente la segmentación de palabras que viene con ElasticSearch, aprende a usar la API _analyzer para ver su segmentación de palabras y, finalmente, presenta cómo realizar la segmentación de palabras en chino.