Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

kmike

  • 40
    вклад
  • 1
    вопрос
  • 60
    ответов
  • 17%
    решений
Комментарии
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • IBM WATSON

    kmike @kmike
    А там что именно говорилось? Может, имелось в виду, что часть инструментов, на которых построен Watson, доступна (UIMA, например), и + доступны статьи, рассказывающие, как Watson делали, и можно поэтому попробовать самому что-то подобное пособирать?
    Написано более трёх лет назад
  • Курсы онлайн по теории вероятности и мат. статистики

    kmike @kmike
    Так может найти простые книжки? Например, по статистике хорошее практическое введение www.bmj.com/about-bmj/resources-readers/publications/statistics-square-one — она для врачей написана, поэтому читается легко.
    Написано более трёх лет назад
  • Какую библиотеку выбрать для математических рассчетов

    kmike @kmike
    Очевидный вопрос: для работы с маленькими и большими числами может логарифмы получится использовать?
    Написано более трёх лет назад
  • Использование морфологического словаря от OpenCorpora в коммерческом проекте?

    kmike @kmike
    С другой стороны — 150тыс слов/сек с учетом обертки на скриптовом языке — это не очень-то и печально :) Но буду благодарен, если о своих результатах дадите знать потом.
    Написано более трёх лет назад
  • Использование морфологического словаря от OpenCorpora в коммерческом проекте?

    kmike @kmike
    Если не целиком слова хранить (а выделять парадигмы или еще как-то), то медленнее получается, т.к. нужно более сложные запросы делать и потом результаты собирать. По памяти, думаю, должно мегабайт 40 получиться тогда.
    Написано более трёх лет назад
  • Использование морфологического словаря от OpenCorpora в коммерческом проекте?

    kmike @kmike
    По крайней мере из питона вот что получается:
    >>> import sqlite3
    >>> conn = sqlite3.connect(':memory:')
    >>> c = conn.cursor()
    >>> c.execute("create table words (word text)")
    >>> с.execute("create index word_index on words(word)")
    >>> words = ... # загружаем 3млн слов
    >>> c.executemany("insert into words values (?)", words_to_insert)
    >>> 
    >>> import dawg
    >>> d = dawg.CompletionDAWG(words)
    


    и потом замеряем:

    In [31]: %timeit c.execute(u"select 1 from words where word='ВАСЯ'").fetchall()
    100000 loops, best of 3: 7.27 us per loop
    
    In [32]: %timeit u'ВАСЯ' in d
    1000000 loops, best of 3: 188 ns per loop
    
    In [33]: %timeit c.execute(u'select * from words where word like "ВАСЯ%"').fetchall()
    1 loops, best of 3: 720 ms per loop
    
    In [34]: %timeit d.keys(u'ВАСЯ')
    100000 loops, best of 3: 12.3 us per loop
    


    C sqlite имеем где-то 150тыс простых запросов/сек и 1.5 тыс поисков по префиксу, с DAWG — 5млн простых запросов/сек и 80тыс поисков по префиксу (и там, и там — из питона, со всяческими накладными расходами; из C будет быстрее и то, и другое).

    Тут несколько объяснений может быть: во-первых, sqlite нужно разбирать SQL-запрос (+ еще куча накладных расходов); во-вторых — индекс там то-ли B-Tree, то-ли хэш, не знаю, но он в любом случае быстрый поиск по префиксам не обеспечивает. Может, конечно, накладные расходы на питонью обертку у sqlite больше — но неужели на столько (какая-нибудь там подготовка запросов). Или может там что-то с sqlite сделать хитрое еще можно. Но базовые структуры данных в sqlite это не изменит.

    По памяти — sqlite база заняла где-то 300-400 мегабайт, данные в DAWG — 3 мегабайта.

    Оказалось т.е. наоборот — по памяти раз в 100, по скорости раз в 20-50.
    Написано более трёх лет назад
  • Использование морфологического словаря от OpenCorpora в коммерческом проекте?

    kmike @kmike
    Да в принципе ничего; просто в упакованном виде быстрее доступ (я думаю, раз в 100 будет быстрее sqlite), и места занимать будет значительно меньше (думаю, раз в 10-20). Но вполне допускаю, что для многих задач и sqlite будет достаточно.
    Написано более трёх лет назад
  • Использование морфологического словаря от OpenCorpora в коммерческом проекте?

    kmike @kmike
    упс, почты в профиле нет, kmike84@gmail.com
    Написано более трёх лет назад
  • Использование морфологического словаря от OpenCorpora в коммерческом проекте?

    kmike @kmike
    Словарь — это данные или оболочка к ним? Лицензия — к данным. Вы не можете запретить расковыривать и менять данные, сказать, что это вы все придумали и не указать OpenCorpora как источник. Но вполне можете использовать эти данные в любых целях (втч коммерческих) и закрыть программный код оболочки к словарю — если лицензию на данные сохраните прежней.

    Кстати, может интересно будет — pymorphy2.readthedocs.org/en/latest/internals/dict.html — о том, как словарь OpenCorpora упаковывал. Вроде несложно вышло. Сам словарь (со всеми данными) получается мегабайт 10..15 — код библиотеки sqlite может больше места в памяти занять, чем словарь целиком, ну и работает in-memory решение в сотни (если не тысячи) раз быстрее. «Скомпилированную» версию пока нигде не выложил, но если интересно — могу прислать; почта в профиле.
    Написано более трёх лет назад
  • Достаточно ли для Macbook Air 4GB оперативной памяти?

    kmike @kmike
    современных air с hdd не бывает, они только с ssd
    Написано более трёх лет назад
  • Как подключить css стили к Django?

    kmike @kmike
    неа.

    STATIC_ROOT = 'C:/Projects/quickstop/quickstop/collected_static/' - норм.
    STATIC_URL = '/static/' - норм.

    url — неправильный.

    rel=«stylesheet» href="{{ STATIC_URL }}css/style.css" type=«text/css» media=«all»

    или попробовать, чтоб убедиться, что STATIC_URL правильно подставляется

    rel=«stylesheet» href="/static/css/style.css" type=«text/css» media=«all»

    urlpatterns тоже неправильно, может именно из-за них не работать —

    urlpatterns += static(settings.STATIC_URL, document_root=settings.MEDIA_ROOT, show_indexes=True)

    настраивает выдачу загруженных пользователем файлов по адресу STATIC_URL, что совершенно неправильно (перекрывается выдача статики по этому адресу). Все может заработать, если поправить урл и убрать эту строчку.
    Написано более трёх лет назад
  • Beautiful Soup, html5lib или lxml?

    kmike @kmike
    Нет, не уверен. Перед тем как писать, я код lxml почитал и нашел там много регекспов, что ввело в заблуждение.
    Написано более трёх лет назад
  • Beautiful Soup, html5lib или lxml?

    kmike @kmike
    Т.к. он медленнее, чем lxml, разрабатывается достаточно коряво (чего стоит удаленная с pypi версия, которая много кому что сломала), а парсит не лучше, чем lxml. И lxml, и BeautifulSoup могут отпарсить большинство невалидных html-документов, но они не справятся с разными «клиническими» случаями, т.к. они основаны, по сути, на наборе регекспов. html5lib справится со всем, но гораздо медленнее. Поэтому если нужна скорость, то лучше брать lxml, если нужна толерантность — то html5lib, а BeautifulSoup имеет смысл брать только если интерфейс BS привычнее или код уже с BS написан.
    Написано более трёх лет назад
  • Beautiful Soup, html5lib или lxml?

    kmike @kmike
    Не знаю, насколько хуже, смотрите для своих задач. html5lib реализует «правильный» разбор, как браузеры (если браузер может что-то более-менее вменяемое показать для куска html, то и html5lib более-менее вменяемо его распарсит), а lxml и BeautifulSoup — это набор хаков на регекспах, пред-, пост-обработке и тд.

    Но большинство документов lxml хорошо отпарсит.

    В lxml BeautifulSoup-интерфейс требует установленной библиотеки BeautifulSoup и позволяет использовать парсер из BeautifulSoup, но возвращать результаты через API lxml. То же самое с html5lib в lxml — это интерфейс к html5lib.
    Написано более трёх лет назад
  • Удаление пустых переводов строк из кода страницы

    kmike @kmike
    там вот такая штука есть: jinja.pocoo.org/docs/templates/#whitespace-control
    Написано более трёх лет назад
  • Как найти Creative Commons-статьи на хабре (например, те, которые опубликованы по ППА)?

    kmike @kmike Автор вопроса
    Хорошая идея. С помощью гугловского inurl:http://habrahabr.ru/users и разных комбинаций «creative» и «лицензия» несколько нашел, но не очень много (человек 5).
    Написано более трёх лет назад
  • Django: поиск в админке по ForeignKey?

    kmike @kmike
    Приведите модели — по какому именно полю хотите искать и что пробовали? И list_filter, и search_fields вполне работают для поиска-фильтрции записей по полю привязанной через FK записи.
    Написано более трёх лет назад
  • Как найти Creative Commons-статьи на хабре (например, те, которые опубликованы по ППА)?

    kmike @kmike Автор вопроса
    Нет, в соглашении про это ничего нет. Статьи под СС — только те, которые по ППА или когда эта лицензия явно указана.
    Написано более трёх лет назад
  • Время полной загрузки Macbook Pro 13" Late 2011 (i7 2800, 8GB RAM)?

    kmike @kmike
    все-таки +1 к SSD — а то смысл в навороченной 13шке без SSD, если на всех задачах (кроме какого-нибудь там кодирования видео) простенький эйр с SSD будет сильно быстрее.
    Написано более трёх лет назад
  • Apple Cinema vs Dell UltraSharp U2711?

    kmike @kmike
    да, с одной стороны матовый дисплей и цена, с другой — дизайн и доп. зарядник
    Написано более трёх лет назад
  • 1
  • 2
  • 3
  • 4
  • Следующие →
Самые активные сегодня
  • Drno
    • 17 ответов
    • 0 вопросов
  • vovka3003
    Владимир Шаблий
    • 7 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 5 ответов
    • 0 вопросов
  • alexalexes
    • 4 ответа
    • 0 вопросов
  • sergey-gornostaev
    Сергей Горностаев
    • 4 ответа
    • 0 вопросов
  • GavriKos
    GavriKos
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации