• Как спарсить из html файла кусок строки, зная ее характерное содержание, используя различные библиотеки?

    @sunsexsurf
    IT & creative
    Гуглим "beautifulsoup a href".
    Получаем: https://stackoverflow.com/questions/5815747/beauti...

    решение:

    for a in soup.find_all('a', href=True):
        print("Found the URL:", a['href'])


    а вы говорите, что "не нашёл аналога startswith"... просто не то искали...
    Ответ написан
    1 комментарий
  • Как сделать поиск который понимает суть запроса?

    @sunsexsurf
    IT & creative
    Вы решаете задачу, которую решает Гугл, в целом.
    в общем, путь, по которому можно пойти:

    1/ прикрутить к вашей поисковой строке расстояние Левенштейна и искать совпадения. Уже будет работать. Плоховато, но лучше, чем ничего.
    2/ Посчитать tf-idf на ваших документах и смотреть, что ввел пользователь. Будет работать значительно лучше
    3/ построить w2v: каждому слову будет дан эмбеддинг (векторное представление), косинусные расстояния между векторами будут обозначать похожесть слов (синонимическую)
    4/ Прикрутить Берт-подобные модели. Если сайт не какой-то специфический, можно даже не доучивать на вашем корпусе.
    4 итерация - это, по сути, "предгенеративный" шаг. Потом начинаются большие языковые модели (типа огромного Ялма) и всякие вопросно-ответные системы типа чатЖПТ.
    Ответ написан
    Комментировать
  • Как настроить ML-модель?

    @sunsexsurf
    IT & creative
    автор выше вам ответил очень объемно и правильно. Дополнительно, не забывайте про такую библиотеку (hyperopt): https://habr.com/en/post/542624/
    Она работает лучше, чем встроенная в sklearn (но для базового понимания надо начать с нее)
    Ответ написан
    Комментировать
  • Какие библиотеки могут понадобится для факторного анализа в Python?

    @sunsexsurf
    IT & creative
    вы можете использовать pandas/numpy, может быть пригодится scipy и, вероятно, sklearn. Визуализация - matplotlib/seaborn или plotly. Какой именно анализ вы хотите сделать? Если не привязываться к языку, на R удобнее.
    Ответ написан
  • Какой конфигурации нужен ноут для комфортной локальной разработки в Дата Саенс?

    @sunsexsurf
    IT & creative
    Присоединюсь к ответам умных ребят.
    Если вы под DS подразумеваете «повертеть таблички в пандасе и разобраться в «классической машинке» (sklearn, бустинги и т.д.), то вам ничего не помешает это сделать на обычном ноуте. Любом. Тем более, датасеты обычно в начале тестовые и не тяжелые. Выбирать ли мак или нет - вообще дело исключительно вашего удобства.

    Если вы хотите в «современный DS», в котором много занимает обработка изображений (какие-нибудь медицинские соревнования на Кэггл), то начинаются «вычислительные потолки» и вот тут вам действительно уже нужно идти либо в карточки, либо в облачные истории с AWS или что-то такое. Но тестовые штуки можно пробовать считать и на компе, и в Гугл-коллабе.

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

    @sunsexsurf
    IT & creative
    Если вы точно знаете, что телефон записан так и других форматов нет, то можно попробовать доставать его регуляркой. Или записать все возможные форматы в список и по нему циклом проходиться, доставая элемент и проверяя его (напр.: ['+79251231233', '9251231233', '+7-925-123-12-33']. Тут проблема в том, что под каждый такой вариант нужно будет написать регулярку).
    По тексту "телефон" искать - хорошая идея, но проверьте, всегда ли он есть, этот текст.
    Ответ написан
  • Как вычислить веса линейного классификатора?

    @sunsexsurf
    IT & creative
    Поддержу автора выше. Нарисуйте линию, посчитайте сумму квадратов расстояний от ваших точек до этой линии (или средний квадрат - как вам будет угодно), поищите другие линии. Таким перебором вы рано или поздно нарисуете такую, при которой ваша ошибка будет минимальной. Такая линия будет "усреднением", аппроксимацией ваших наблюдений. Если вы в ваши точки добавите еще и класс этих точек (напр., бинарное разделение, 1 и 2). то тут вы должны не только исхитриться провести линию "усредненно", но еще и так, чтобы точки одного класса оказались с одной стороны, а точки другого - с другой. Иногда для этого добавляют еще одну размерность, в которой эти точки хорошо разделимы. Это вкратце о разделяющей поверхности и методе svm. Естественно, руками такого никто не делает, ваш sklearn давно и хорошо это умеет "из коробки".
    Ответ написан
    Комментировать
  • Как категоризировать товары на сайте?

    @sunsexsurf
    IT & creative
    странно, что в фасттекст не задалось. У вас, по сути, как я понял из вашего вопроса, задача разложить описание товара на несколько категорий. Ну так и давайте по шагам:
    1/ берем текст, берем обученную модель, находим, что товар - утюг. Ок, прекрасно. (Кстати, на верхнем уровне даже модель не нужна - регулярок, наверное, достаточно, но это вам решать)
    2/ Снова применяем фасттекст к тому же описанию, но ищем что-то про пар (вообще, тут можно искать в один проход, по сути, но надо правильно считать метрику - вам же вначале надо сегментировать утюги).
    3/ записываем айдишник этого утюга в паровые утюги, ок.

    По сути, вы из текста должны вытащить несколько сущностей. Попробуйте DeepPavlov - может взлететь.
    Ответ написан
    Комментировать
  • Можно ли анализировать данные с экселя через Python?

    @sunsexsurf
    IT & creative
    0/ импортируете пандас, естественно, он должен быть установлен изначально
    import pandas as pd
    1/ читаете файл экселя в джупитер
    df = pd.read_csv('путь до файла)
    или
    df = read_excel('путь до файла)

    вуаля. файлик у вас в памяти.

    теперь прикручиваете к нему среднюю по каждому айдишнику ученика, например.
    Или регрессию строите.
    Или марковскую цепь (что даже лучше)

    Играетесь с данными

    На экзамене получаете, что Иванова должна была получить 5, а получила 3, потому что не выспалась.
    Расстраиваетесь.

    Берете новый датасет...

    И так - по кругу
    Ответ написан
    Комментировать
  • Как в url вставлять поочерёдно слова из списка в документе?

    @sunsexsurf
    IT & creative
    во-первых, ф-сроки чуь по-другому работают.
    url = f"https://api.bgpview.io/asn/{asns}/prefixes"


    во-вторых, если "только одна строка из списка", то, вероятнее всего, последняя.
    сдвиньте url в цикл:

    for url in file.readlines():
        asns = url.strip()
        url = f"https://api.bgpview.io/asn/{asns}/prefixes"
    Ответ написан
    1 комментарий
  • В чем ошибка в коде при роутинге на go?

    @sunsexsurf Автор вопроса
    IT & creative
    так. первый этап решения проблемы оказался в том, что надо пофиксить html, а именно href:
    <a href = "login_page.html">
    меняем на
    <a href = "/login">
    Ответ написан
    Комментировать
  • Как брать текст только из одного тега в bs4?

    @sunsexsurf
    IT & creative
    Есть четыре варианта (хотя, идейно они все похожи):
    1/ вы собираете все i в список, потом берёте i[0] (либо bs, либо регулярками)
    2/ вы прерываете цикл после первого i (через брейк или try / except)
    3/ вы ищете не через find_all, а просто через find
    4/ вы собираете все в set(). Если все элементы были одинаковые set будет состоять из 1 элемента
    Ответ написан
  • Как обновить pandas dataframe данными из словаря?

    @sunsexsurf Автор вопроса
    IT & creative
    решение со SO:
    ```
    t = test_dict_df["name"].map(update_dict).dropna()
    test_dict_df.loc[t.index, "value"] = t
    ```
    Ответ написан
    Комментировать
  • Как просуммировать данные в столбец без группировки?

    @sunsexsurf Автор вопроса
    IT & creative
    вопрос описан тут:
    https://stackoverflow.com/questions/57874745/how-t...
    Ответ написан
    Комментировать
  • Какая лучшая библиотека для распознавания лиц с их классификацией?

    @sunsexsurf
    IT & creative
    если вас интересует именно face recognition (и как можно быстрее из коробки), то смотрите в сторону Open CV.
    Ответ написан
  • Как сравнивать строки по неполному сходству?

    @sunsexsurf
    IT & creative
    Про расстояние Левенштейна (как базовую метрику, с которой стоит начинать) вам уже написали. Проблема начинается, как по мне, в момент, когда приходит понимание, что "слова могут быть переставлены". И тут вам придется вспомнить комбинаторику и все эти факториалы. Потому как даже для трех слов количество перестановок будет равно 3! = 6. А вы, опять же скорее всего, будете брать и сплитить вашу строку по пробелам и сравнивать каждое слово с каждым. Чувствуете возрастающую сложность?
    Ответ написан
    Комментировать
  • Умный голосовой помощник?

    @sunsexsurf
    IT & creative
    Не соглашусь с автором выше (точнее, в некоторых деталях мог бы поспорить). Только что делал проект, требующий распознавать голос в телеге. Обязательно посмотрите в сторону Vosk / Vosk_small. Он лучше speech kit-а. Распознавание почти как у Олега. Даже в предобученном виде, без вашего дообучения. При этом, это Open Source. Это - SOTA в настоящий момент среди бесплатных решений по voice recognition.
    Ответ написан
    Комментировать
  • Как добавить значение в столбец в цикле?

    @sunsexsurf Автор вопроса
    IT & creative
    Решение:

    for i in df.cat_number.unique():
        temp_df = df[df['cat_number']==i].sort_values(['DT','date'], ascending = (True, True))
        diff = (temp_df.tail(1).date.values - temp_df.head(1).DT.values)
        diff = diff[0].days
        df_c.loc[df_c[df_c['cat_number']==i].index, 'lifetime'] = diff
    Ответ написан
    Комментировать
  • Как пофиксить цикл в цикле?

    @sunsexsurf Автор вопроса
    IT & creative
    y = local_df_2.values[0]
    Ответ написан
    Комментировать
  • Как проверить, что строка является артикулом товара?

    @sunsexsurf
    IT & creative
    Я бы начал именно с понимания того, какие паттерны артикулов вообще существуют (может, их можно сегментировать по типам товаров, напр, чайники, электроплиты, макбуки).
    Ответ написан
    Комментировать