Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 16625 сообщений
Cообщения с меткой

рекомендации - Самое интересное в блогах

Следующие 30  »
Joker-6

Три интересных фильма

Суббота, 25 Июня 2016 г. 11:40 (ссылка)


Заклятие 2





Читать далее...
Метки:   Комментарии (8)КомментироватьВ цитатник или сообщество
listra55

Маринование грибов: советы, рекомендации, рецепты.

Суббота, 25 Июня 2016 г. 10:59 (ссылка)

Это цитата сообщения Вкусняшки_от_Белоснежки Оригинальное сообщение


Маринование грибов: советы, рекомендации, рецепты

 



Для маринования обычно используют молодые крепкие грибы: белые, подберезовики, подосиновики, маслята, моховики, опята, лисички. Грибы предварительно обрабатывают. Мариновать грибы можно двумя способами: варкой в маринаде и заливкой маринадом.



маринование грибов/3407372_ (560x350, 251Kb)



1. Наиболее распространено маринование, начинающееся с отваривания в подсоленной воде обработанных грибов. Причем их следует опускать не в холодную, а в кипящую воду и во время варки возможно чаще и полнее удалять пену. Важно не переварить грибы, поэтому через 5—6 мин после активного закипания жидкости берут пробу. Для этого в небольшую глубокую посуду отливают кипящего отвара и кладут в него 1—2 гриба среднего размера. Если они плавают на поверхности, значит, их надо доварить и пробу повторить еще 1 или 2-3 раза. Если опустились грибы на дно, кипячение надо прекратить. После этого грибы откинуть на дуршлаг и промыть несколько раз холодной кипяченой водой.



Для приготовления маринада отмеряют воду — немного больше половины объема отваренных грибов, ставят кастрюлю на огонь и кладут в нее последовательно (на 1 л воды): 2 ч. ложки соли с горкой, 3 ст. ложки с горкой сахара, 10—15 бутонов гвоздики, 2 больших растения укропа, разрезанные на части не длиннее спички, 10-15 горошин черного перца, 2-3 средних лавровых листа, 4—5 семенных коробочек кардамона, частично разделенных на половинки.



Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Васисуалий2

Сумки весна-лето 2016 года: модные тенденции

Суббота, 25 Июня 2016 г. 08:12 (ссылка)
sovety-tut.ru/krasota-i-pri...tendentsii


Для того, чтобы выглядеть привлекательно, необходимо разбираться в новых направлениях, сумки весна-лето 2016 года, модные тенденции на которые изменились в

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
soni27

Как вырастить клубнику в мешках, выбираем семена и посадочный | Женский журнал

Вторник, 21 Июня 2016 г. 18:06 (ссылка)
refwm.com/vyirashhivanie-kl...yilno.html

Выращивание клубники в мешках. Все рекомендации о том, как посадить и вырастить клубнику в мешках: насколько это прибыльно
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Приложение на API hh.ru. Рекомендуем вакансии по вашему резюме

Вторник, 21 Июня 2016 г. 12:21 (ссылка)



Недавно я опубликовал пост, рассказывающий, как можно просто начать использовать наше API. Мне самому захотелось поиграться с данными, которые можно из него получить, и я решил написать приложение, рекомендующее актуальные вакансии на основе информации из резюме. В конце статьи будет ссылка на результат, где каждый сможет получить список рекомендаций по своему резюме.



На hh.ru можно искать вакансии, подходящие к резюме, но они используют нашу общую систему поиска, а мне захотелось сделать более персонализированную подборку.



Со стороны пользователя это будет обычный веб-сайт, на котором можно авторизоваться с помощью API HeadHunter, получить список личных резюме и просмотреть рекомендованные вакансии. Со стороны разработчика еще добавляются модуль, который будет выкачивать через API актуальные вакансии, и модуль, который будет строить на основе собранных вакансий рекомендации.



Сборщик вакансий



Алгоритм простой. Раз в N минут получаем список вакансий, опубликованных за последние N минут. Тут надо учесть, что за один запрос возвращается не более 500 вакансий, поэтому запросы делаются с разбивкой на страницы. Путь к вакансиям в API выглядит как-то так: /vacancies?per_page={}&date_from={}&date_to={}&page={}. В списках содержатся не все данные вакансий, а значит, придется каждую вакансию запросить отдельно. Еще следует учесть, что иногда за короткий промежуток времени публикуется большое количество вакансий, так что программа не успевает за отведенные N минут скачать все опубликованные. Значит, качаем вакансии в несколько потоков. Кому интересно, вот ссылка на код качальщика на Github-е. Сразу извиняюсь за качество кода — я не «питонщик». Данный скрипт периодически запускается по крону.



Отдельно хочу отметить, что сначала я пытался сохранять вакансии в MySQL. Но на моем сервере очень ограниченное количество ресурсов и нет возможности при построении рекомендаций держать всё в памяти, а выгружать все каждый раз из MySQL небыстро. Поэтому приходилось получать данные частями, на рекомендации уходило около часа. Тогда я решил поискать in-memory хранилище для вакансий. Выбор пал на Redis из-за наличия поддержки в Python, простоты установки и использования, наличия поддержки структур данных и сохранения состояния при рестарте.



Векторизация вакансий



Логично, что все данные вакансии хранить нет смысла. Поэтому при скачивании преобразуем вакансию в вектор параметров. Под параметрами подразумеваются слова, которые входят в разные вакансии. Каждому документу (вакансии) соответствует вектор одинаковой длины. Каждому элементу вектора соответствует определенное слово и задается значение — вес, который это слово имеет в текущем документе.



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



Вакансии принадлежат определенным профобластям. Я предположил, что имеет смысл разбить вакансии по профобластям и извлечь самые важные слова для каждой профобласти. Для создания словаря я скачал около 113 000 вакансий. Одно и то же слово может иметь несколько словоформ. Было бы хорошо представить их как одно слово. Для этого применяется стемминг — нахождение основы слова. В «Питоне» есть хорошая реализация (PyStemmer), поддерживающая русский язык.

import Stemmer
stemmer = Stemmer.Stemmer('russian')
print stemmer.stemWord('хабром')
хабр
print stemmer.stemWord('хабру')
хабр


После стемминга я разбил все документы по группам, соответствующим профобластям. Если вакансии соответствует несколько профобластей, то, конечно, она будет в нескольких группах. Каждый документ внутри каждой группы преобразуем в вектор. Для этого нам поможет sklearn-овкий CountVectorizer. Ему на вход подается список документов. Он достает все слова из списка и считает, сколько раз какое слово встречается в конкретном документе. Это и будет вектор.

from sklearn.feature_extraction.text import CountVectorizer

corpus = ['aa bb cc', 'bb bb dd']
vectorizer = CountVectorizer(min_df=1)
X = vectorizer.fit_transform(corpus)
print X.toarray()
[[1 1 1 0]
[0 2 0 1]]


Некоторые слова слишком часто встречаются во многих документах и являются незначительными. А некоторые — наоборот, встречаются не так часто, но хорошо описывают документ или несколько документов. Для компенсации считается TF-IDF для каждой группы векторов. При подсчете вес некоторого слова пропорционален количеству употребления этого слова в документе и обратно пропорционален частоте употребления слова в других документах коллекции. Для подсчета этой меры в sklearn есть TfidfTransformer. Он принимает на вход векторы, полученные из CountVectorizer-а, и возвращает пересчитанные векторы такой же размерности.

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer

corpus = ['aa bb cc', 'bb bb dd']
vectorizer = CountVectorizer(min_df=1)
X = vectorizer.fit_transform(corpus)
transformer = TfidfTransformer()
X_tfidf = transformer.fit_transform(X)
print X_tfidf.toarray()
[[ 0.6316672 0.44943642 0.6316672 0. ]
[ 0. 0.81818021 0. 0.57496187]]


После того как посчитали TF-IDF для документов каждой группы, считаем в каждой группе среднее арифметическое для каждого параметра в векторах. Находим определенное количество параметров с максимальным значением и сохраняем слова, соответствующие этим значениям. Это и будут самые важные слова для конкретной специализации. Я сохранял для каждой специализации по 350 слов, чтобы в итоге получить словарь примерно из 10 000 слов. Вектором именно такой длины будет характеризоваться каждая вакансия. Вот полный код для создания словаря. Каждый документ, описывающий вакансию, был составлен из слов заголовка, основной информации и ключевых навыков.



Теперь у нас есть словарь, используя который можно превратить каждую вакансию при сохранении в вектор, соответствующий только этим словам. Для этого создается новый CountVectorizer, параметризованный словарем.



Хранение актуальных данных



Для каждой вакансии, данные которой мы хотим сохранить, производим стемминг данных, прогоняем через CountVectorizer и TfidfTransformer и сохраняем в Redis. При сохранении в Redis векторов вакансий я столкнулся с проблемой недостатка места в оперативной памяти. Я для рекомендаций использую вакансии за последние 5 дней, а это около 130 000. Для каждой из них приходится хранить вектор размером 10000 элементов. У меня этот объем занял 7,5GB. Столько оперативки нет на моем сервере. Тогда я подумал о том, что, раз данные я сохраняю в json и они получилиcь очень разреженными, они наверняка отлично сжимаются. Поэтому перед сохранением я их энкодю в zlib. В итоге те же данные стали занимать примерно 250MB.



Отдельно хочу отметить пару приятных функций Redis-а:


  1. Сохраняемым записям можно выставлять TTL, после которого они автоматически удаляются и не приходится заботиться о высвобождении места.

  2. Одному ключу можно сопоставить HashMap. Так, вместе с вектором я для вакансии сохраняю её регион и зп.



В «Питоне» сохранение в Redis выглядит так:

import redis
import json
r = redis.StrictRedis(host='localhost', port=6379, db=0)
timeout = 5*24*60*60
data = {}
data['features'] = json.dumps(vector).encode("zlib")
data['salary'] = salary
data['area'] = area_id
r.hmset(vacancy_id, data)
r.expire(vacancy_id, timeout)


Для желающих попробовать Redis есть инструкция. Поднимается за пару минут.



Система рекомендаций



Когда пользователь авторизуется на сайте, его резюме сохраняется в приложении. Чтобы сравнивать резюме с вакансиями, его так же надо преобразовать в вектор той же размерности и с таким же порядком параметров. Для создания вектора я брал текст из заголовка, ключевых навыков и поля «Обо мне». Также я предварительно сохранил CountVectorizer со словарем и TfidfTransformer, обученные на данных вакансий, которые я скачал в самом начале. Используя их, легко получить векторы для резюме.



Для создания рекомендаций находим векторы вакансий, похожие на вектор резюме. В качестве меры схожести я использовал косинусное расстояние. В sklearn есть готовая реализация.



Для каждого резюме сохраняем список самых похожих вакансий.



Еще надо учесть такие вещи, как зарплата и региональность. Поэтому исключаем для каждого резюме вакансии из неподходящих регионов, и если зарплата не соответствует определенной вилке. Часто в вакансии не указывается сумма. А именно: 31% из сохраненных 113 000 не содержал ЗП. Я решил, что такие вакансии тоже стоит рекомендовать.



Скрипт по подбору рекомендаций запускается периодически по крону. Это значит, что придется немного подождать, чтобы получить рекомендацию для своего резюме.



Сайт



Собственно, вот результат того, что получилось. Пробуйте. Если кому интересны исходники, то вот.



Какие могут быть проблемы у моего подхода. Во-первых, недостаточность данных в резюме: либо из-за их скудности, либо из-за специфичности. Также вероятность хорошей рекомендации снижается для регионов. Можно было бы улучшить показатели за счет профобластей и предыдущего опыта работы. Если бы это была популярная система, можно было бы добавить оценку качества рекомендаций, чтобы использовать её для дальнейших предложений. Если по резюме есть отклики и приглашения, использование этих данных тоже может повысить релевантность. Еще было бы здорово искать соответствия не только для одинаковых слов, но и для родственных. С этой задачей помог бы справиться word2vec. Но в любом случае пока это только пилотная версия.



Итак, я написал систему рекомендаций вакансий по информации, взятой из резюме. Все данные были получены через API HeadHunter. Используйте API, если у вас возникнет желание сделать свой сервис или мобильное приложение, связанное с HR тематикой. О проблемах или недостающем функционале пишите нам в issues.
Original source: habrahabr.ru.

https://habrahabr.ru/post/303710/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Комментарии (0)КомментироватьВ цитатник или сообщество
Leovik10

ЦИТАТЫ, КОТОРЫЕ ПОМОГУТ ПОСМОТРЕТЬ НА МИР.

Вторник, 21 Июня 2016 г. 08:19 (ссылка)







← вернуться к рассылке



50 цитат, которые помогут по-иному посмотреть на мир.



 








50 цитат, которые помогут по-иному посмотреть на мир





1. Вам суждено стать только одним человеком — человеком, которым Вы решили стать.



2. Делай добро и чувствуй себя хорошо. Делай плохие вещи и чувствуй себя плохо. Это очень просто. Читать далее






Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Васисуалий2

Бизнес-идеи 2016 с минимальными вложениями в маленьком городе

Вторник, 21 Июня 2016 г. 06:56 (ссылка)
sovety-tut.ru/biznes-idei/b...kom-gorode


Для тех, кого интересуют бизнес-идеи 2016 с минимальными вложениями в маленьком городе, можно предложить целый перечень задумок, которые можно осуществить. Это

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Leovik10

ХОРОШИЕ СОВЕТЫ И РЕКОМЕНДАЦИИ.

Воскресенье, 19 Июня 2016 г. 09:22 (ссылка)







← вернуться к рассылке



10 решений, о которых вы будете жалеть уже через 10 лет.



 








10 решений, о которых вы будете жалеть уже через 10 лет





1. Носить маску, чтоб произвести впечатление на других. Если на вашем лице, которое вы всегда показываете миру, находится маска, то однажды за ней может не оказаться ничего. Когда вы проводите слишком много времени в размышлениях, что о вас подумают другие, то вскоре забудете, кто вы есть на самом деле. Не стоит боятся осуждения других людей; в своём сердце вы знаете, кто вы есть на самом деле. Вы не должны быть совершенным, чтобы производить впечатление и вдохновлять других людей. Пусть они будут поражены и вдохновлены тем, как вы справляетесь со своими недостатками. Читать далее






Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Васисуалий2

Чем полезны финики сушеные для здоровья?

Пятница, 17 Июня 2016 г. 07:39 (ссылка)
sovety-tut.ru/domashnee-lec...a-zdorovya


Те, кто стараются питаться правильно, задаются вопросом, чем полезны финики сушеные для здоровья. Многие ягоды, овощи и фрукты являются кладезью большого числа

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Joker-6

Музыка для души

Четверг, 16 Июня 2016 г. 17:55 (ссылка)


Прекрасная музыка, приятного прослушивания!





c8il3a87rlU (604x377, 81Kb)

Метки:   Комментарии (16)КомментироватьВ цитатник или сообщество
Васисуалий2

Ваз 2114, 1.6, 8кл., технические характеристики

Понедельник, 13 Июня 2016 г. 07:07 (ссылка)
sovety-tut.ru/sovety-avtomo...kteristiki


Ваз 2114, 1.6, 8кл., технические характеристики могут различаться в зависимости от того, в каком году был выпущен автомобиль, который производился с 2003 по

Комментарии (0)КомментироватьВ цитатник или сообщество
Vsiaco

Как спать, что есть и почему важно прыгать, чтобы сдать любой экзамен

Суббота, 11 Июня 2016 г. 12:33 (ссылка)



 



Как спать, что есть и почему важно прыгать, чтобы сдать любой экзамен



Уже сейчас во всю сдают экзамены, а это значит, в ход идет все, что хоть как-то повысит шансы на хорошую оценку. Учить билеты и делать шпоры - это уже прошлый век. Никакой заговор зачетки, приворот учителя и молитва на счастливый номер аудитории вам не поможет. Теперь есть более действенные способы подготовки к экзамену, которые помогут чувствовать вам себя уверенно.
Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
angreal

Какие действия предпринимать при пищевом отравлении

Суббота, 11 Июня 2016 г. 11:26 (ссылка)




С приходом жарких дней возрастают шансы отравления продуктами питания. Мы сегодня поговорим о том, как справиться с этой распространенной проблемой.






Общее недомогание, тошнота, рвота, диарея и даже повышение температуры и озноб — вот классические признаки пищевого отравления. Однако обнаружив у себя или у членов семьи эти симптомы, не спешите решать проблему самостоятельно, ведь отравления бывают двух видов — токсико-инфекционные и неинфекционные.

 


Самым распространенным является первый тип, при котором в организм проникают патогенные микроорганизмы из несвежих продуктов питания. Неинфекционное же отравление связано с попаданием вместе с пищей химических или природных токсинов. Это могут быть как и оставшиеся на поверхности плода удобрения, так и просто несъедобный гриб.






  • Какие действия предпринимать при пищевом отравлении





Второй тип гораздо более опасный, поэтому следует незамедлительно обратиться к врачу. А вот если вы просто съели что-то не очень свежее, то вполне можно помочь себе самостоятельно. Но также важно помнить, что вне зависимости от типа пищевого отравления, в медицинской помощи нуждаются дети и пожилые люди, а также беременные и кормящие женщины.

 


Но давайте перейдем от теории к практике и рассмотрим 5 основных действий, которые помогут быстро справиться с пищевым отравлением с минимальным дискомфортом, а также вспомним главные правила, помогающие избежать этой проблемы, особенно сейчас, в летнее время, когда к употребляемым продуктам нужно относиться с особой осторожностью.


 


 


Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Joker-6

Музыка для души

Суббота, 11 Июня 2016 г. 10:30 (ссылка)


И снова талантливый музыкант Shook, с его нового альбома, рекомендую всем!

545281_10151122046407695_59984677_n (700x525, 42Kb)





Читать далее...
Метки:   Комментарии (10)КомментироватьВ цитатник или сообщество
Galche

Подготовка ребенка к детскому саду

Вторник, 08 Июня 2016 г. 02:33 (ссылка)


Подготовка ребенка к детскому саду



В каждой семье, где есть дети всегда задается вопрос, когда и как отдавать детей в детский сад. На самом деле это событие очень волнующее для всей семьи, так как ребенок впервые попадет в маленький мир коллектива. Этот вопрос, какие и другие очень волнуют родителей. Несомненно, все они очень актуальны, поэтому и хочется обратить внимание о подготовке ребенка к детскому саду, чтобы он смог, как можно быстрее привыкнуть к новой обстановке, влиться в коллектив и чувствовать себя комфортно в детском заведении.

шкафчик ребенка в дсаду 6 (500x333, 248Kb)



Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<рекомендации - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda