timo-71

Рейтинг
63
Регистрация
19.09.2018
hakuna matata:

Sly32:
Data science, machine learning

Блокчейн забыл.

А что не так? Анализ и обработка данных в больших объёмах тут будет.

Машинное обучение?


Как выяснилось из общения в комментариях, автор вопроса использовал tesseract-ocr-setup-3.05.01. В новой версии Tesseract 4.0 with LSTM используются рекуррентные нейронные сети, использующие алгоритм LSTM (Long short-term memory) - один из самых эффективных и популярных при работе с естественными текстами.
Google протестировал точность распознавания для больших объемов данных (для языка Hindi)
отсюда

Днем потестил тессеракт, на кириллице не алё:( Латиница практически без ошибок. Заморочился, хотя мне это пока не надо. А тут вона оно чё, файлик какой то

/usr/share/tesseract/tessdata/rus.traineddata
и Как научить OCR Tesseraсt русскому языку - чем не machine learning

Скрипт из 3 строк:

По англицки (картинко)

результат

---добавил--

А у ТС сложней задача, мало кириллица, так еще и рукописный текст.

Sly32, решили- делайте. Если появится место где появится код, то буду периодически заглядывать, может какими глупостями тоже поделюсь🍻

Кузя Е:

На WP пол мира стоит.
...
Зачем самописные извращения? Наверняка на выходе получится неуклюжий крокодил, медленный и мобильнонедружелюбный.

А есть плагин для задачи ТС:D Ну, чтобы

Соответственно, достаточно достаточно сфоткать страницу журнал и оценки перенесутся автоматически

А для "извращения", 3 строчки:

from PIL import Image

import pytesseract
print( pytesseract.image_to_string(Image.open('/home/media/images/1/1.png')) )

Работает☝ Правда, для кириллических текстов, вероятно, придется потанцевать с бубном вокруг самого тессеракта.

Сходу, не очень качественно получилось текст выдрать из картинки. Но, у меня (для центоса достаточно консервативны репозитарии:( Иногда, попариться приходится, чтобы что то посвежее поставить. Но, все решаемо )

Пакет tesseract-3.04.00-3.el7.x86_64 уже установлен, и это последняя версия.

Пакет tesseract-langpack-rus-3.04.00-3.el7.noarch уже установлен, и это последняя версия.

$ tesseract --version
tesseract 3.04.00
leptonica-1.72
libgif 4.1.6(?) : libjpeg 6b (libjpeg-turbo 1.2.90) : libpng 1.5.13 : libtiff 4.0.3 : zlib 1.2.7 : libwebp 0.3.0

а там вроде 4 уже давно есть.

Так чта, последнее ваше предложение про крокодила, для данной задачи справедливо скорее для ВП

Систематизируем промежуточные результаты

обвес документа. Что надо? Есть ли необходимость в том, что все подборки должны быть тематически связаны с тайтлом.

Надо, предложены варианты:

ivan-lev:
Из банального:
- С этим товаром покупали.. (на основе уже сделанных заказов)
- С этим товаром смотрели (на основе истории переходов)
Чуть более трудозатратно в эксплуатации:
- Ручная/полуавтоматическая/автоматическая привязка товаров (чехол, защитное стекло к телефону, мышку к ноутбуку) - исходя из ассортимента.
И "прям вау":
- "Искусственный интеллект".. =) чтоб "само" как-то работало..

Вопрос только - как это "прям вау" реализовать. За первые 2 варианта (на основе ...) 🍻

шаблоны вывода категорий/карточек - достаточно один на все или гибко, у каждой категории свой шаблон.

Ни да, ни нет никто не сказал:( Считаю надо. Для шаблона тайтла, говорят гибкость надо иметь. И, чтобы 2 раза не вставать - остальные тоже неплохо бы.

правило для "товар в разной категории"

Вопрос снят

ivan-lev:
/ru/forum/1022423

правила формирования тайтл/дескрипшн

Надо, предложено:

timo-71:
если есть статичный, ручками сделанный, то он
если нет, а есть шаблон для этой категории, то собираем из него
если нет шаблона категории, а есть дефолтный шаблон, то отсюда
иначе, %name - %category - %sitename

Жду аргументированных возражений.

правила обработки 302/301. 1С обмен/xls и - сегодня товар есть, завтра нет, а послезавтра опять есть

Пока не затронуто. Считаю надо. Без редиректа, но, со ссылками на аналоги и лучше "прям вау:D

контент как шаблон.

Надо, уже есть:

ivan-lev:

В любой "более-менее CMS" что-то похожее реализовано либо в штатном функционале, либо плагинами-модулями-надстройками..
К примеру, в ModX - сниппет getResources, на вход передать параметры (для %поиска% - параметр where)..
В wp по аналогии с display-posts (не уверен, есть ли там %like%) можно реализовать свой shortcode с указанием поиска
и т.д.

множественный контент, контент это не только статья, а вставка кастомного контента в разные области документа

Пока не затронуто. Но, считаю надо.

---------

Предложения:

ivan-lev:
Тексты-тайтлы-кейвордсы для страниц товаров-категорий-статей-"подборок" (статья + вставка товарных блоков),

Нужно расшифровать понятие "подборка" :D ТЗ же. Ну типа - документ сгенерированый под определенный, нужный запрос. Который, отдаст результат поиска по базе товаров. Для которого, все выше и ниже перечисленные правила справедливы. Тайтл может быть из шаблона, если нет кописеорайтерского и т.д.

ivan-lev:

перелинковки, canonical-ы,

Каноникл - стандарт - надо. Для товарных (листинг, карточка) обвес сделает перелинковку. Если имеется в виду распределение весов - то пре/некст, в карточке, это как минимум больше одной ссылки на любую карточку. Если по умному, это скорее отдельная задача, частично решаемая тем же обвесом.

ivan-lev:

редиректы с дублей

По мне так, сук для бизнеса дублей допускать не должна.

Чета, cms как то лучше звучит😂

Dreammaker:
То есть, нужно что-то что будет выполнять логику заложенную в XML. Формально нужен будет интерпретатор или компилятор, не знаю как это назвать, потока мысли потенциального директора в виде XML в то, что будет исполняться на сервере.

Если я правильно понял идею.

ArbNet:
Итак. Движок берёт <nodes> и загружает нужные классы, у нас указан узел(класс) Menu. Затем берёт основной шаблон для html see="site" то есть файл site.html. В этом шаблоне должна быть метка [content]. Затем смотрит дочерние данные. В content у нас есть метка для меню и какое-то содержание.

Это не для директора, откуда он будет знать, что где то есть класс меню:D

А в целом задача поставлена верно, на мой взгляд. Гибкая сборка хтмл, на основе различных данных. Но, вот решение:( Есть хтмл шаблон, в котором есть метка "контент", которая заменяется на нечто, собранное по правилам из хмл-файла. Не буду разубеждать - зачем хранить в хмл, если есть варианты получше. Скажу лишь, а зачем лишняя сущность - хмл. Самого шаблона достаточно, если документацию по шаблонизаторам почитать


#Twig:
{{ 2000 | price() | raw }}
#Php:
class TwigExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_Filter('price', array($this, 'formatPrice'))
new \Twig_Filter('getComponent', array($this, 'cool_SNDL_method'))
#...............

Ну или в задаче автора, что то типа

<body>

Это содержание
{{ "\\SNDL\\Menu" | getComponent() | raw }}
</body>

Определив в TwigExtension getComponent

Dreammaker:
Ну потенциально что-то ж должно анализировать эти XML-шаблоны и переводить в какой-то другой язык, который будет работать на веб-сервере.

Методы парсинга XML известны, в результате, это в терминах пхп ассоциативный массив или string после XSLT обработки.

Если ТС метнулся к var_export, то скорее, массив.

А куда дальше придем, видимо позже посмотрим.

Но, не отнять, что ТС идеями фонтанирует. И эти идеи... Иногда, вполне себе норм.

Dreammaker:
Ибо с большой вероятностью у него компилятор или как это назвать будет виснуть на циклической обработке шаблонов, когда нужно будет заходить внутрь.

А там он есть?

компилятор или как это назвать
Тогда зачем Вар_экспорт и пхп в целом? Ну, если допустить, что

// заголовок для браузера

^ request(HTTPv)+" 200 OK"+>>;
^ "Content-Type: text/html"+>>;
^ "Charset: utf-8"+>>;
^ >>+>>;

рабочее. Что не факт, потому, что тут сказали 200, а пхп ничего не нашел и надо 404

И не для asp ли оно. Заметьте, не так

content-type: text/html; charset=UTF-8

а так

content-type: text/html

сharset: utf-8

судя по

ArbNet:
тестовый код
Например:
^ такой знак означает вывод как echo в PHP, >> это перевод строки \r\n
* MC+; это работа в классе, а это * *; выход из класса в основную программу
? условный оператор ? var(nvg)="unk" {String:nvg="main";}; если переменная nvg="unk" {значит выполнить этот код}
Тоже уже забывать стал :(

Попиарим как питон😎 чисто, как инструмент для хорошего сайта

Sly32, пхпшный бэкграунд большой, на все случаи жизни классы, функции отработанные годами есть. Так что, пока никак, приходится мириться с зоопарком :(

А в целом, скорее да, скрипач php не нужен, чем нужен. Я это понял, решая одну задачу. Спарсить документ и определенным образом обработать. Парсеры на пхп у меня норм, ответ сервера без указания кодировки их не обманет. Но вот незадача, данные нужно питоном обработать. Глупо получать их с помощью пхп, а обрабатывать питон-скриптом. А что там, питон умеет парсить хтмл? Еще как умеет.

soup = bs4.BeautifulSoup( html, 'lxml', from_encoding=encoding )

for t in soup.findAll( text=True ):
if self.tag_visible( t )==True:

Куда проще все и элегантней. А учитывая простоту асинхронной работы

with concurrent.futures.ThreadPoolExecutor( max_workers=len(self.urls) ) as executor:

url_parsed = { executor.submit( self.delivery, url ): url for url in self.urls }

Вообще - песня☝

Sly32:
на основе джанго

Я еще не дорос, в рамках задачи (банальное апи - что то сделать и отдать json в зависимости от запроса) пока достаточно

from flask import Flask

from flask_restful import Resource, Api
#.....
ivan-lev:
Не вижу проблем..

В том то и дело, что реализовать можно многое. По морфологии, я бы добавил mystem, как вариант. А для себя, после долгих раздумий, остановился на pymorphy2, тем более для

ivan-lev:

чтоб "само" как-то работало..

и некоторых других задач пригодился Gensim, для которого тоже нужна лемматизация. Поэтому, пришлось смириться с увеличением зоопарка.

Но, это детали реализации и не так важны для этой темы. Главное, что реализовать можно почти все. При этом, лучше понимать, что необходимо, а что "и даром не нать, и за деньги не нать"

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

<?php

/* Оптимизаторский файл. */

возможно, потому что искать и менять в админке сео-параметры 10-20-50-100500 урлов не очень удобно. Поэтому, для себя, решил, что edit-in-place всего, что касается документа - от контента и до сео-параметров.

ivan-lev:

К примеру, в ModX - сниппет getResources, на вход передать параметры (для %поиска% - параметр where)..

Отличная реализация, кое что стырю:)

tpl_nN	Имя чанка, выступающего в качестве шаблона для каждого N-ного ресурса, например шаблон &tpl_n4=`tpl4th` будет применен к каждому элементу, порядковый номер которого кратен 4
ivan-lev:

От логики зависит.. В общем-то тоже делается.. (причём, судя по пожеланиям проще требования к формированию перевести на нативный код без всяких плагинов.. - в зависимости от категории/времени года/фазы луны.. %name + "купить недорого")

Не совсем понял, но "Продажа слоны в Москва" проигрывает "Продажа слонов в Москве". У меня пока не получилось, придумать ничего лучшего для тайтла/h1, чем:

  • если есть статичный, ручками сделанный, то он
  • если нет, а есть шаблон для этой категории, то собираем из него
  • если нет шаблона категории, а есть дефолтный шаблон, то отсюда
  • иначе, %name - %category - %sitename / %name

Шаблон д/б с морфологией.

ivan-lev:

"подборок" (статья + вставка товарных блоков), перелинковки

Это да, т.е статья это тоже шаблон. И там может быть примерно так:

съешь ещё этих  {{ name | morph(gent) }}, да {{  relevance_one  | morph(accs)   }}, а может наберешь {{ phone }} и все организуем?  
ivan-lev:
перелинковки

Механизм? Тут можно 2 компоненты выделить - распределение веса и заманчивость. Если страница "слоны", то ссылка на "тапочки" передает вес. Но, зачем тому, кто покупает слона, тапочки. Т.е. ссылки должны заинтересовать как минимум, а в идеале и заставить купить это.

Они есть в любом современном существующем движке. (я так думаю )

Расходимся?

SeVlad:
Я тебе открою тайну, только ТСС.. "Трафик с ПС" зависит совсем от другого, но не от движка :)

Само собой. Но, инструменты должны быть предусмотрены. К примеру, то что кастомные тайтл, h1 и т.п. для карточки/категории нужны, можно легко понять, посмотрев вот это

<?php

/* Оптимизаторский файл. */
//Глобальные значения (по умолчанию)
$aSEOData['title'] = '';
$aSEOData['descr'] = '';
$aSEOData['keywr'] = '';
$aSEOData['h1'] = '';
//Определяем адрес (REQUEST_URI есть не всегда)
$sSEOUrl = $_SERVER['REQUEST_URI'];
//Собственно вариации для страниц
switch ($sSEOUrl) {
case урл: // Добавлено 19 June 2017 в 13:58
$aSEOData['title'] = что-то;
$aSEOData['descr'] = что-то;
$aSEOData['keywr'] = что-то;
$aSEOData['h1'] = что-то;

Палю - скриптик, который инклюдила (лет несколько назад) одна крутая сео контора на букву "Д". И который - регулярками менял из ob_get_contents то что есть $aSEOData. И ob_end_flush().

SeVlad:

(если он конечно не совсем уж кривой и убогий самопис).

Если сайт продвигается, вменяемыми специалистами, то, думаю, кривизна такого сайта выправлена, а убогость минимизирована.

Всего: 541