• Что использовать для обучения на питоне?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    чтобы сеть отличала подачу (как написаны тексты)

    Святая наивность!
    По такой четкой постановке грех не решить задачу одной строчкой вообще.
    Готовой библиотеки для "сравнения подачи текста (как написано)" вы не найдёте.

    Пробуйте посчитать суммарную статистику N-грамм для всех подходящих и неподходящих текстов. Возьмите топ этой статистики (m самых часто употребимых в корпусе размеченных текстов n-грамм), зафиксируйте сортировку n-грамм и формируйте m-мерные вектора для каждого текста.
    На получившихся векторах обучайте многослойную нейронку.
    Экспериментируйте со скрытыми слоями, с размером вектора m, размером обучающей выборки, чтобы избегать переобучения и получить достаточный коэффициент правильных ответов.

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

    А так у яндекса есть какой-то инструментарий.
    Вот еще https://www.nltk.org/
    Либу для нейронок на питоне вообще найти не проблема. Любую берите с которой проще освоиться.

    Можно попробовать с нормализацией слов перед векторизацией поиграться, но вместе с окончаниями может потеряться важное: фамильярность, падежи, лица, деепричастия и прочие обороты.
    По-хорошему нужно дать тексты почитать филологу, чтобы он сделал заключение по каким основным критериям разбит корпус. Даже если критерии будут нечеткими, вы, возможно, поймёте допустима ли нормализация, какие фиксипрованные критерии добавить...
    Возможно эффективным будет в вектор независимо от частотности добавить матерные слова, просторечивые выражения, неологизмы, признаки наличия сложносочинённых предложений, признаки переусложнённого словообразования и т.д.
    Это, в зависимости от назначения вашей системы, может помочь или помешать.

    Консультируйтесь со специалистами. Всё на свете нейронками не закидаешь.
    Ответ написан
    4 комментария
  • Ошибка Python: в чем проблема?

    @dmshar
    get_street() - как и get_city(), get_state(), кстати - требуют обязательного параметра (так эти функции определены выше). Вы этого параметра не задаете.
    Ответ написан
    Комментировать
  • Как правильно хэшировать файл большого размера?

    @Mercury13
    Программист на «си с крестами» и не только
    Я не понял, что значит «хэшировать». Если получить хэш-сумму — то все алгоритмы расчёта хэш-сумм позволяют скармливать файл небольшими блоками. И методика зависит библиотеки файлов и хэш-сумм, которой вы сейчас пользуетесь.
    Ответ написан
    Комментировать
  • Как написать свой менеджер окон для linux?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    How X Window Managers Work, And How To Write One (Part I)
    How X Window Managers Work, And How To Write One (Part II)
    How X Window Managers Work, And How To Write One (Part III)
    TinyWM – A tiny window manager in around 50 lines of C
    Writing a Desktop Environment with Python
    How to Write a Window Manager in Python
    Ответ написан
    3 комментария
  • Что такое инверсия зависимостей в python?

    Ranc58
    @Ranc58
    Backend python developer
    По сути - как и везде. Пример- У бизнесс логики не должно быть зависимостей от конкретных реализаций. Сегодня у вас все хранится в постгрес а завтра в монге. Инверсия зависимостей позволяет более менее безболезненно совершить такой переезд, так как слой бизнесс логики понятия не имеет где вы храните данные. Ниже накидал грубый но вроде понятный кусок кода. Есть некая сущность блог, к которой можно добавлять пользователей и смотреть их. Блог должен откуда то тянуть данные и где то хранить их. Мы создаем некий интерфейс DBInterface ,который имеет стандартные методы добавить/удалить данные. Далее создаем класс SQLdb который реализует этот интерфейс.

    В самом классе блога мы реализуем функции получения/добавления пользователей без привязки к конкретной системе хранения: просто создаем экземпляр класса SQLdb и экземпляр класса Blog , передавая туда sqldb. Когда мы захотим переехать на монгу - нам не надо будет трогать класс блога. Мы всего лишь реализуем класс Mongodb для новой базы и будем опрокидывать его в блог вместо sqldb. Итог - блог не зависит от системы хранения вообще.
    Пример сильно упрощен и утрирован, но для понимания как оно работает думаю сойдет)

    from abc import ABC, abstractmethod
    import random
    
    
    class DBInterface(ABC):
    
        @abstractmethod
        def insert(self, data):
            pass
    
        @abstractmethod
        def get(self, id):
            pass
    
    
    class SQLdb(DBInterface):
    
        def insert(self, data):
            print(f"inserted {data} from mysql")
            return random.randint(0, 100)
    
        def get(self, id):
            print(f"get user {id} data from mysql")
            return {'id': id, "data": "some_data"}
    
    
    class Mongodb(DBInterface):
    
        def insert(self, data):
            print(f"inserted {data} from mongo")
            return random.randint(0, 100)
    
        def get(self, id):
            print(f"get user {id} data from mongo")
            return {'id': id, "data": "some_data"}
    
    
    class Blog:
    
        def __init__(self, db, blog_id):
            self.db = db
            self.blog_id = blog_id
    
        def add_user(self, name):
            self.db.insert(name)
    
        def get_users(self):
            return self.db.get(self.blog_id)
    
    
    if __name__ == '__main__':
        sql_db = SQLdb()
        mongo_db = Mongodb()
    
        blog_with_sql = Blog(db=sql_db, blog_id=1)
        blog_with_sql.add_user("test") # Выведет inserted test from mysql
    
        blog_with_mongo = Blog(db=mongo_db, blog_id=1)
        blog_with_mongo.add_user("test") # Выведет inserted test from mongo
    Ответ написан
    2 комментария
  • Как заменить символ строки на индекс этого символа в массиве?

    @o5a
    Потому что replace не меняет оригинал, а только возвращает измененную строку, т.е. нужно переприсваивать.
    Но для подобной замены по словарю (набор значений меняется на другой набор значений) лучше использовать translate (в параметрах передаем пары "символ":"индекс + 1"), без всяких дополнительных циклов.

    word = word.translate(str.maketrans({c:str(i+1) for i,c in enumerate(alpha)}))
    Ответ написан
    Комментировать
  • Можно ли сделать на python проверку строковых условий?

    shabelski89
    @shabelski89
    engineer
    24500334-mark-lutc-izuchaem-python-4-e-i
    answer_yes = 'yes'
    answer_no = 'no'
    if input('Вы прочитали книгу Лутца? ').lower() == answer_yes:
        print('Ложь! Этого вопроса бы тут не было!')
    else:
        answer = input('Вам нужно сначала прочитать книгу Лутца, хотите? ').lower()
        if  answer == answer_yes:
            print('https://www.litres.ru/mark-lutc/izuchaem-python-4-e-izdanie-24500334/')
        elif answer == answer_no:
            print('без труда не вытащишь и рыбку из пруда')
        else:
            print('Вот Вам и простой пример ветвления')
    Ответ написан
    Комментировать
  • Почему pandas странно отрабатывает в данном примере?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    ну на Панду слишком самонадеянно
    (тебе еще повезло что нет проблем с кодировкой)
    проще мидлварь, приводящую данные к требуемому нормированному формату
    Ответ написан
    Комментировать
  • Python выдаёт ошибку: SyntaxError: invalid syntax что делать?

    mmmaaak
    @mmmaaak
    Изучать синтаксис питона
    Ответ написан
    Комментировать
  • Как открыть гугл через os python?

    tumbler
    @tumbler Куратор тега Python
    бекенд-разработчик на python
    Ответ написан
    Комментировать
  • Как можно удалить определенный элемент по ключу из словаря?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Во-первых, для таких данных лучше подойдёт список списков, в котором индекс обозначает номер зала или номер места, а занятость места отображается логическим типом:
    [
        [             # Первый зал
             True,    # Первое место (занято)
             False,   # Второе место (не занято)
             False,
             True,
             ...
        ],
        [ ... ],  # Второй зал
    ]

    Во-вторых, элемент словаря удаляется оператором del: del some_dict['some_key']
    Ответ написан
    3 комментария
  • Как вывести алфавит русского языка на Python?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    >>> a = ord('а')
    >>> ''.join([chr(i) for i in range(a,a+32)])
    'абвгдежзийклмнопрстуфхцчшщъыьэюя'


    вариант с "ё"
    >>> ''.join([chr(i) for i in range(a,a+6)] + [chr(a+33)] + [chr(i) for i in range(a+6,a+32)])
    'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
    Ответ написан
    3 комментария
  • Как обойти защиту от парсинга Cloudflare?

    DevMan
    @DevMan
    какой бы не был курл, нужно разгадывать капчу.
    Ответ написан
    8 комментариев
  • Как запустить парсер по крону?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Используйте Flask-Script для этого.

    Проблема в том, что после запуска командой flask run парсер отрабатывает, но ...

    Это вы явно что-то не то делаете...
    Ответ написан
    Комментировать
  • Законно уйти с UpWork?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    Оно вам надо так заморачиваться?
    Заказчики приходят и уходят, а аккаунт на Upwork дорого стоит. Тем более подработка может потребоваться в любой момент.

    Просто молча работайте вне Upwork и всё. Главное, не обсуждайте это в чате ;) Контракт можно закрыть с пометкой "работа выполнена успешно".
    Ответ написан
    Комментировать
  • Какие нужны фундаментальные знания?

    Exomode
    @Exomode
    Архитектор ПО
    Это ощущение вас никогда не покинет, учитывая темп развития технологий в последние 20 лет. Только вы досконально изучите и научитесь работать с одной технологией - ей на замену сразу придет другая и придется её точно так же изучать чтобы оставаться технически востребованным и конкурентноспособным специалистом на бирже труда. Смиритесь с этим чувством. Либо просто досконально изучите определенный классический стек технологий и работайте с ним, если ваш уровень развития вас устроит.

    По поводу литературы и мануалов от себя могу сказать, что в нашем деле главное не теория, а практика. Мы делаем, а не учим. Наше дело - как максимум, помочь другим советом или опытом. Мы никак не сможем многолетний практический опыт, выработанный склад мышления и все наши навыки доскональным понятным языком описать в очередной книге чтобы, прочитав её, другой человек смог достичь того же уровня. Это очевидно. Практикуйтесь, развивайтесь, изучайте, экспериментируйте, не бойтесь на первый взгляд нерешаемых задач, больше практики, меньше чтения. Восполняйте чтением необходимые вам теоретические пробелы, чтобы ваши практические навыки улучшались. Это главное, что я могу сказать, опираясь на собственный десятилетний опыт работы в нашей сфере труда.
    Ответ написан
    Комментировать
  • Как получить капчу?

    PavelK
    @PavelK
    А не проще вместо скриншота находить через разбор DOM нужный элемент и брать готовую картинку?
    Ответ написан
    2 комментария
  • Что посоветуете или какой визуальный редактор (конструктор) на python?

    longclaps
    @longclaps
    Врут, особенно про профессионалов.
    Про визуальный редактор (конструктор) на python советую забыть. Всё это лажа и нае**лово.
    Учитесь программировать путём написания программ.
    Ответ написан
    1 комментарий
  • Как создать новый проект в pycharm?

    @deliro
    Это правильно, что он не видит компилятор. Ведь у питона интерпретатор.
    Ответ написан
    Комментировать
  • Как запускать приложение?

    shpaker
    @shpaker
    Вольный хлебопашец
    subprocess в помощь
    import subprocess
     
    args = ["ping.exe", "www.yahoo.com"]
    process = subprocess.Popen(args, stdout=subprocess.PIPE)
    data = process.communicate()
    print(data)

    Ссылка на доку https://docs.python.org/3/library/subprocess.html
    Ответ написан