Skip to content

Instantly share code, notes, and snippets.

@danielfrg
Created November 13, 2015 23:39
Show Gist options
  • Save danielfrg/ca6cb8b7aa33d15b789f to your computer and use it in GitHub Desktop.
Save danielfrg/ca6cb8b7aa33d15b789f to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from spacy.en import English"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 1: 31.4 s per loop\n"
]
}
],
"source": [
"%%timeit -n1 -r1\n",
"\n",
"nlp = English()\n",
"\n",
"with open('data/got.txt', 'r') as f:\n",
" book = f.read()\n",
" \n",
"doc = nlp(book)\n",
"\n",
"people = []\n",
"\n",
"for i, word in enumerate(doc):\n",
" if word.pos_ == 'NOUN' and word.ent_type_ == 'PERSON':\n",
" people.append(word)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Toolz"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from spacy.en import English"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import toolz"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"nlp = English()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"with open('data/got.txt', 'r') as f:\n",
" lines = f.readlines()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from toolz import map"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"nlps = map(lambda x: nlp(x), lines)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def f(sentence):\n",
" p = []\n",
" for word in sentence:\n",
" if word.pos_ == 'NOUN' and word.ent_type_ == 'PERSON':\n",
" p.append(word.string)\n",
" return p"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"people = map(f, nlps)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"people = toolz.concat(people)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 1: 24 s per loop\n"
]
}
],
"source": [
"%%timeit -n1 -r1\n",
"l = list(people)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Dask"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from spacy.en import English"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import dask.bag as db"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from dask.diagnostics import ProgressBar"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"nlp = English()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"with open('data/got.txt', 'r') as f:\n",
" lines = f.readlines()\n",
" \n",
"b = db.from_sequence(lines, npartitions=2)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"nlps = b.map(lambda x: nlp(x))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def f(sentence):\n",
" p = []\n",
" for word in sentence:\n",
" if word.pos_ == 'NOUN' and word.ent_type_ == 'PERSON':\n",
" p.append(word.string)\n",
" return p"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"people = nlps.map(f).concat()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"()"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"people.take(0)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"g = people.dask"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from dask.dot import dot_graph"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dot_graph(g)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[########################################] | 100% Completed | 4min 20.1s\n",
"1 loops, best of 1: 4min 32s per loop\n"
]
}
],
"source": [
"%%timeit -n1 -r1\n",
"\n",
"with open('data/got.txt', 'r') as f:\n",
" lines = f.readlines()\n",
" \n",
"nlp = English()\n",
"\n",
"b = db.from_sequence(lines, npartitions=10)\n",
"\n",
"nlps = b.map(lambda x: nlp(x))\n",
"\n",
"def f(sentence):\n",
" p = []\n",
" for word in sentence:\n",
" if word.pos_ == 'NOUN' and word.ent_type_ == 'PERSON':\n",
" p.append(word.string)\n",
" return p\n",
"\n",
"people = nlps.map(f).concat()\n",
"\n",
"with ProgressBar():\n",
" d_people = people.compute()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.0"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment