{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Detecting bursts in word usage\n", "\n", "* code: \n", "* paper: \n", "\n", "## Output\n", "An array of intervals in which a burst of activity was detected. The first column denotes the level within the hierarchy; the second column the start value of the interval; the third column the end value. The first row is always the top-level activity (the complete interval from start to finish)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[33mYou are using pip version 7.1.0, however version 7.1.2 is available.\n", "You should consider upgrading via the 'pip install --upgrade pip' command.\u001b[0m\n", "Collecting pybursts\n", " Downloading pybursts-0.1.1.tar.gz\n", "Installing collected packages: pybursts\n", " Running setup.py install for pybursts\n", "Successfully installed pybursts-0.1.1\n" ] } ], "source": [ "#!pip install pybursts" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 4 92]\n", " [1.0 33 37]\n", " [1.0 76 92]\n", " [2.0 76 77]]\n" ] } ], "source": [ "# test\n", "import pybursts\n", "\n", "offsets = [4, 17, 23, 27, 33, 35, 37, 76, 77, 82, 84, 88, 90, 92]\n", "print pybursts.kleinberg(offsets, s=2, gamma=0.1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Applicatie op een debat\n", "\n", "\n", "* We kiezen een \"tijds (of documents) eenheid\".\n", " * zin, paragraaf\n", " * speech\n", "* Dit worden onze offsets. \n", "* De vector van een woord is dan gewoon de offsets van de eenheden waarin het woord voorkomt.\n", "* Natuurlijk heeft elke offset verschillende \"kleuren/attrbuten\"\n", " * spreker/partij\n", " * gov vs oppositie\n", " * betoog, interruptie, antwoord\n", "\n", "### Per zoek woord\n", "\n", "* Bereken de bursts voor dat woord, en zet dat uit op een \"tijdspad\"\n", " * dit zegt door de attributen iets over het \"ownership\" en de mate waarop het wordt overgenomen van een woord.\n", " \n", "### Analyse\n", "* Net als in sectie 4 van het stuk van Kleinberg kunnen we het algorithme loslaten op **alle woorden** ( hier bijvoorbeeld lemmatized nouns), de gevonden patronen vergelijken met een bepaalde prior/model en dan de meest afwijkende oppikken, scoren en tonen.\n", " * bursts binnen 1 klasse (dan echt een topic van alleen die klasse)\n", " * de woorden moeten wel een bepaalde mate van _saliency_ hebben:\n", " * een bepaald minimum aantal keer herhaald\n", " * overgenomen door andere sprekers\n", " \n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }