Cogiendo precios. Una guía práctica para las adquisiciones marítimas





Empecemos por la forma más sencilla: intentemos pescar con las manos. Abrimos una base de datos de bienes de compras y comenzamos a buscar un producto similar. Es muy probable que no atrapemos nada por la noche.



Intentemos de alguna manera filtrar la base de bienes de las compras. A cada artículo de las compras se le asigna un código OKPD2. El clasificador de productos de toda Rusia por actividad económica es un código que contiene información sobre un producto.



Por ejemplo:







Ahora tenemos una caña de pescar, se ha vuelto un poco mejor, pero por alguna razón el pez no quiere que lo cuelguen del anzuelo.



No te enfades, usamos el cebo. Necesitamos encontrar una manera de identificar automáticamente productos similares dentro de un OKPD2. Para hacer esto, debe presentar el significado semántico de la descripción del producto en forma de tensor. Para procesar la información, debe convertirla a un formato numérico. Para hacer esto, usaremos un mecanismo especial para traducir palabras al espacio vectorial Word2Vec, que traduce una palabra en una secuencia de números de un tamaño dado, llamado vector o tensor. Word2Vec es un modelo que está especialmente entrenado para comprender el significado semántico de una palabra. Los productos de la base de datos con el mismo OKPD2 deben convertirse a tensores. Genial, ahora tenemos uno de nuestros productos tensores y un montón de otros productos tensores.



Buscaremos el producto más cercano por la distancia del coseno, cuanto más similar sea el producto de la base de datos al nuestro, menor será la distancia del coseno. Elegimos un producto con una distancia mínima de coseno y este será nuestro pescado deseado.



Analicemos el método descrito en la práctica. Comencemos por convertir la descripción del producto en un tensor. Primero, la descripción del producto se tokeniza, es decir, se divide en palabras separadas. Para transformar las palabras en su significado semántico, se utilizó un Word2Vec previamente entrenado con una dimensión de 100 (es decir, una palabra está representada por un conjunto de 100 números).



Tenemos una variedad de incrustaciones. Para calcular la distancia del coseno, es necesario calcular la representación vectorial de todo el texto que contiene la descripción del producto. La forma más fácil de implementarlo es tomar el promedio entre todas las incrustaciones de palabras descriptivas, mientras que el significado semántico del producto se distorsionará, pero esto no es crítico para resolver este problema.







Una vez que hemos traducido nuestro producto y todos los productos con el mismo OKPD en incrustaciones, el siguiente paso es calcular la distancia del coseno entre ellos.







Como puede ver en el diagrama a continuación, lo más parecido al producto "Big Fish" son los productos "Salmon enorme" y "Goldfish".







Por lo tanto, se puede suponer que el precio de un pez grande se encuentra en el rango entre los precios de un pez dorado y un salmón enorme. Se obtuvieron los siguientes resultados sobre datos reales:







A veces, este enfoque puede no funcionar bien. Por ejemplo, en la base de datos de productos no habrá ningún producto similar al nuestro. Entonces, el pescado capturado será demasiado pequeño y el módulo devolverá un rango vacío.







El último método que veremos será la pesca con red. Yandex utilizará como red. Se forma una solicitud a partir de la descripción del producto y se seleccionan las primeras 20 respuestas para un análisis más detallado. No tiene sentido aceptar las siguientes respuestas, ya que su relevancia es cuestionable. Los textos de las primeras 20 respuestas se envían al buscador de precios. El modelo selecciona precios de las respuestas y forma un rango de precios a partir de ellas. Muchos peces diferentes entran en la red de pesca, por lo que el rango de precios es muy ruidoso. Para el filtrado, eliminemos los valores atípicos. Si los precios obtenidos se distribuyen normalmente, solo se puede retener el 68 por ciento de los precios. Es decir, dejemos los precios que se encuentran en el rango entre la diferencia entre el promedio de todos los precios y la desviación estándar, y la suma de la media y la desviación estándar. Así es como se ven los rangos de precios de los productos en Yandex:



Todos los métodos de pesca considerados tienen sus pros y sus contras. La elección de la opción preferible la realiza cada pescador de acuerdo con sus requisitos de precisión y tiempo. ¡Feliz captura!



All Articles