Como conectar a mineração de dados ao processo do aluno da máquina

8

Quero escrever um serviço de mineração de dados no Google Go que colete dados por meio de raspagem e APIs.

No entanto, como o Go não possui um bom suporte de ML, eu gostaria de fazer o material de ML em Python.

Tendo experiência na Web, conectaria os dois serviços a algo como RPC, mas como acredito que esse seja um problema comum na ciência de dados, acho que existe uma solução melhor.

Por exemplo, a maioria dos protocolos (web) não possui:

  • buffer entre processos
  • armazenamento em cluster em várias instâncias

Então, quais tipos de bibliotecas os cientistas de dados usam para conectar diferentes idiomas / processos?

Bodo

bodokaiser
fonte
Uma solução que segue na direção que estou procurando é fluente .
bodokaiser
Você está interessado apenas em bibliotecas disponíveis no Google Go?
Hack-R
@ Hack-R, se for um protocolo mais complexo que requer alguma lógica pesada, eu preferiria que uma biblioteca estivesse disponível no Go, mas eu preferiria ainda mais se a biblioteca também estivesse disponível para outros idiomas. O que você acha de uma fila de mensagens como nsq .
bodokaiser

Respostas:

4

O Data Science Toolkité uma biblioteca poderosa (ou coleção de bibliotecas, tecnicamente), disponível em vários idiomas. Por exemplo, eu uso a implementação chamada RDSTKem R.

No caso do seu idioma preferido, o Google Go, há uma lista de bibliotecas relacionadas à Web aqui que parece muito útil.

Hack-R
fonte
O Data Science Toolkité muito interessante, mas não o que estou procurando. Estou procurando por um protocolo baseado em fluxo de alto desempenho que permita transmitir (e armazenar em buffer) dados de n mineradores de dados para m processadores de dados.
bodokaiser
2

Se sua única motivação para usar o Google Go for scraping, e você desejar fazer o ML em python, recomendo a seguinte pilha:

Solicitações Python para raspagem de dados

MongoDB para armazenamento em cache de dados (o formato orientado à página do MongoDB o torna um local natural para armazenar objetos JSON geralmente retornados por APIs)

pymongo para interface de python e mongodb

scikit-learn para fazer seu aprendizado de máquina

Isso tudo acontece em python e você pode estender vários processadores com multiprocessamento ou para vários nós com django

rawkintrevo
fonte
Esta é uma solução python pura ?
bodokaiser
Não, usando mongodb para armazenamento em cache. Eu acho que o Mongodb está escrito em Java, se é isso que você quer dizer?
226146 #
1

Não sou 100% se uma biblioteca de filas de mensagens será a ferramenta certa para este trabalho, mas até agora parece-me.

Com uma biblioteca de mensagens como:

Você pode conectar diferentes processos operando em um ambiente diferente através de um protocolo baseado em TCP. Como esses sistemas são executados distribuídos, é possível conectar vários nós.

Para o nsq, temos até uma biblioteca em Python e Go!

bodokaiser
fonte