Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Posts Tagged ‘математика

Побудова “скриньок з вусами” львівських квартир що здаються на сьогодні

with 3 comments

Я ще минулого року помітив що в питаннях про Python на StackOverflow обговорюють якісь панди. Це, як виявилось обгортка навколо matplotlib, numpy і подібних гарних речей. А ще, лазячи по своїх документах в Google знайшов скачану вже позаминулого року стіну групи пошуку нерухомості вконтакті. І так співпало що я і мій колега-аналітик зараз шукаємо квартиру у Львові. Я йому показав цей файл, і він загорівся бажанням проаналізувати ще якийсь сайт оголошень.

При всій повазі до lun.ua, але тут я прорекламую dom.ria.com. Передовсім, там є українська версія. А ще, можливість скачати результати пошуку як електронну таблицю, хоч і в xls форматі, і лише одну сторінку.

В python читати xls вміє бібліотека xlrd, тому треба доставити ще й її. Pandas взагалі має багато необов’язкових залежностей:

sudo pip3.5 install jupyter pandas xlrd matplotlib
jupyter notebook # дуже модний графічний інтерпретатор

Якщо все поставити як вище і запустити “jupyter”, то можна робити обчислення в отакому документі: https://github.com/bunyk/mypandas/blob/master/dom.ria/dom.ria.ipynb
Прочитати решту цього запису »

Advertisements

Written by bunyk

Січень 4, 2017 at 01:30

Орбіта Гомера Сімпсона

with 3 comments

Мультик що допоможе вам зрозуміти деякі розділи матану і трохи давньогрецької астрономії. Матан корисніший, бо давньогрецьку астрономію спростив Коперник.

До ознайомлення:

  1. Епіцикл
  2. Ряд Фур’є
  3. А також Дискретне косинусне перетворення – завдяки якому працюють оці ваші mp3 і mpeg, завдяки яким ви подивитесь оце відео.

Written by bunyk

Листопад 15, 2016 at 22:18

Оприлюднено в Всяке

Tagged with

Теорія взаємодії процесів (насправді про IT-Arena)

with 8 comments

Я не дуже хотів йти на Львів ІТ арену, бо то настільки понтово що задорого. Крім того на вузькоспеціалізованих конференціях на зразок PyCon я мало що розумію, навіть якщо сам доповідаю. 🙂 Хоча, знаєте, ото щойно передивився одну доповідь – і ніби все зрозумів (а що ще краще, виявляється що викладені там ідеї я зараз використовую в Angular, хоч і забув про них). Крім того, нащо йти на платну конференцію, якщо ти навіть не встигаєш читати всі блоги і дивитись всі безкоштовні відео доповідей з інших конференцій в інтернеті?

Але я пішов, і не пожалів. Познайомився з Естер Дайсон. Вона великий фанат здорового способу життя, і інвестор в наш проект.

Пішов на доповідь про мікросервіси оцього чоловіка. Там дізнався що всі системи які містять багато взаємодіючих компонентів можна описувати наприклад пі-численням. Але так як книжки з пі-числення страшенно дорогі, ось вам безкоштовна про математичну теорію названу “Взаємодія послідовних процесів”, і написана не аби-ким, а Сером Чарлзом Ентоні Річардом Гоаром. Тепер залишилось знайти час прочитати.

А ще поміж іншим дізнався про те що програмне забезпечення це лайно (точніше завжди знав), але існує стрібна куля. Називається LangSec, коли ми вхідні параметри описуємо якоюсь формальною мовою. Чим це відрізняється від Логіки Хоара і наприклад статичної типізації з алгебраїчними типами даних – ще треба подумати.

А ще зустрів хлопців з Quintagroup, вони зразу такі “О, це ти той пітонщик з SoftServe що пише на Zope”. Я такий – той, але вже не пітонщик і не з SoftServe. 🙂 Зараз вони багато працюють над проектом Prozorro, і шукають нових людей. Тому якщо знаєте Pyramid (чи який там фреймворк у https://github.com/openprocurement), шукаєте роботу – напишіть їм.

Written by bunyk

Жовтень 1, 2016 at 23:51

Стохастичний метод оцінки словникового запасу (ідея для диплому)

leave a comment »

Ідея для диплому зі статистики. Або з якоїсь там лінгвістики. Власне я опишу лише задачу, тому що прибираю на столі, і цей листочок пора викинути. Тому що часу на її розв’язання я не маю. Але буду радий якщо хтось захопиться ідеєю і втілить.

Суть задачі в наступному. Ми хочемо оцінити скільки слів певної мови людина знає. Єдиний тест, який дасть 100% точні результати – взяти словник, і питати людину кожне слово. Тільки от біда, що для цього тесту потрібно часу більше ніж будь-хто захоче витратити. Тому кількість слів про які ми питаємо варто суттєво зменшити.

Якщо ми даємо користувачу питання чи знає він певне слово, і він відповідає “так”, ми можемо сказати що розподіл ймовірностей щодо кількості слів що він знає більший за певний, а якщо “ні” – менший за певний.

Тепер, нехай у нас є частотний словник. Маючи частоти для слів, ми знаємо ймовірність того що випадково обране в тексті слово – це слово w = p_w. І нехай, якщо користувач знає слово w, то всі слова що йшли в тексті до нього він теж знає. Скільки слів він прочитав? Ймовірність того що лише одне w – p_w, одне крім w – (1-p_w) p_w. N крім w – (1 - p_w)^N p_w. Розподіл Пуассона, якщо я не помиляюсь.

Інше питання – яка залежність між кількістю слів певного тексту, які людина читає і кількістю різних слів серед них? Якщо слово одне, то 1. Якщо два різні – теж 1, а два однакові – \frac{1}{2}. Три – 1, \frac{2}{3}, \frac{1}{3}….

Ах, і якщо хто хоче зайнятись цим, або іншим проектом пов’язаним з комп’ютерною лінгвістикою – можу допомогти вам отримати корпус текстів вікіпедії, звертайтесь.

Для англійської вже є такий тест: http://testyourvocab.com/. деталі його функціонування.

Written by bunyk

Листопад 4, 2013 at 01:04

Шизофазогенератор Маркова

with 3 comments

Написав скрипт який на даний момент. Письменник – звертайтесь. Залишилась математика, і що я знаю дещо про керування рекламними кампаніями в Google календар з нагадуванням по SMS, бо думав, що його швидкість зміниться так: Тепер ще один сервіс не буде ніяких порад про побудову сюжету, що ортогональна проекція легко стає ізометричною після здійснення повороту на 45° до чого веду.

Можна подумати що я вже зовсім втратив здатність зрозуміло висловлюватись. Але ні. Це я вибрав досить вдалий абзац з тексту створеного скриптом, який загрібає корпус текстів з певного блогу, робить лексичний аналіз, підраховує частоту послідовностей токенів, і записує їх в базу. Далі, за цими частотами можна порахувати ймовірності з якими після даних конкретних токенів ідуть інші можливі токени. І випадковим чином з поправкою на розподіл імовірностей вибирається один з них.

Написав таку штуку, бо давно нічого не писав (в блог, а не коду), і мені хочеться вияснити можливості MongoDB. Крім того Стенфорд все відкладає свій курс NLP, а в мене на роботі в цьому напрямку вже проходять дослідження. І біля мене навіть сидить один кандитат наук.

А також мені можливо скоро доведеться здавати диплом. А його ще треба написати. Одні студенти з MIT були настільки ліниві, що замість того аби писати дипломні роботи написали програму яка пише дипломні роботи замість них. І непогано пише. Моя програмка теж непогано пише, хоча використовує набагато простішу технологію. Ось згенерований текст в не в моєму стилі:
Прочитати решту цього запису »

Written by bunyk

Березень 3, 2012 at 03:17

Оприлюднено в Кодерство, Павутина

Tagged with

Особистий захист особистих даних (oplop)

with 6 comments

Або, позбудьтесь втоми від паролів раз і назавжди (реклама в кінці). Це важлива проблема, і мені цікава також ваша думка, і способи її вирішення.

Пам’ятати багато паролів важко. Але куди подітись, якщо потрібно:
Прочитати решту цього запису »

Written by bunyk

Січень 12, 2012 at 23:54

Статистична оцінка терміну виконання проекту перекладу

with 4 comments

Я тут начитався Джоела Спольськи, про те що без дедлайнів живуть тільки геймдевелопери (“Буде зроблено тоді коли буде зроблено. Кармак”), тому що ігри – це програми в яких існує лише одна версія, тому що ніхто не захоче грати гру з тим самим сюжетом (“В грі сюжет так само важливий як і в проні. Кармак”) в якій лише додали два нові види зброї і поправили баги виявлення зіткнень (“Я дивився, дивувався (“оМГ моби не бігають через стінки! жееесть!”) але шпіляти навіть не думав. danbst”). Більшість інших програмок потрібно випустити до певної конкретної дати, бо конкуренти не чекають, тому якщо щось не встигається – зі специфікації викидають зайвий функціонал. (“В нас якість – понад усе. Рівно 31 числа ми випустимо настільки якісний браузер, наскільки зможемо.” Джемі Завінські згадує анекдот з Netscape).

І чому я собі в резюме не дописав що я якось з таким аццкім софтом мав справу?

В жорстких дедлайнах я ще не був (ну, в університеті робив лабораторні не в останню ніч перед …, а зранку перед здачею, але то просто від нудьги. На роботі наприклад просять проставити в JIRA оцінку терміну виконання задачі, але зазвичай виходить що я два-три дні щось читаю і думаю як я її буду робити, потім коли я вже знаю як її робити і скільки часу на неї піде, я забуваю цю оцінку проставити, за три-чотири години роблю задачу, далі від нічого робити займаюсь рефакторингом (поки що в межах PEP8). А потім ще два-три дні перекидуюсь з тестерами коментарями щодо задачі. Суть моїх коментарів зводиться до двох основних видів: “fixed.”, “це не бага, це фіча”. Тобто частиною часу яка піддається оцінці зазвичай взагалі можна нехтувати як похибкою. Але думаю що за рік-два вже виясню як оцінювати терміни виконання.

А взагалі, конкретна стаття Джоела – Evidence based sheduling. Ідея в тому, аби просто фіксувати прогрес, а оцінку дати релізу поставить система, причому навіть побудує розподіл ймовірностей того що продукт вийде до такого то числа (реклама FogBugz 6.0).

Грошей на персональний FogBugz в мене ще нема, тому захотів зробити щось своє, простіше, і для розваги. Я наприклад адміністратор, і автор більше 10% правок вікіпідручника. Серед проектів – переклад Dive into Python 3 – прибитого проекту Марка Пілігрима, щоб продовжити його справу, пропагувати Python 3 в Україні, покращити свої відповідні знання і навики, і просто just for fun.

Так от, захотів я собі вияснити чи встигну перед смертю той переклад закінчити. Дописав свого бота (його код жахливий, тепер я це бачу, і цим теж треба зайнятись), частинку яка обчислює таку об’єктивну метрику як об’єм тексту в байтах, і складає в таблицю – час, об’єм.
Прочитати решту цього запису »

Written by bunyk

Листопад 8, 2011 at 01:47