Texto rápido en PHP \ Python. Primeros pasos

Porque porque




Durante mucho tiempo, varios tipos de algoritmos de aprendizaje automático ganaron popularidad. Además, gracias a las grandes empresas que están impulsando el progreso tecnológico, han aparecido muchos productos de código abierto. Uno de ellos es Fasttext, que se discutirá a continuación.

Texto rápido: desarrollo de Facebook. El objetivo principal del programa es la clasificación del texto. La clasificación de texto puede ser necesaria para:

  1. combinando información textual en grupos de "similitud" (noticias sobre un tema)
  2. Agrupar texto con temas similares en un grupo (noticias sobre automóviles)
  3. buscar información que pueda ser spam
  4. búsqueda de clickbait
  5. ...

De hecho, hay muchas opciones y no tiene sentido enumerar todo; la idea debe ser clara.

Primer entrenamiento


En la página de la biblioteca hay una instalación paso a paso y una primera instrucción de capacitación . No me detendré en ellos.

bollos
También tienen modelos confeccionados en diferentes idiomas para su clasificación aquí.

Configuración de la biblioteca


El problema del entrenamiento es la individualidad de los parámetros. No hay parámetros que garanticen excelentes resultados. Puede encontrar en Internet una tonelada ( o no ) de artículos con ejemplos de parámetros y pueden no ser adecuados para usted, ya que le darán un resultado insatisfactorio.

Solo empíricamente puedes elegir los parámetros que más te convengan. A continuación se muestra una lista de aquellos que afectan significativamente el resultado:

- dim - dimension controla el tamaño de los vectores ( mantequilla ): cuanto más son, más información pueden capturar, pero esto requiere más datos. Pero si hay demasiados datos, el proceso de capacitación será más lento. El valor predeterminado es 100 mediciones. Comience con 150 y elija el valor óptimo para usted.

- lr - velocidad de aprendizaje. Si el parámetro es muy pequeño, entonces el modelo se vuelve más sensible al texto y puede no distinguir textos similares, pero si el parámetro es muy grande, por el contrario, puede "decir" que los textos son similares, aunque en realidad esto no será así. Comience con 0.1 (Predeterminado 0.05).

- época - número de eras. Este es el número de pases de acuerdo con sus datos. Más - mejor (pero, por desgracia, no siempre). Esto aumenta el tiempo de entrenamiento. Comience en 150 (el valor predeterminado es 5).

- modelo de aprendizaje . Lee la descripción de Facebook. Está bastante claro.

- pérdida - cómo se realizará la comparación. Todo aquí es muy individual y depende de los datos.

pequeña digresión
Es genial que incluso sin un conocimiento suficiente en la clasificación de textos y mecanismos internos de la red neuronal, pueda obtener un modelo totalmente funcional.

Preparación de texto


El texto de entrada también es importante. Cuanto mejor sea el texto, mejor será la información del modelo. Reglas básicas para preparar el texto para el entrenamiento:

  • eliminar todas las etiquetas
  • emitir a minúsculas
  • eliminar caracteres de puntuación
  • eliminar etiquetas hash, enlaces
  • excluir palabras de parada
  • excluir palabras pequeñas (1,2,3 caracteres. aquí todos deciden por sus datos)

Algunos escriben que simplemente puedes introducir texto en un modelo y entrenar. Esta opción no me convenía. Me inclino a creer que sin preprocesar se obtiene un modelo de baja calidad.

Preparación de texto para clasificación.


Aquí se aplican las mismas reglas, pero la experiencia ha demostrado que estas reglas pueden complementarse con lematización o tartamudeo. Con ellos, los resultados pueden mejorar significativamente ( o empeorar ). Además, cuando ya haya formado grupos, no olvide que los algoritmos de agrupación también deben aplicarse a estos grupos, pero con mucho cuidado, ya que puede colapsar un tema similar en un grupo. Esto es muy evidente en los deportes: la modelo entiende que las noticias son del fútbol. Pero es muy difícil hacer que el modelo distinga el campeonato de España del campeonato de Italia.

Lenguaje de programación


mas que cierto
Como se dijo en Family Guy: "Sí, a nadie le importa "

Para entrenar el modelo, puede elegir tanto PHP (tomado, ya que la mayoría de los sitios están escritos en él) como Python (hay una biblioteca para ello). Pero hay un momento muy divertido . Aún debe entrenar el modelo ejecutando fasttext desde la línea de comando si el tiempo de entrenamiento es costoso para usted. Por lo tanto, no importa en qué escribir el código para la capacitación (lo que sea conveniente, escriba en eso).

En cuanto al mecanismo de agrupación, es un poco más complicado ( o más simple ). Si le gustan las bicicletas ( controle todos los procesos usted mismo y necesita un mecanismo de control flexible ) escriba en php (si el sitio está en php). Si no desea escribir bibliotecas y hay una elección de idioma, entonces probablemente sea mejor tomar Python. No noté una diferencia significativa en la velocidad (en la velocidad del código y no en la velocidad de escritura). Depende de usted.

En lugar de una conclusión


Tengo un modelo que se basa únicamente en contenido de noticias en los últimos días. El tamaño de las palabras en él es de aproximadamente 40,000 . Puedes jugar con ella. Pero tenga en cuenta que:

  • Este no es un modelo universal. Ella entrena solo en contenido de noticias.
  • el modelo no contiene todas las noticias de la base de datos, sino solo un editorial (esto es suficiente para resolver la tarea). Esto significa que el modelo puede dar un bajo porcentaje en noticias similares.

Source: https://habr.com/ru/post/469917/


All Articles