timo-71

Рейтинг
63
Регистрация
19.09.2018
agesd #:
это человеко годы  )
Они у меня уже потрачены. Правда, на другие цели. Но, накопился багаж, позволяющий не тратить годы на

фронт енд

личный кабинет

админка

отчеты

настройка сервера

итд

Сергей Ефимов #:
Ну так ты размышляешь с точки зрения программиста, поверь, точка зрения продукт оунера

Есть такое. Просто в данной задаче, я и швец и жнец, что называется.  Поэтому и интересуюсь😊

Хочется уже что то свое напилить. Тем более, мне это ничего не стоит, кроме потраченного времени. Причем,  время тратится в любом случае с пользой - решение всяких маленьких и больших задач отлично разминает мозг и дает много новых знаний.

Спасибо за развернутый ответ.

Несколько возражений.

Сергей Ефимов #:
Питон для таких задач - полное говно. Он просто бесполезен в сравнение с тем же Ларавел.

Не вижу никаких преимуществ ни какого php фреймворка относительно python+aiohttp. Повторюсь, я почти 20 лет на пхп). Кроме может, кол-ва разработчиков на рынке. В плане инструмента для создания продукта - только плюсы. Один pymorphy2 чего стоит.

import pymorphy2
....
self.morph = pymorphy2.MorphAnalyzer()
....
p = self.morph.parse(ww)[0].normal_form

3 строчки и текст объявления лематизирован. Еще немного кода, и сразу ясно про похожие, категории, ключевики т.п. имеющие отношение к этому объявлению. В т.ч. пресловутое LSI (gensim тоже используется).  Отсюда - более менее адекватный обвес объявления, что дает максимально полный ответ пользователю.  В рамках возможного..

Выше пример приводил, про  "достопримечательности праги".  Согласитесь, показать, что там есть на сайте связанное с  'град_пражский', 'площадь_староместский', 'карлов_мост', 'город_старый' и т.д., на объявлении про  достопримечательности праги уместно. И никакой Ларавел не поможет сделать такой анализ, практически на лету, с лучшим качеством.

В целом, переход с пхп на питон процентов на 40% снизил кол-во кода, при этом функционала меньше не стало, а наоборот - прилично больше..

Сергей Ефимов #:
если товар не приди-возьми

Считаю гео важнейшей компонентой. Начиная от региональной выдачи по гео-запросам, до удобства пользователей. Я как правило, пойду туда где ближе. И если сервис дает мне такую возможность, это большой плюс. 

По большому счету главная задача - трафик. Поэтому и заморочился с гео, н-граммами, связанными темами и т.д. Посмотрим, что получится😉

Сергей Ефимов #:
хочешь запуститься за год - MVP должно быть сильнее уже готовых конкурентов, надо готовить миллионов

Тоже хочу попробовать. Только без миллионов😎  

Как думаете, взлетит с учетом нижеследующего? Очень интересен ваш опыт.

Сергей Ефимов #:
Мысль была в создание топ-функционала и дизайна

Получилось?

  1. Гео - ближайшие по координатам, обвес объявления соответственно с учетом
  2. уникальные фильтры под категорию, => кастомные параметры для каждой категории
  3. поиск (морф) с поисковой подсказкой
  4. Обвес - "Аналоги",  "С этим" и т.д. более менее адекватно.
  5. Быстро, до 100мс
  6. Корректно заголовки - 200../300../400../500.., ласт_модифаед и т.д.
  7. Сервисы для юзера - загрузил xls(x), тут же тебе готовый yml + архитектура, позволяющая быстро создавать всякие выгрузки-интеграции  
  8. ...еще 100500

Функционал считаю самой важной компонентой..

Сергей Ефимов #:
Изначально покупался говно сервис на питоне

Для снижения стоимости - лучшего варианта чем питон не нашел. Не сразу. Почти 20 лет на php.  Трудно было отказаться.  Да и джанга со фласками  всегда уступали на одинаковых задачах в скорости. Пока не поюзал aiohttp.

Но, готовая морфология, lsi, lda, tf-idf. aiohttp удерживающий  100+ рпс на дешевом впс 1гиг, с 5-7 запросами (для сборки категории/объявления) к монге 1кк объяв в 2000+ категориях (в тестах ab -n 3000 -c 200  http:***). Как минимум не хуже аналогичных тестов на php74

Сергей Ефимов #:
и дружбу реакта с ларавель

Сова на глобус. 

Сергей Ефимов #:
расход ушёл на сбор семантики

А зачем? Семантика сегодня одна, завтра другая. 

Например, положили вам объявление " достопримечательности праги". Никто не мешает расширить семантику, сделать обвес и т.д. автоматически.  По данным Яндекс_xml, букварикс/мутаген, текста объявления и gensim

Сам себя процитирую, 

timo-71 #:

запрос "достопримечательности праги" для сравнения с этим

Интересный результат получается, если сматчить биграммы полученные из топ20 выдачи, с биграммами из

запросов

$ /home/web/py/w2v/key.py

['град_пражский',

'площадь_староместский',

'карлов_мост',

'город_старый',

'святой_собор',

'вацлавская_площадь',

'тынский_храм',

'еврейский_квартал',

'дом_танцующий',

'башня_пороховой',

'место_стар',

'исторический_центр',

'маленький_страна',

'берег_левый',

'малый_страна',

'площадь_республика',

'место_нова',

'камп_остров',

'интересный_место',

'билет_входной',

'вар_карлов',

'место_стара',

'метро_станция',

'гора_кутна',

'метро_схема',

'отзыв_турист',

'виноград_район',

'проезд_схема',

'интересный_факт',

'петь_фонтан']

datum :
cdns.cite.com/css/style.css

Про статику на другом железе сказано. Еще, с точки зрения кеширования. если этот  /css/style.css используется, ну например на сайте с гео

abakan@respublika-hakasiya abakan Республика Хакасия Абакан 53.721152 91.442387 11340 1095 0.591715612273056 0.806146782039302 -0.0251717432737686 0.999683141470616


И таких, ну например, 2855 субдоменов. Попав в кеш браузера на одном из них, на других, браузером будет использована версия из кеша.

Боты - один и тот же логотип, не говоря о других файлах, на 2855 субдоменах, очевидно некую нагрузку создаст. Ну и т.д. и т.п. 

Vladimir SEO #:
могут и еще как , тысячами делают ошибки

Издержки представления о роутинге разработчиков сайтов на кмс/фреймворках (просто пример, справедливо и для остальных):

Route::get(' catalog/{category}', function ($catId) {});
Route::get('catalog/{category}/{item}', function ($catId, $itemId) {});

сделали, а 

Route::get('catalog', function () {});

забиыли.

С технической стороны перекликается с  https://searchengines.guru/ru/forum/1029521

foxi #:
Гоните нафиг такого "стратега",

Там есть нюанс. Ну, если, 

Этот товар закончился

а все вокруг увешано абсолютными аналогами.

Конечно, если сделать, 

Смартфон Apple iPhone 6 1/16GB, серый космос закончился, купите наши хиты и новые товары:

Автокран, Телевизор, Тапочки.

Будет все как вы сказали.😂 



Dram #:
Спасибо то что нужно!

Получилось еще одно доказательство, то что ТЗ надо внимательно читать и понятно излагать.  

Array
(
    [0] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
            [5] => 0
        )

    [1] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
            [5] => 0
            [6] => 0
            [7] => 0
            [8] => 0
        )

    [2] => Array
        (
            [0] => 0
            [1] => 1
            [2] => 0
            [3] => 0
            [4] => 1
            [5] => 0
        )

)
<?php

$oldArray = [
  [0,0,0],
  [0,0,0],
  [0,1,0],
  [0,0,0],
  [0,0,0],
  [0,0,0],
  [0,1,0],
  [0,1,0],
  [0,0,0],
  [1,1,1],
];

$new_a = [];

$l = count($oldArray);
$tmp0 = [];
$tmp1 = [];

function _a(array &$a, array &$b, array $c){
  $aa = [];
  foreach($c as $v){
    $aa = array_merge($aa, $b[$v]);    
  }
  $a[] = $aa;
}

for($i=0;$i<$l;$i++){
  if(!in_array(1, $oldArray[$i])) {    
    if(count($tmp1)>1)  {
      _a($new_a, $oldArray, $tmp1);
    }
    array_push($tmp0, $i);
    $tmp1 = [];
  }  else {    
    if(count($tmp0)>1) {
      _a($new_a, $oldArray, $tmp0);
    }
    array_push($tmp1, $i);
    $tmp0 = [];
  }
}

print_r($new_a);

Если опять не так, то умываю руки. Пардон, что читаю по диагонали, сначала между делом. Но, есть и плюс - разные варианты разобрали.

Вы можете для проверки, лошадью сходить.

function _a(array &$a, array &$b, array $c){
  foreach($c as $v){
    $a[$v] = $b[$v];
  }
}

Увидеть индексы исходного, которые добавились

В моем случае оно дало:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )

            [1] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )

            [3] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )

            [4] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )

            [5] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )

        )

    [1] => Array
        (
            [6] => Array
                (
                    [0] => 0
                    [1] => 1
                    [2] => 0
                )

            [7] => Array
                (
                    [0] => 0
                    [1] => 1
                    [2] => 0
                )

        )

)

Нетрудно заметить, добавились для

0  [0,0,0], в [0]
1  [0,0,0], в [0]
2  [0,1,0],
3  [0,0,0], в [0]
4  [0,0,0], в [0]
5  [0,0,0], в [0]
6  [0,1,0], в [1]
7  [0,1,0], в [1]
8  [0,0,0],
9  [1,1,1],

Точно, пора в санаторий.

Всего: 541