@ru_python

Страница 8578 из 9768
Alexander
31.03.2019
14:54:05
Время практики!

Alex
31.03.2019
14:54:08
В качестве примера, достаточно большой и очень дорогой продукт.

Des_
31.03.2019
14:55:16
ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s)' at line 1
Сделай как адекватный человек cursor.execute("insert into users(username) values(?)", [username])

Google
Des_
31.03.2019
14:55:56
Тебе для телефона или компа?
Для телефонов жава, это я знаю. Для десктопа

Bogdan (SirEdvin)
31.03.2019
14:56:00
Спасибо за мысль. Я просто хотел сделать решение "всё в одном", но наверное, это действительно, не нужно. Наверное, так и поступлю. Единственное, что я хотел бы, чтобы можно было параллелить цензурирование одного текста. Элементарно цензурирование одной статьи (2200 токенов) на новостном портале занимает 15 секунд. Это очень много. Я хочу оптимизировать библиотеку, но вряд ли смогу сократить время до миллисекунд, потому что у меня библиотека позволяет находить сильно искажённые или сложно образованные матные слова. Очень быстро такого не сделать, хотя бы потому что проверка орфографии на больших текстах работает секунды, а у меня сложнее алгоритмы и проверка орфографии - лишь часть процесса. Если тупо сделать Docker образ с REST, то без дополнительного кода не получится параллелить цензурирование текста. Но, думаю, что распараллеливание цензурирования текста на уровне библиотеки можно будет уже поверх REST сделать.
Стоп, почему это много?

Нормально вроде же

Alex
31.03.2019
14:56:11
Для iOS - Swift

Des_
31.03.2019
14:56:24
Для андроида, не телефонов.
Айфоны это не телефоны

M
31.03.2019
14:56:25
Можно получить интерфейс очень похожий на телеграм

Alex
31.03.2019
14:56:53
Айфоны это не телефоны
рынок с тобой немного не согласен.

Dtttts
31.03.2019
14:57:55
такео я примерно пытался писать. Но оно выбивает следующую ошибку ProgrammingError: Not all parameters were used in the SQL statement

Сделай как адекватный человек cursor.execute("insert into users(username) values(?)", [username])

Google
Dtttts
31.03.2019
14:58:16
в таблице только id и users

Alex
31.03.2019
14:58:27
Можно получить интерфейс очень похожий на телеграм
интерфейс похожий на телеграм можно получить на любом полноценном тулкие, вопрос обычно в трудозатратах.

Tishka17
31.03.2019
14:58:31
Alex
31.03.2019
14:59:09
для десктопа в зависимости от требований вагон и маленькая тележка разных тулкитов на любой вкус.

Dtttts
31.03.2019
15:00:25
но там же стоит auto_increment

Des_
31.03.2019
15:00:42
для десктопа в зависимости от требований вагон и маленькая тележка разных тулкитов на любой вкус.
Ну так меня интересует на чём его лучше писать, что бы это было и красиво и не долго)

Alex
31.03.2019
15:01:00
на том, на чем умеешь.

Dtttts
31.03.2019
15:01:05
спасибо большое

Тогда у id стоит not null и его обязательно указать

Владимир
31.03.2019
15:01:21
Народ есть для python что то вроде windows form в VS studio

Alex
31.03.2019
15:01:57
Qt вполне себе полноценный тулкит, который имеет очень широкое применение начиная от десктопов и заканчивая интерфейсами в автомобилях.

Dtttts
31.03.2019
15:02:15
сделал

А ты сделал [username] или оставил свой val?

Alex
31.03.2019
15:02:57
Спасибо щас гляну
Я вообще не тебе отвечал, но тем не менее.

Des_
31.03.2019
15:03:00
на том, на чем умеешь.
Я с горем пополам знаю только pyqt, у него очень кривые grid'ы и меня это выбесило. Мне спокойнее будет выучить новый язык и писать что-то красивое, чем на питоне пытаться вытянуть что-то с qt

Владимир
31.03.2019
15:03:20
Alex
31.03.2019
15:03:32
кривые? правда?

Google
Alex
31.03.2019
15:03:37
может быть ты просто не осилил?

Des_
31.03.2019
15:03:44
Возможно

Alex
31.03.2019
15:04:03
Да кривые
пруфов конечно же не будет

Des_
31.03.2019
15:04:07
Но интерфейсы на нём меня не впечетляют

roman
31.03.2019
15:04:19
а если в новом языке тож чо-то окажется кривым? )

Des_
31.03.2019
15:04:41
То что ты скинул про дорогой и качественный продукт — я бы не сказал что там заебись интерфейс

Roman
31.03.2019
15:05:04
Стоп, почему это много?
Ну хочется быстрее :) Spacy делает полный разбор статьи про BDD с английской википедии за 0.5 секунды, а если добавить в pipeline мой фильтр - за 50 секунд. Ясно, что задача фильтрации мата - сложная, но разница на 2 порядка - это фигово.

Toha
31.03.2019
15:05:36
а тебе нужны рюшечки или ехать?
интерфейс должен быть таким, чтобы с ним было приятно работать, а не выкинуть в сортир

Alex
31.03.2019
15:06:15
Toha
31.03.2019
15:06:32
Да, но это уже другой вопрос)

?? Eugene
31.03.2019
15:07:57
Пили биндинг на си)
Экстеншн то есть

Roman
31.03.2019
15:08:04
Пили биндинг на си)
Там проблема в большом количестве перебора. Переписывание на C не поможет (ну ОК, даже если в 2 раза быстрее станет, всё равно не 2 порядка), надо алгоритм оптимизировать. Я думаю, что если в автомате Левенштейна кешировать, то может в несколько раз скорость возрасти.

Alex
31.03.2019
15:08:09
Вопрос 1й - умеет ли фреймворк делать красивые интерфейсы? Да умет, см. QtQuick. 2й - позволяет строить сложные интерфейсы - Да позволяет. 3й - эффективно? в сравнении с электроном - очень даже. 4й - легко ли с ним работать? нет, не легко, т.к. фреймворк достаточно большой, развесистый и сложный.

Roman
31.03.2019
15:08:13
Alex
31.03.2019
15:08:43
Если тебе срать на пользователей и нужно сделать говно чтобы сразу в продакшн - берешь электрон. Если только винда - .NET + WPF

Google
Toha
31.03.2019
15:09:18
а .net core кросплатформенный тоже)

Alex
31.03.2019
15:10:06
а .net core кросплатформенный тоже)
в .net core нет UI, а про кроссплатформенный WPF подробнее.

а чем электрон плох?)
потому что дает дикий оверхед на небольших приложениях.

Roman
31.03.2019
15:10:51
в spacy запилили модель русского языка?
Я же пишу, с английской википедии. А вообще: https://github.com/buriy/spacy-ru/ Только я не проверял, потому что последняя версия spacy не поддерживается, а она мне и нужна.

Toha
31.03.2019
15:10:52
там правда датагрид еще не реализован, но основные контролы и подход wpf - да

Aragaer
31.03.2019
15:11:59
а то есть мат ты фильтруешь опять же английский?

просто я где-то примерно год назад нашел для себя spacy, но тогда русской модели не было

Roman
31.03.2019
15:12:47
Ну так у вас же юзкейс другой и мне кажется, что вполне ок. Не совсем понятно, зачем быстрее.
Есть вот такая либа: https://github.com/vzhou842/profanity-check Она не умеет в глубокий анализ, зато на основе ML написана. Там есть (некорректное) сравнение с моей либой по скорости. Хочу, чтобы их либа была не во столько раз быстрее.

а то есть мат ты фильтруешь опять же английский?
Нет, русский тоже: https://github.com/rominf/profanity-filter/#overview

Aragaer
31.03.2019
15:14:57
тогда я не понял - как работает твой фильтр, если ты не используешь модель русского языка?

Tishka17
31.03.2019
15:15:29
Если вдруг кому интересно, начал тыкать pyright. Вроде даже что-то опознает, хотя косячит местами. Сделал докерфайл ему https://github.com/Tishka17/pyright_docker

Tishka17
31.03.2019
15:15:59
Если осилю, попробую обзор соорудить, хотя хз

Google
Alex
31.03.2019
15:17:46
ldd /usr/bin/telegram-desktop ... libQt5Network.so.5 => /usr/lib/libQt5Network.so.5 (0x00007f39e0c83000) libQt5Widgets.so.5 => /usr/lib/libQt5Widgets.so.5 (0x00007f39e0613000) libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x00007f39e0058000) libQt5DBus.so.5 => /usr/lib/libQt5DBus.so.5 (0x00007f39dffc7000) libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007f39dfa97000)

ой... неожиданно правда?

Roman
31.03.2019
15:19:44
тогда я не понял - как работает твой фильтр, если ты не используешь модель русского языка?
Я писал одной заинтересованной девчонке, как работает моя библиотека, процитирую: В библиотеки нет ключевой идеи, поэтому расскажу шаги. 1. Токенизируем текст элементарным регулярным выражением и бинарным поиском по списку токенов разбиваем текст на куски на одном языке с помощью библиотеки polyglot. 2. Проходим по кускам на одном языке, токенизируем с помощью spacy (spacy работает на основе моделей для конкретного языка, поэтому мы его можем использовать только для этого этапа и дальше). Для каждого токена мы вызываем функцию, которая цензурирует слово, разбирая его на подстроки. 3. В цикле, который завершается когда на очередной итерации мы ничего не зацензурировали, мы разбиваем слово в текущем состоянии на подстроки и выкидываем оттуда все подстроки, которые мы уже умеем цензурировать, а так же подстроки этих подстрок (их мы тоже умеем цензурировать, ведь мы же отцензурировали саму подстроку). Каждую подстроку цензурируем как отдельное слово. Если у нас выключен глубокий анализ, то после первой подстроки (то есть самого слова) мы заканчиваем. 4. Сначала мы с помощью всех доступных средств леммы слово. Если глубокий анализ включен, и лемма не является словарным словом, мы выбрасываем все символы, не являющиеся буквами. Потом мы смотрим, если все леммы у нас без мата, значит возвращаем слово как есть. Если у нас это слово уже было отцензурировано, то возвращаем его. Проходим по леммам. Если лемма попадает в мат, то цензурируем слово. Если нет и включён глубокий анализ, проверяем есть ли слово в нормальном словаре. Если слово есть, то дальше разбирать его не нужно. Если в нормальном словаре слова нет, то с помощью автомата Левенштейна ищем похожие на мат леммы. Если нашли, то цензурируем слово. Пример (прошу прощения за мат :)): "бля" -> лемма "бля" -> поиск по словарю мата -> зацензурировали. "корабля" -> леммы "корабль", "корабля" -> мата нет -> проверяем по нормальному словарю -> есть в словаре, глубже не идём и часть слова "кораБЛЯ" не зацензурируем. "ухтыжбля" -> деление на подстроки -> "жбля" -> лемма "жбля" -> в словаре мата нет -> в нормальном словаре нет -> автомат Левенштейна находит похожесть на "бля" -> зацензурировали. В общем это всё, за исключением некоторых тонкостей, которые проще понять из кода. Чего не умеет библиотека: ASCII art из мата, выявление сложных конструкций типа "ты козёл!", строки типа "б л я" (из-за вычислительной сложности).

Она обещала перевести на английский (мне влом), но пока своё обещание не сдержала. Как только переведёт - выложу в README.md.

Что лучше взять для реализации REST API? Я понимаю, что будущее за асинхронными фреймворками, поэтому у меня 2 претендента: aiohttp и sanic. Я бы взял aiohttp (был хороший опыт), но sanic типа быстрее. Кто что думает?

Bogdan (SirEdvin)
31.03.2019
15:26:20
А зачем вам асинхронный фреймворк? У вас же вроде cpu-based задача

На них асинхронность лишний оверхед

Roman
31.03.2019
15:27:13
А зачем вам асинхронный фреймворк? У вас же вроде cpu-based задача
То есть лучше просто Flask взять и не париться?

Bogdan (SirEdvin)
31.03.2019
15:27:26
Типо того

Асинхронные штуки дают преимущество, когда много io задач, типо запросов по сети

Roman
31.03.2019
15:28:21
На них асинхронность лишний оверхед
Ну да, наверное вы правы. У меня просто в голове шаблон "асинхронность - это круто", а смысла в ней в конкретном случае, действительно, наверное, не много. Спасибо.

Tigran
31.03.2019
15:28:34
Как и у всех здесь!

Aragaer
31.03.2019
15:28:36
неправильный шаблон

правильный это "асинхронность это вынужденно"

Aragaer
31.03.2019
15:29:15
то есть если ты не успеваешь все сделать синхронно, тогда можно подумать об асинхронности

Bogdan (SirEdvin)
31.03.2019
15:29:23
Если у вас почти все время работы мячик на стороне приложения, то асинхронность сделает хуже из-за ивент-лупа

Bogdan (SirEdvin)
31.03.2019
15:30:03
то есть если ты не успеваешь все сделать синхронно, тогда можно подумать об асинхронности
Эм, зачем? Если вы работаете с бд в приложении, на 90% уверен, асинхронность для вас

Страница 8578 из 9768