From fc3652b5938aa6b8ed759bcb11341df57ee37e53 Mon Sep 17 00:00:00 2001 From: Carlos Martinez Date: Mon, 10 Oct 2016 09:29:44 +0200 Subject: [PATCH 1/4] Update documentation --- README.MD | 55 ++----------------------------------- docs/deploy.md | 66 +++++++++++++++++++++++++++++++++++++++++---- docs/develop.md | 46 +++++++++++++++++++++++++++++++ shico/server/app.py | 2 +- 4 files changed, 110 insertions(+), 59 deletions(-) create mode 100644 docs/develop.md diff --git a/README.MD b/README.MD index 93fc8ee..98d8408 100644 --- a/README.MD +++ b/README.MD @@ -16,64 +16,13 @@ You can find more details of how the concept shift works [here](./docs/howItWork - *What do I see in the front end?* *How to use it?* - - *What do I need to run it? (python, some web server, word2vec models)* +Read [this](./docs/deploy.md) *How to extend it?* - *Use different semantic model (other than word2vec)* +Read [here](./docs/develop.md) -## Launching server -To launch the server run: -``` -# python shico/server.py -f "word2vecModels/195?_????.w2v" -``` - -*Note:* loading the word2vec models takes some time and may consume a large amount of memory. - -Then you can access trace a concept by connecting to the server using curl (or your web browser). Examples: - -``` -http://localhost:5000/track/oorlog -http://localhost:5000/track/oorlog?startKey=1952_1961 -http://localhost:5000/track/oorlog?startKey=1952_1961&maxTerms=5 -http://localhost:5000/track/oorlog?startKey=1952_1961&maxTerms=5&forwards= -http://localhost:5000/track/nederland?maxTerms=5&sumDistances=true -http://localhost:5000/track/nederland?maxTerms=5&sumDistances= -http://localhost:5000/track/oorlog,oorlogse -``` - -## Web app - -### Adding hooks - -You can add your own custom behaviour to the force directed graphs like this: -``` -(function() { - 'use strict'; - - angular - .module('shico') - .run(runBlock); - - function runBlock(GraphConfigService) { - GraphConfigService.addForceGraphHook(function(node) { - node.select('circle').attr('r', function(d) { - return d.name.length; - }); - }); - } -})(); - -``` - -This snippet modifies the size of the force directed graph nodes, and makes them dependent on the length of the name in the node's data. - - -## Unit testing -To run Python unit tests, run: -``` -$ nosetests -``` ## Cleaning functions In some cases, resulting vocabularies may contain words which we would like to filter. ShiCo offers the possibility of using a *cleaning* function, for filtering vocabularies after they have been generated. To use this option, it is necessary to indicate the name of the cleaning function when starting the ShiCo server. A sample cleaning function is provided (*shico.extras.cleanTermList*). You can use this function as follows: diff --git a/docs/deploy.md b/docs/deploy.md index a9f4bb7..20af958 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -1,6 +1,62 @@ -# Making a release +# Deploying ShiCo +If you want to run your own instance of ShiCo, there are a few things you will need: - - Merge changes on branch `demo` - - Run `gulp build` - - Make github release - + - A set of word2vec models which your ShiCo instance will use. + - Run the python back end on your a server (you will need a server with enough memory to hold your word2vec models). + - Run a web server to serve the front end to the browser. + +## Word2vec models + +You are welcome to use our [existing w2v models](https://github.com/NLeSC/ShiCo/tree/master/word2vecModels); you might need to use [git-lfs](https://git-lfs.github.com/) to download them. If you do, please contact us for more details on how the models were build and to know how to cite our work. You can also [create your own](./docs/buildingModels.md) models, based on your own corpus. + +## Launching the back end + +Once you have downloaded the code (or clone this repo), and install all Python requirements (contained in *requirements.txt*), you can launch the flask server as follows: +``` +# python shico/server/app.py -f "word2vecModels/????_????.w2v" +``` + +*Note:* loading the word2vec models takes some time and may consume a large amount of memory. + +You can check that the server is up and running by connecting to the server using curl (or your web browser): +``` +http://localhost:5000/load-settings +``` + +Alternatively you use [Gunicorn](http://gunicorn.org/), by setting your configuration on *shico/server/config.py* and then running: + +``` +# gunicorn --bind 0.0.0.0:8000 --timeout 1200 shico.server.wsgi:app +``` + +## Launching the front end + +The necessary files for serving the front end are located in the *webapp* folder. You will need to edit your configuration file (*webapp/srs/config.json*) to tell the front end where your back end is running. For example, if your backend is running on *localhost* port 5000 as in the example above, you would set your configuration file as follows: + +``` +{ + "baseURL": "http://localhost:5000" +} +``` + +If you are familiar with the Javascript world, you can use the *gulp* tasks provided. You can serve your front end as follows (from the *webapp* folder): +``` +$ gulp serve +``` + +You can build a deployable version (minified, uglified, etc) as follows: +``` +$ gulp build +``` +This will build a deployable version on the *webapp/dist* folder. + +## Pre-build deployable version + +If you are not familiar with the Javascript world (or just don't feel like building your own deployable version), the *demo* branch of this repository contains a pre-build version of the front end. You can checkout (or download) that branch, and then you are ready to go. + +## Serve with your favorite web server + +Once you have a *webapp/dist* folder (whether downloaded or self built) you can serve the content of it using your favorite web server. For example, you could use Python SimpleHTTPServer as follows (from the *webapp/dist* folder): +``` +python -m SimpleHTTPServer +``` diff --git a/docs/develop.md b/docs/develop.md new file mode 100644 index 0000000..afbe025 --- /dev/null +++ b/docs/develop.md @@ -0,0 +1,46 @@ +# What should you do if you want to modify ShiCo? + + - Be brave! + +## Backend + +Written in Python. + +### Unit testing +If you modify ShiCo back end, make sure to write your unit tests for your code. + +To run Python unit tests, run: +``` +$ nosetests +``` + +## Web app + +### Adding hooks + +You can add your own custom behaviour to the force directed graphs like this: +``` +(function() { + 'use strict'; + + angular + .module('shico') + .run(runBlock); + + function runBlock(GraphConfigService) { + GraphConfigService.addForceGraphHook(function(node) { + node.select('circle').attr('r', function(d) { + return d.name.length; + }); + }); + } +})(); + +``` + +This snippet modifies the size of the force directed graph nodes, and makes them dependent on the length of the name in the node's data. + +## Making a release on GitHub + - Merge changes on branch `demo` + - Run `gulp build` + - Make github release diff --git a/shico/server/app.py b/shico/server/app.py index 6b1715d..89a1890 100644 --- a/shico/server/app.py +++ b/shico/server/app.py @@ -1,7 +1,7 @@ '''ShiCo server. Usage: - server.py [-f FILES] [-n] [-d] [-p PORT] [-c FUNCTIONNAME] + app.py [-f FILES] [-n] [-d] [-p PORT] [-c FUNCTIONNAME] -f FILES Path to word2vec model files (glob format is supported) [default: word2vecModels/195[0-1]_????.w2v] From 0fd5d96ad2f5a7385de2f7472ad475cda60339fc Mon Sep 17 00:00:00 2001 From: Carlos Martinez Date: Sun, 16 Oct 2016 23:10:56 +0200 Subject: [PATCH 2/4] Update documentation (UI) --- README.MD | 27 ++++--------------- docs/deploy.md | 22 +++++++++++++--- docs/develop.md | 4 ++- docs/embeddingGraph.png | Bin 0 -> 15396 bytes docs/networkGraph.png | Bin 0 -> 53501 bytes docs/searchBar.png | Bin 0 -> 9456 bytes docs/streamGraph.png | Bin 0 -> 50520 bytes docs/ui.md | 57 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 84 insertions(+), 26 deletions(-) create mode 100644 docs/embeddingGraph.png create mode 100644 docs/networkGraph.png create mode 100644 docs/searchBar.png create mode 100644 docs/streamGraph.png create mode 100644 docs/ui.md diff --git a/README.MD b/README.MD index 98d8408..1c1ba68 100644 --- a/README.MD +++ b/README.MD @@ -9,30 +9,13 @@ ShiCo is a tool for visualizing time shifting concepts. We refer to a concept as ![Mock concept shift](./docs/mockConcept1.png) ![Mock concept shift](./docs/mockConcept2.png) -You can find more details of how the concept shift works [here](./docs/howItWorks.md). +You can find more details of how the concept shift works [here](./docs/howItWorks.md) and you can read the user documentation [here](./docs/ui.md). - - *How is it structured (backend/frontend)* - - *What the back end does?* - - *What do I see in the front end?* +## How to use it? +You can read how to get your own instance of ShiCo up and running [here](./docs/deploy.md). -*How to use it?* -Read [this](./docs/deploy.md) - -*How to extend it?* - - *Use different semantic model (other than word2vec)* -Read [here](./docs/develop.md) - - - -## Cleaning functions -In some cases, resulting vocabularies may contain words which we would like to filter. ShiCo offers the possibility of using a *cleaning* function, for filtering vocabularies after they have been generated. To use this option, it is necessary to indicate the name of the cleaning function when starting the ShiCo server. A sample cleaning function is provided (*shico.extras.cleanTermList*). You can use this function as follows: -``` -$ python shico/server.py -c "shico.extras.cleanTermList" -``` - -## Speeding up ShiCo - -Current implementation of ShiCo relies on gensim word2vec model `most_similar` function, which in turn requires the calculation of the dot product between two large matrices, via `numpy.dot` function. For this reason, ShiCo greatly benefits from using libraries which accelerate matrix multiplications, such as OpenBLAS. ShiCo has been tested using [Numpy with OpenBLAS](https://hunseblog.wordpress.com/2014/09/15/installing-numpy-and-openblas/), producing a significant increase in speed. +## How to extend it +If you would like to modify ShiCo, read the developer manual [here](./docs/develop.md). ## Licensing diff --git a/docs/deploy.md b/docs/deploy.md index 20af958..1c321f1 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -13,7 +13,7 @@ You are welcome to use our [existing w2v models](https://github.com/NLeSC/ShiCo/ Once you have downloaded the code (or clone this repo), and install all Python requirements (contained in *requirements.txt*), you can launch the flask server as follows: ``` -# python shico/server/app.py -f "word2vecModels/????_????.w2v" +$ python shico/server/app.py -f "word2vecModels/????_????.w2v" ``` *Note:* loading the word2vec models takes some time and may consume a large amount of memory. @@ -26,7 +26,7 @@ http://localhost:5000/load-settings Alternatively you use [Gunicorn](http://gunicorn.org/), by setting your configuration on *shico/server/config.py* and then running: ``` -# gunicorn --bind 0.0.0.0:8000 --timeout 1200 shico.server.wsgi:app +$ gunicorn --bind 0.0.0.0:8000 --timeout 1200 shico.server.wsgi:app ``` ## Launching the front end @@ -58,5 +58,21 @@ If you are not familiar with the Javascript world (or just don't feel like build Once you have a *webapp/dist* folder (whether downloaded or self built) you can serve the content of it using your favorite web server. For example, you could use Python SimpleHTTPServer as follows (from the *webapp/dist* folder): ``` -python -m SimpleHTTPServer +$ python -m SimpleHTTPServer ``` + +## Cleaning functions +In some cases, resulting vocabularies may contain words which we would like to filter. ShiCo offers the possibility of using a *cleaning* function, for filtering vocabularies after they have been generated. To use this option, it is necessary to indicate the name of the cleaning function when starting the ShiCo server. A sample cleaning function is provided (*shico.extras.cleanTermList*). You can use this function as follows: +``` +$ python shico/server/app.py -c "shico.extras.cleanTermList" +``` + +If you are using gunicorn, in your *config.py*, you can set `cleaningFunctionStr` to the name of your cleaning function, for instance: + +``` +cleaningFunctionStr = "shico.extras.cleanTermList" +``` + +## Speeding up ShiCo + +Current implementation of ShiCo relies on gensim word2vec model `most_similar` function, which in turn requires the calculation of the dot product between two large matrices, via `numpy.dot` function. For this reason, ShiCo greatly benefits from using libraries which accelerate matrix multiplications, such as OpenBLAS. ShiCo has been tested using [Numpy with OpenBLAS](https://hunseblog.wordpress.com/2014/09/15/installing-numpy-and-openblas/), producing a significant increase in speed. diff --git a/docs/develop.md b/docs/develop.md index afbe025..d166624 100644 --- a/docs/develop.md +++ b/docs/develop.md @@ -1,6 +1,6 @@ # What should you do if you want to modify ShiCo? - - Be brave! +Be brave! And get in touch if you need help. Pull requests are very welcome. ## Backend @@ -16,6 +16,8 @@ $ nosetests ## Web app +Written in Javascript (Angular). + ### Adding hooks You can add your own custom behaviour to the force directed graphs like this: diff --git a/docs/embeddingGraph.png b/docs/embeddingGraph.png new file mode 100644 index 0000000000000000000000000000000000000000..e7ee688e59708dd44203ae997d0a4a6defa876ad GIT binary patch literal 15396 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 literal 0 HcmV?d00001 diff --git a/docs/networkGraph.png b/docs/networkGraph.png new file mode 100644 index 0000000000000000000000000000000000000000..d31d2ea6c2f80208e8445ce5d6df6777568d58d6 GIT binary patch literal 53501 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 literal 0 HcmV?d00001 diff --git a/docs/searchBar.png b/docs/searchBar.png new file mode 100644 index 0000000000000000000000000000000000000000..6391476c3a13eca8747b94169880ac44fa0f0858 GIT binary patch literal 9456 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 literal 0 HcmV?d00001 diff --git a/docs/streamGraph.png b/docs/streamGraph.png new file mode 100644 index 0000000000000000000000000000000000000000..626b1822d522139f7e10e5ca66a9adc022a5f29b GIT binary patch literal 50520 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 P|5a8}QKC%DDDeLPFPjxL literal 0 HcmV?d00001 diff --git a/docs/ui.md b/docs/ui.md new file mode 100644 index 0000000..d46a089 --- /dev/null +++ b/docs/ui.md @@ -0,0 +1,57 @@ +# How to use ShiCo? + +This guide will instruct you in the elements for using ShiCo's user interface. + +## User interface components + +When you first open ShiCo on your browser, you will see a simple search bar: + +![Search bar](./searchBar.png) + +You can enter one or multiple (comma separated) *seed terms*. These seed terms are the entry point for your concept search. Click *Submit* to begin your search. The results from your search will be displayed in the results panel below the search bar. + +The search bar has some additional features: + - It allows you to modify the search parameters. Click the *+* button to display additional search parameters. + - It allows you to save the parameters of your current search, or load the parameters of a previous search. + +## Search parameters + +The following is the list of parameters (with a link to a brief explanation) which can be used to control your concept search: + + - [Max Terms](/webapp/help/maxTerms.md) + - [Max related terms](/webapp/help/maxRelatedTerms.md) + - [Minimum concept similarity](/webapp/help/minSim.md) + - [Word boost](/webapp/help/wordBoost.md) + - [Boost method](/webapp/help/boostMethod.md) + - [Algorithm](/webapp/help/algorithm.md) + - [Track direction](/webapp/help/direction.md) + - [Years in interval](/webapp/help/yearsInInterval.md) + - [Words per year](/webapp/help/wordsPerYear.md) + - [Weighing function](/webapp/help/weighFunc.md) + - [Function shape](/webapp/help/wFParam.md) + - [Do cleaning ?](/webapp/help/doCleaning.md) (only shown if your backend uses a cleaning function). + - [Year period](/webapp/help/yearPeriod.md) + +## Produced graphics + +Once a search is complete, ShiCo displays results in the results panel. Results are displayed using various graphs: + + - Stream graph -- this shows each word of the resulting vocabulary as a stream over time. The stream gets wider or narrower according to the weight the word is given in the vocabulary. + +![Stream graph](./streamGraph.png) + + - Network graphs -- this shows a collection of graphs displaying the resulting vocabulary as a network graph. Words which are related to each other are connected with an arrow. The direction of the arrow indicates which word was the product of which seed word. + +![Network graph](./networkGraph.png) + + - Space embedding -- this shows an estimate of the spatial relationship between words in the final vocabulary at every time step. Please keep in mind that these spatial relations are approximate and should be considered with care. + +![Space embedding graph](./embeddingGraph.png) + + - Plain text vocabulary -- this shows a text representation of the concept search. This consists, for each time step, of the seed words used and the produced vocabulary. + +## Saving and loading search parameters + +When you click the *Save parameters* button, a text box with your search parameters will be displayed. Copy these parameters and save them somewhere. Click *Ok* to hide the text box. + +When you click the *Load parameters* button, another text box will be displayed. Enter previously saved search parameters in this box and click *Ok* to load the parameters. From 772de50e1e299117bf42d35586329ebe3cb73603 Mon Sep 17 00:00:00 2001 From: Carlos Martinez Date: Sun, 16 Oct 2016 23:12:14 +0200 Subject: [PATCH 3/4] Make case insensitive --- shico/server/app.py | 1 + 1 file changed, 1 insertion(+) diff --git a/shico/server/app.py b/shico/server/app.py index 6b1715d..437718b 100644 --- a/shico/server/app.py +++ b/shico/server/app.py @@ -48,6 +48,7 @@ def trackWord(terms): response.''' params = app.config['trackParser'].parse_args() termList = terms.split(',') + termList = [ term.strip() for term in termList ] termList = [ term.lower() for term in termList ] results, links = \ app.config['vm'].trackClouds(termList, maxTerms=params['maxTerms'], From 3d5d8c44e759035250c55ef0a2834ca72ad52376 Mon Sep 17 00:00:00 2001 From: Carlos Martinez Date: Sun, 16 Oct 2016 23:20:30 +0200 Subject: [PATCH 4/4] Update links on ui.md --- docs/ui.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/ui.md b/docs/ui.md index d46a089..52ba1e8 100644 --- a/docs/ui.md +++ b/docs/ui.md @@ -18,19 +18,19 @@ The search bar has some additional features: The following is the list of parameters (with a link to a brief explanation) which can be used to control your concept search: - - [Max Terms](/webapp/help/maxTerms.md) - - [Max related terms](/webapp/help/maxRelatedTerms.md) - - [Minimum concept similarity](/webapp/help/minSim.md) - - [Word boost](/webapp/help/wordBoost.md) - - [Boost method](/webapp/help/boostMethod.md) - - [Algorithm](/webapp/help/algorithm.md) - - [Track direction](/webapp/help/direction.md) - - [Years in interval](/webapp/help/yearsInInterval.md) - - [Words per year](/webapp/help/wordsPerYear.md) - - [Weighing function](/webapp/help/weighFunc.md) - - [Function shape](/webapp/help/wFParam.md) - - [Do cleaning ?](/webapp/help/doCleaning.md) (only shown if your backend uses a cleaning function). - - [Year period](/webapp/help/yearPeriod.md) + - [Max Terms](/webapp/src/help/maxTerms.md) + - [Max related terms](/webapp/src/help/maxRelatedTerms.md) + - [Minimum concept similarity](/webapp/src/help/minSim.md) + - [Word boost](/webapp/src/help/wordBoost.md) + - [Boost method](/webapp/src/help/boostMethod.md) + - [Algorithm](/webapp/src/help/algorithm.md) + - [Track direction](/webapp/src/help/direction.md) + - [Years in interval](/webapp/src/help/yearsInInterval.md) + - [Words per year](/webapp/src/help/wordsPerYear.md) + - [Weighing function](/webapp/src/help/weighFunc.md) + - [Function shape](/webapp/src/help/wFParam.md) + - [Do cleaning ?](/webapp/src/help/doCleaning.md) (only shown if your backend uses a cleaning function). + - [Year period](/webapp/src/help/yearPeriod.md) ## Produced graphics