php - poner - popup cookies html
Cómo encontrar “artículos relacionados” en PHP (8)
a menudo vemos ''artículos relacionados''. Por ejemplo, en los blogs tenemos publicaciones relacionadas, en libros, libros relacionados, etc. Mi pregunta es: ¿cómo compilamos esos recursos? Si es solo una etiqueta, a menudo veo elementos relacionados que no tienen la misma etiqueta. Por ejemplo, cuando se busca ''rosa'', un elemento relacionado podría tener una etiqueta ''púrpura''.
Alguien tiene alguna idea?
Aquí hay una implementación del índice jaccard entre dos textos basados en bigramas. https://packagist.org/packages/darkopetreski/textcategorization
Esta es mi implementation(GIST) del http://en.wikipedia.org/wiki/Jaccard_index con PostgreSQL y Ruby on Rails ...
Estas son algunas de las formas:
- Conectándolos manualmente. Coloque una tabla con los campos
item_id
yrelated_item_id
, luegorelated_item_id
una interfaz para insertar las conexiones. Es útil para relacionar dos elementos que están relacionados pero que no se parecen o no pertenecen a la misma categoría / etiqueta (o en una tabla de entrada sin categorizar). Ejemplo: bañera y patito de goma. - Recupere algunos elementos que pertenecen a la misma categoría o tienen una etiqueta similar. La idea es que esos elementos deben estar algo relacionados ya que están en la misma categoría. Ejemplo: en la página viendo monitores LCD, hay monitores LCD aleatorios (con el mismo rango de precio / fabricante / resolución) en la sección "Artículos relacionados".
- Realice una búsqueda de texto que coincida con el nombre del elemento actual (y / o la descripción) con otros elementos de la tabla. Tienes la idea
Hay muchas formas de calcular la similitud de dos elementos, pero para un método sencillo, observe el coeficiente de Jaccard.
http://en.wikipedia.org/wiki/Jaccard_index
Que es: J (a, b) = intersección (a, b) / unión (a, b)
So lets say you want to compute the coefficient of two items:
Item A, which has the tags "books, school, pencil, textbook, reading"
Item B, which has the tags "books, reading, autobiography"
intersection(A,B) = books, reading
union(A,B) = books, school, pencil, textbook, reading, autobiography
so J(a,b) = 2/6 = .333
So the most related item to A would be the item which results in the highest Jaccard Coefficient when paired with A.
Para obtener una lista simple de elementos relacionados basados en etiquetas, las soluciones básicas son las siguientes:
3 tablas, una con elementos, una con etiquetas y otra con la conexión. La tabla de conexión consta de dos columnas, una para cada ID de las tablas restantes. Una entrada en la tabla de conexión vincula una etiqueta con un elemento colocando sus respectivos identificadores en una fila.
Ahora, para obtener esa lista de elementos relacionados.
obtener todos los elementos que comparten al menos una etiqueta con el elemento original. asegúrese de obtener las etiquetas junto con los elementos, y luego use un mecanismo de clasificación simple para determinar qué elemento comparte la mayoría de las etiquetas con el original. cada etiqueta aumenta la relación-relevancia en uno.
Dependiendo de sus hábitos de etiquetado, podría ser inteligente agregar algún mecanismo contrario para evitar que las etiquetas globales grandes confundan la relevancia. para lograr esto, podría dar mayor peso a las etiquetas que se encuentran por debajo de un cierto umbral de dispositivos. Un umbral que generalmente ha funcionado bien para mí, es total_number_of_tag_appliances / total_number_of_tags, que resulta en el número promedio de dispositivos. Si el número de etiquetas del dispositivo es más pequeño que el promedio, la relación-relevancia se incrementa al doble.
Puede ser más que una etiqueta, por ejemplo, puede ser el promedio de cada trabajo que aparece en un párrafo, y luego los títulos, etc.
También puede basarse en "las personas que compraron este libro también compraron"
No importa cómo, necesitarás un poco de conexión entre tus artículos, y en su mayoría serán hechos por seres humanos
Yo diría que usan la ontology para eso, lo que agrega más características excelentes a la aplicación.