Подобни произведения

Хрумнало ви е как може да се подобри Моята библиотека...
Правила
Уважавайте другите участници и се отнасяйте с тях така, както бихте желали те да се отнасят с вас!
Аватар
Борислав
Мнения: 1065
Регистрация: 15 ноември 2005, 17:25

Подобни произведения

Мнение от Борислав »

Скалъпих набързо един груб алгоритъм за изчисляване на подобни произведения и го пуснах в действие. В края на всеки текст в момента се показват първите пет подобни текста, а на отделна страница за всеки текст могат да се разгледат малко повече бройки от подобните. Ето пример с „Чужда принуда“ от Филип Хосе Фармър.

Все още никъде няма връзка към новата страница просто защото не ми хрумва къде да сложа такава. Дори се чудя дали въобще е нужна тази отделна страница…

Подобните творби се изчисляват въз основа на отбелязаните като прочетени. Това значи, че алгоритъма не връща резултати за текстове, които никой не е маркирал като прочетени.

Ето как работи долу-горе алгоритъма:
0. Имаме ограничение от X за броя върнати текстове. Имаме даден базов текст.
1. Търсят се всички читатели на дадения текст и се взимат всички техни прочетени творби.
2. За всяка творба от този списък се изчислява броя на читателите й и списъка се сортира по тази бройка.
3. После се взимат всички текстове от сортирания списък до X-то място.
4. В случай че повече от X текста отговарят на критерия, се прави пресявка по етикет на последните текстове с еднакъв брой читатели. Печелят творбите, които имат най-много общи етикети с дадения базов текст.

Ето пример:
Даден е текст № 1. Искаме първите пет подобни творби.

Търсим читателите на текст № 1. Търсим всички техни прочетени текстове и ги сортираме по брой срещания. Получава се този списък:
  • 1. № 3 — 4 читатели
  • 2. № 6 — 3 читатели
  • 2. № 8 — 3 читатели
  • 4. № 2 — 2 читатели
  • 4. № 7 — 2 читатели
  • 4. № 4 — 2 читатели
  • 4. № 9 — 2 читатели
  • 8. № 10 — 1 читател
Взимаме всички от първо до пето място. Това са:
  • 1. № 3 — 4
  • 2. № 6 — 3
  • 2. № 8 — 3
  • 4. № 2 — 2
  • 4. № 7 — 2
  • 4. № 4 — 2
  • 4. № 9 — 2
Имаме повече от пет текста, затова тези, които са на последното място (четвърто), ги пресяваме по етикет. Получаваме следния списък:
  • 1. № 7 — два общи етикета с № 1
  • 2. № 9 — един общ етикет с № 1
  • 2. № 2 — един общ етикет с № 1
  • 4. № 4 — няма общи етикети с № 1
Взимаме първите два от списъка (7 и 9), защото толкова са ни нужни, за да си попълним бройката от пет подобни текста. № 2 просто е без късмет в случая.

Това е.
Гост

Мнение от Гост »

не би ли трябвало да вземеш под внимание и етикетите към произведенията?
Аватар
Борислав
Мнения: 1065
Регистрация: 15 ноември 2005, 17:25

Мнение от Борислав »

Гост написа:не би ли трябвало да вземеш под внимание и етикетите към произведенията?
Как?
Гост

Мнение от Гост »

ами например, ако етикета на едно произведение е трилър,а на друго любовен роман, не би трябвало да ги смяташ за подобни, независимо че ги е чел един и същ човек
Аватар
Борислав
Мнения: 1065
Регистрация: 15 ноември 2005, 17:25

Мнение от Борислав »

Ако само един човек ги е прочел, най-вероятно няма да се вземе предвид, но ако са 5–10, тогава може и да има истина в подобността им. :)

Етикетите в момента също участват в избора, но само в последния етап. Мислех да ги включа и в случай че даден текст няма читатели, но почти не могат да се получат някакви сносни резултати, защото половината текстове нямат никакви етикети, а половината на половината имат само по един, което си е направо задънена улица.
Аватар
Бам Бам
Мнения: 417
Регистрация: 29 октомври 2010, 17:36
Местонахождение: Папуа Нова Гвинея
Връзка:

Re: Подобни произведения

Мнение от Бам Бам »

Предлагам тази функция да се направи по-видима чрез вграждането й като отделен таб към информационната част на произведенията. Прилагам картинка с пример.

Изображение
FuneralPyre
Мнения: 8
Регистрация: 23 август 2014, 17:24

Re: Подобни произведения

Мнение от FuneralPyre »

Аз предлагам да се премахне азбучното подреждане, а класирането да е според броя на общите читатели.
Отговор

Обратно към

Кой е на линия

Потребители, разглеждащи форума: 0 гости