SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
EXTRAÇÃO DE INFORMAÇÃO NO 
STACKOVERFLOW CAREERS 
Roberta Arcoverde / @rla4 
.Net Architects Days 2014
/WHOIS ROBERTA 
recifense 
cientista da computação, UFPE, 2008 
mestre em informática, PUC-Rio, 2012 
participante do DNA desde 2008 
developer, Radix, 2010-2014 
full-stack web developer, Stack Exchange, 2014 
1a mulher palestrando no DNAD :O :O :O
começou em 2008 
3MM usuários registrados 
50MM visitantes únicos por mês 
2000-3000 hits por segundo 
top 50 sites mais acessados do mundo* 
*segundo o Alexa. sei lá se é verdade. deve ser.
TUDO ISSO COM APENAS 9 SERVIDORES
350k usuários registrados (~200k com um perfil/CV) 
~3000 vagas ativas/dia
PRINCIPAL OBJETIVO 
Ajudar empresas diferenciadas a encontrar profissionais 
também diferenciados 
(e vice-versa!)
...MAS AINDA SÃO MUITOS USUÁRIOS!
TAG ENGINE FOR THE RESCUE! 
Perguntas no StackOverflow são associadas a tags 
Mesma ideia aplicada ao Careers, mas ao invés de perguntas e 
respostas, taggeamos CVs!
NEM SÓ DE TAG VIVE O CANDIDATO 
1. Como buscar por OSS? E por empregador? 
2. Mike and also Michael? 
3. Google and not Google? 
4. Por que este candidato foi retornado na minha busca?
CV == DOCUMENTO
ELASTICSEARCH 
Engine de análise, indexação e busca 
Usa Lucene internamente 
Restful API, document database (JSON) 
Cluster de 3 servidores
"_source": { 
"cvId": 195731, 
"stackExchangeAnswersTags": [ 
"c#", 
"javascript", 
".net" 
], 
"likeTags": [ 
"c#", 
"programming-languages", 
"functional-programming", 
"compiler", 
"java", 
"haskell", 
"javascript", 
"tdd", 
"aspect-oriented", 
"asp.net-mvc" 
], 
"projects": [], 
"yearsOfExperienceTags": [ 
"aop", 
"architecture", 
"asp.net", 
"asp.net-mvc", 
"c#", 
"html5", 
"iis", 
"javascript", 
"jquery", 
"knockout.js", 
"msbuild", 
"nunit",
HABEMUS DOCUMENTOS 
term queries vs filters 
contexto (snippets) 
ranking 
mike == michael, ruby on rails == ror 
...mas nada de busca avançada
CQL 
Buscas mais poderosas e flexíveis lembram do Google and not Google? 
gmail search 
google drive search 
trello search
FINALMENTE, A 'ARQUITETURA'
CQL 
Boolean queries 
(c# or java) and not manager 
Operadores específicos 
education:(Stanford, MIT, Xavier's School for Gifted Yougsters) 
Include/exclude 
ex:students,remote
IMPLEMENTAÇÃO 
(c# or java) and employer:microsoft
LEXER 
char-buffering 
(c# or java) and employer:microsoft 
LPAREN Term OR RPAREN AND Operator 
COLON Term
PARSER 
top-down, descendente recursivo 
LPAREN Term OR RPAREN AND Operator 
COLON Term
CQL 
(c# or java) and 
employer:microsoft 
TERM QUERY 
"query":"((c# OR java) 
AND 
experienceName:microsoft)" 
exclude:student 
"must":["term": { 
"isStudent": { "value": 
"false" }} ]
FRESCURINHAS FINAIS 
SYNTAX HIGHLIGHTING 
AUTOCOMPLETE 
1-WAY BINDING
RESULTADOS LEGAIS 
BUSCA FICOU > 30% MAIS RÁPIDA 
NÚMERO DE CANDIDATE SEARCH SUBSCRIPTIONS DOBROU (!)
OBRIGADA :)

Mais conteúdo relacionado

Semelhante a Extração de informação no StackOverflow Careers

REST – Desmistificando A Implementação De Web Services REST Em Java Monografia
REST – Desmistificando A Implementação De Web Services REST Em Java MonografiaREST – Desmistificando A Implementação De Web Services REST Em Java Monografia
REST – Desmistificando A Implementação De Web Services REST Em Java MonografiaCarl Edwin Antonio Nascimento
 
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]Carl Edwin
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercadoelliando dias
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsWSO2
 
Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixAndré Déo
 
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...WeOp - The Operations Summit
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Miguel Gallardo
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passosTheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passosTaise Dias da Silva
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Joao Lucas Santana
 
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...Danilo Sato
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dadoscris.finholdt
 
Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Marcus Lacerda
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLpichiliani
 

Semelhante a Extração de informação no StackOverflow Careers (20)

REST – Desmistificando A Implementação De Web Services REST Em Java Monografia
REST – Desmistificando A Implementação De Web Services REST Em Java MonografiaREST – Desmistificando A Implementação De Web Services REST Em Java Monografia
REST – Desmistificando A Implementação De Web Services REST Em Java Monografia
 
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercado
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIs
 
Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com Zabbix
 
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
 
Conhecendo o Ruby on Rails
Conhecendo o Ruby on RailsConhecendo o Ruby on Rails
Conhecendo o Ruby on Rails
 
Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
 
Mini Curso Mashup Coreu
Mini Curso Mashup CoreuMini Curso Mashup Coreu
Mini Curso Mashup Coreu
 
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passosTheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
 
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dados
 
Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
 

Extração de informação no StackOverflow Careers

  • 1. EXTRAÇÃO DE INFORMAÇÃO NO STACKOVERFLOW CAREERS Roberta Arcoverde / @rla4 .Net Architects Days 2014
  • 2. /WHOIS ROBERTA recifense cientista da computação, UFPE, 2008 mestre em informática, PUC-Rio, 2012 participante do DNA desde 2008 developer, Radix, 2010-2014 full-stack web developer, Stack Exchange, 2014 1a mulher palestrando no DNAD :O :O :O
  • 3. começou em 2008 3MM usuários registrados 50MM visitantes únicos por mês 2000-3000 hits por segundo top 50 sites mais acessados do mundo* *segundo o Alexa. sei lá se é verdade. deve ser.
  • 4.
  • 5. TUDO ISSO COM APENAS 9 SERVIDORES
  • 6. 350k usuários registrados (~200k com um perfil/CV) ~3000 vagas ativas/dia
  • 7. PRINCIPAL OBJETIVO Ajudar empresas diferenciadas a encontrar profissionais também diferenciados (e vice-versa!)
  • 8. ...MAS AINDA SÃO MUITOS USUÁRIOS!
  • 9. TAG ENGINE FOR THE RESCUE! Perguntas no StackOverflow são associadas a tags Mesma ideia aplicada ao Careers, mas ao invés de perguntas e respostas, taggeamos CVs!
  • 10. NEM SÓ DE TAG VIVE O CANDIDATO 1. Como buscar por OSS? E por empregador? 2. Mike and also Michael? 3. Google and not Google? 4. Por que este candidato foi retornado na minha busca?
  • 12. ELASTICSEARCH Engine de análise, indexação e busca Usa Lucene internamente Restful API, document database (JSON) Cluster de 3 servidores
  • 13.
  • 14. "_source": { "cvId": 195731, "stackExchangeAnswersTags": [ "c#", "javascript", ".net" ], "likeTags": [ "c#", "programming-languages", "functional-programming", "compiler", "java", "haskell", "javascript", "tdd", "aspect-oriented", "asp.net-mvc" ], "projects": [], "yearsOfExperienceTags": [ "aop", "architecture", "asp.net", "asp.net-mvc", "c#", "html5", "iis", "javascript", "jquery", "knockout.js", "msbuild", "nunit",
  • 15. HABEMUS DOCUMENTOS term queries vs filters contexto (snippets) ranking mike == michael, ruby on rails == ror ...mas nada de busca avançada
  • 16.
  • 17. CQL Buscas mais poderosas e flexíveis lembram do Google and not Google? gmail search google drive search trello search
  • 19. CQL Boolean queries (c# or java) and not manager Operadores específicos education:(Stanford, MIT, Xavier's School for Gifted Yougsters) Include/exclude ex:students,remote
  • 20.
  • 21. IMPLEMENTAÇÃO (c# or java) and employer:microsoft
  • 22. LEXER char-buffering (c# or java) and employer:microsoft LPAREN Term OR RPAREN AND Operator COLON Term
  • 23. PARSER top-down, descendente recursivo LPAREN Term OR RPAREN AND Operator COLON Term
  • 24. CQL (c# or java) and employer:microsoft TERM QUERY "query":"((c# OR java) AND experienceName:microsoft)" exclude:student "must":["term": { "isStudent": { "value": "false" }} ]
  • 25. FRESCURINHAS FINAIS SYNTAX HIGHLIGHTING AUTOCOMPLETE 1-WAY BINDING
  • 26.
  • 27. RESULTADOS LEGAIS BUSCA FICOU > 30% MAIS RÁPIDA NÚMERO DE CANDIDATE SEARCH SUBSCRIPTIONS DOBROU (!)