# Notebook from WormBase/gsoc-2021-bioinformatics-notebooks
Path: Tutorial-03-retrieve-data-parasite.ipynb

# **Bioinformatics with Jupyter Notebooks for WormBase:**
## **Data Retrieval 3 - Accessing WormBase data through ParaSite**
Welcome to the third jupyter notebook in the WormBase tutorial series. Over this series of tutorials, we will write code in Python that allows us to retrieve and perform simple analyses with data available on the WormBase sites.

This tutorial will deal with accessing the WormBase ParaSite RESTful API endpoints and downloading any required data. Let's get started!_____no_output_____We start by installing and loading the libraries that are required for this tutorial. We also initialise the server variable to the parasite main website._____no_output_____

import requests
import sys
import json
server = "https://parasite.wormbase.org"_____no_output_____

#### Information about the available data

In the cell below, there are several examples on how to use `/rest-15/info/`. Uncomment the request that suits your needs best and change the variables as needed. _____no_output_____Get the currently available assemblies for a species in json format._____no_output_____

request = requests.get(server + "/rest-15/info/assembly/caenorhabditis_elegans?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Get information about the specified sequence region for a species in json format._____no_output_____

request = requests.get(server + "/rest-15/info/assembly/caenorhabditis_elegans/I?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Get information about a genome in json format._____no_output_____

request = requests.get(server + "/rest-15/info/genomes/caenorhabditis_elegans?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find information about all genomes in json format._____no_output_____

request = requests.get(server + "/rest-15/info/genomes/?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find information about a genome with a specified assembly in json format._____no_output_____

request = requests.get(server + "/rest-15/info/genomes/assembly/GCA_000002985.3?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find information about all genomes beneath a given node of the taxonomy in json format._____no_output_____

request = requests.get(server + "/rest-15/info/genomes/taxonomy/6239?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Get the quality (CEGMA and BUSCO) scores for a specific genome in json format._____no_output_____

request = requests.get(server + "/rest-15/info/quality/caenorhabditis_elegans?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Get the WormBase release number in json format._____no_output_____

request = requests.get(server + "/rest-15/info/version/",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Lists all available species, their aliases, available adaptor groups and data release in json format._____no_output_____

request = requests.get(server + "/rest-15/info/species?division=EnsemblParasite",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

#### Looking up information for single and several identifiers

In the cell below, there are several examples on how to use `/rest-15/lookup/`. Uncomment the request that suits your needs best and change the variables as needed. _____no_output_____Find the species and database for a single identifier in json format._____no_output_____

request = requests.get(server + "/rest-15/lookup/id/WBGene00008422?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find the species and database for a single identifier (expanded information) in json format._____no_output_____

request = requests.get(server + "/rest-15/lookup/id/WBGene00008422?expand=1",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find the species and database for a single identifier (condensed information) in json format._____no_output_____

request = requests.get(server + "/rest-15/lookup/id/WBGene00008422?format=condensed;db_type=core",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find the species and database for several identifiers in json format._____no_output_____

request = requests.post(server + "/rest-15/lookup/id/",
                        headers = {"Content-Type" : "application/json", "Accept" : "application/json"}, data='{ "ids" : ["WBGene00011532", "WBGene00008422" ] }')

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find the species and database for a symbol in a linked external database in json format._____no_output_____

request = requests.get(server + "/rest-15/lookup/symbol/caenorhabditis_elegans_prjna13758/chaf-1?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find the species and database for a symbol in a linked external database in json format._____no_output_____

request = requests.get(server + "/rest-15/lookup/symbol/caenorhabditis_elegans_prjna13758/chaf-1?expand=1",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find the species and database for a symbol in a linked external database in json format._____no_output_____

request = requests.get(server + "/rest-15/lookup/symbol/caenorhabditis_elegans_prjna13758/chaf-1?" \
                       + "format=condensed;db_type=core",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find the species and database for a set of symbols in a linked external database in json format._____no_output_____

request = requests.post(server + "/rest-15/lookup/symbol/caenorhabditis_elegans_prjna13758/chaf-1",
                        headers = {"Content-Type" : "application/json", "Accept" : "application/json"},
                        data = '{"symbols" : ["Bm994", "__VAR(gene_symbol2)__" ] }')

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

#### Sequence Information from WormBase

In the cells below, there are several examples on how to use `/rest-15/sequence/`. Uncomment the request that suits your needs best and change the variables as needed. _____no_output_____Request DNA sequence by WormBase Gene ID in plain text format._____no_output_____

request = requests.get(server + "/rest-15/sequence/id/WBGene00008422?" ,
                       headers = {"Content-Type" : "text/plain", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Request Genomic sequence by WormBase Gene ID in plain text format._____no_output_____

request = requests.get(server + "/rest-15/sequence/id/WBGene00008422?type=genomic" ,
                       headers = {"Content-Type" : "text/x-fasta", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Request Protein sequence (1 of multiple) by WormBase Gene ID in xml format._____no_output_____

request = requests.get(server + "/rest-15/sequence/id/WBGene00008422?multiple_sequences=1;type=protein" ,
                       headers = {"Content-Type" : "text/x-seqxml+xml", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Request cdna (or cds) transcript sequence by WormBase Entry ID in fasta format._____no_output_____

request = requests.get(server + "/rest-15/sequence/id/E02H9.4?object_type=transcript;type=cdna" ,
                       headers = {"Content-Type" : "text/x-fasta", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Get the genomic sequence of the specified region of a species in fasta format._____no_output_____

request = requests.get(server + "/rest-15/sequence/region/caenorhabditis_elegans/I:1-5000:1?" ,
                       headers = {"Content-Type" : "text/x-fasta", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Get the soft-masked genomic sequence of the specified region of a species in fasta format._____no_output_____

request = requests.get(server + "/rest-15/sequence/region/caenorhabditis_elegans/I:1-5000:1?mask=soft" ,
                       headers = {"Content-Type" : "text/x-fasta", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Request multiple types of sequence by a stable identifier list in json format._____no_output_____

request = requests.post(server + "/rest-15/sequence/id" ,
                        headers = {"Content-Type" : "application/json", "Accept" : "application/json"},
                        data = '{"ids" : ["WBGene00011532", "WBGene00008422" ] }')

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Get the genomic sequence of the specified region of a species in json format._____no_output_____

request = requests.get(server + "/rest-15/sequence/region/caenorhabditis_elegans/I:1-5000:1?" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Get the genomic sequences of multiple regions of a species in json format._____no_output_____

request = requests.post(server + "/rest-15/sequence/region/caenorhabditis_elegans" ,
                        headers = {"Content-Type" : "application/json", "Accept" : "application/json"},
                        data = '{"regions" : ["I:1-5000:1", "I:5600..85000"] }')

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

#### Map data from cdna, cds or protein coordinates to genomic coordinates

In the cell below, there are several examples on how to use `/rest-15/map/`. Uncomment the request that suits your needs best and change the variables as needed. _____no_output_____Convert from cDNA coordinates to genomic coordinates in json format._____no_output_____

request = requests.get(server + "/rest-15/map/cdna/Y74C9A.3.2/100..300?object_type=transcript" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Convert from cds coordinates to genomic coordinates in json format._____no_output_____

request = requests.get(server + "/rest-15/map/cds/Y74C9A.3.2/1..300?object_type=transcript" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Convert from protein coordinates to genomic coordinates in json format._____no_output_____

request = requests.get(server + "/rest-15/map/translation/Y74C9A.3.2/1..100?object_type=translation" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

#### Explore ontology and taxonomy terms

In the cell below, there are several examples on how to use `/rest-15/ontology/`. Uncomment the request that suits your needs best and change the variables as needed. _____no_output_____Reconstruct the entire ancestry of a term from is_a and part_of relationships in json format._____no_output_____

request = requests.get(server + "/rest-15/ontology/ancestors/GO:0005667?" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})
#request = requests.get(server + "/rest-15/ontology/ancestors/chart/GO:0005667?" ,
#                        headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Find all the terms descended from a given term in json format._____no_output_____

request = requests.get(server + "/rest-15/ontology/descendants/GO:0005667?" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Search for an ontological term by its namespaced identifier in json format_____no_output_____

request = requests.get(server + "/rest-15/ontology/id/GO:0005667?" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Search for a list of ontological terms by their name in json format._____no_output_____

request = requests.get(server + "/rest-15/ontology/name/transcription factor complex?" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

#### Retrieves features that overlap a given region

In the cell below, there are several examples on how to use `/rest-15/overlap/`. Uncomment the request that suits your needs best and change the variables as needed. _____no_output_____Retrieves mentioned features of a kind that overlap a region defined by a gene in json format._____no_output_____

request = requests.get(server + "/rest-15/overlap/id/WBGene00008422?feature=gene" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieves mentioned features of multiple types for a region in json format._____no_output_____

request = requests.get(server + "/rest-15/overlap/region/caenorhabditis_elegans/I:1-5000?feature=gene;" + \
                       "feature=transcript;feature=cds;feature=exon" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieves mentioned features of multiple types for a region in json format._____no_output_____

request = requests.get(server + "/rest-15/overlap/region/caenorhabditis_elegans/I:1-5000?feature=gene;" + \
                       "feature=transcript;feature=cds;feature=exon" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieve mentioned features of multiple types for a specific translation in json format._____no_output_____

request = requests.get(server + "/rest-15/overlap/translation/Y74C9A.3.2?type=Superfamily" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

#### Extracting all objects linked by cross referencing

In the cells below, there are several examples on how to use `/rest-15/xrefs/`. Uncomment the request that suits your needs best and change the variables as needed. _____no_output_____Looks up an external symbol and returns all objects linked to it in xml format._____no_output_____

request = requests.get(server + "/rest-15/xrefs/symbol/caenorhabditis_elegans_prjna13758/chaf-1?" ,
                       headers = {"Content-Type" : "text/xml", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Looks up an external symbol and returns all objects linked to it in json format._____no_output_____

request = requests.get(server+"/rest-15/xrefs/symbol/caenorhabditis_elegans_prjna13758/chaf-1?" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Looks up an external symbol and returns mentioned objects linked to it in json format._____no_output_____

request = requests.get(server + "/rest-15/xrefs/symbol/caenorhabditis_elegans_prjna13758/chaf-1?" + \
                       "external_db=EntrezGene" ,
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Perform lookups of identifiers and retrieve their external references in other databases in json format._____no_output_____

request = requests.get(server + "/rest-15/xrefs/id/WBGene00008422?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Perform lookups of identifiers and retrieve their external references in mentioned databases in json format._____no_output_____

request = requests.get(server + "/rest-15/xrefs/id/Y74C9A.3.2?object_type=transcript;external_db=GO;all_levels=1",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Performs a lookup based upon the primary accession or display label of an external reference in json format._____no_output_____

request = requests.get(server + "/rest-15/xrefs/name/caenorhabditis_elegans_prjna13758/chaf-1?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

#### Comparative Genomics and GeneTree information

In the cells below, there are several examples on how to use `/rest-15/genetree/`. Uncomment the request that suits your needs best and change the variables as needed. _____no_output_____Retrieves a gene tree dump for a gene tree stable identifier in json format._____no_output_____

request = requests.get(server + "/rest-15/genetree/id/WBGT00000000021204?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieves homology information (orthologues) by gene id in json format._____no_output_____

request = requests.get(server + "/rest-15/homology/id/WBGene00008422?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieves homology information related to mentioned fields by gene id in json format._____no_output_____

request = requests.get(server + "/rest-15/homology/id/WBGene00008422?compara=parasite",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieves homology information related to mentioned fields by gene id in json format._____no_output_____

request = requests.get(server + "/rest-15/homology/id/WBGene00008422?target_taxon=6279;sequence=cdna;" + \
                       "target_species=wuchereria_bancrofti_prjeb536;type=orthologues",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieves homology information in condensed format related to mentioned fields by gene id in json format._____no_output_____

request = requests.get(server + "/rest-15/homology/id/WBGene00008422?format=condensed;type=orthologues",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieves homology information in condensed format related to mentioned fields by symbol in json format._____no_output_____

request = requests.get(server + "/rest-15/homology/symbol/caenorhabditis_elegans_prjna13758/chaf-1?",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieves homology information related to mentioned fields by symbol in json format_____no_output_____

request = requests.get(server + "/rest-15/homology/symbol/caenorhabditis_elegans_prjna13758/chaf-1?" + \
                       "target_taxon=6279;sequence=cdna;target_species=wuchereria_bancrofti_prjeb536;" + \
                       "type=orthologues",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieves homology information in condensed format related to mentioned fields by symbol in json format_____no_output_____

request = requests.get(server + "/rest-15/homology/symbol/caenorhabditis_elegans_prjna13758/chaf-1?" + \
                       "format=condensed;type=orthologues",
                       headers = {"Content-Type" : "application/json", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
decoded = request.json()
print(json.dumps(decoded, indent = 4))_____no_output_____

Retrieves a gene tree dump for a gene tree stable identifier in nh format._____no_output_____

request = requests.get(server + "/rest-15/genetree/id/WBGT00000000021204?nh_format=simple",
                       headers = {"Content-Type" : "text/x-nh", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Retrieves a gene tree dump for a gene tree stable identifier in phyloxml-xml format_____no_output_____

request = requests.get(server + "/rest-15/genetree/id/WBGT00000000021204?",
                       headers = {"Content-Type" : "text/x-phyloxml+xml", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Retrieves a gene tree dump with cdna sequence information for a gene tree stable identifier in phyloxml-xml format_____no_output_____

request = requests.get(server + "/rest-15/genetree/id/WBGT00000000021204?aligned=1;sequence=cdna",
                       headers = {"Content-Type" : "text/x-phyloxml+xml", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Retrieves a gene tree that contains the stable identifier in phyloxml-xml format._____no_output_____

request = requests.get(server + "/rest-15/genetree/member/id/WBGene00008422?",
                       headers = {"Content-Type" : "text/x-phyloxml+xml", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

Retrieves a gene tree containing the gene identified by a symbol in phyloxml-xml format._____no_output_____

request = requests.get(server + "/rest-15/genetree/member/symbol/caenorhabditis_elegans_prjna13758/chaf-1?",
                       headers = {"Content-Type" : "text/x-phyloxml+xml", "Accept" : ""})

if not request.ok:
    request.raise_for_status()
    sys.exit()
print(request.text)_____no_output_____

This is the end of the tutorial for accessing WormBase ParaSite through the RESTful API in several data types.

In the next tutorial, we will use the WormBase RESTful API to access the essential gene information for any WormBase gene IDs, and replicate the SimpleMine results.

Acknowledgements;
- ParaSite RESTful API (https://parasite.wormbase.org/rest-15)_____no_output_____


# Notebook from asreview-ftm-hackathon/Visualization_7_ContextKenner
Path: Informatie-score.ipynb

# Classificatie van woorden in het Excelsheet

In dit Jupyter Notebook lezen we de genoemde woorden uit en bekijken we hoe "informatief" ze zijn. Als een artikel informatief is, dan betekent dat dat het artikel "anders" is dan de rest, en dat er veel woorden in voorkomen die in andere artikelen niet aanwezig zijn.

Op deze manier vind je makkelijk bepaalde codes, exacte data, e-mailadressen, postcodes en gesprekken met specifieke onderwerpen die je niet in de rest van de database zult vinden. Aangezien alles over "gaswinning" gaat, is dat bijvoorbeeld minder informatief dan het woordje "AZC", wat weer over specifieke scenario's zal gaan._____no_output_____

import pandas as pd
import numpy  as np

EXCEL_BESTAND  = 'preprocessed_data.xlsx'_____no_output_____

We beginnen met het lezen van het bestand._____no_output_____

preprocessed_data = pd.read_excel(EXCEL_BESTAND)
preprocessed_data_____no_output_____

We passen toe dat elk woord in de string wordt opgeslagen in een dictionary._____no_output_____

CLASSIFIED_WORDS = {}

def add_words_to_dictionary(value):
    value = str(value).replace('\t', '    ').replace('\n', ' ').replace('\r', ' ').lower().split(' ')

    for word in value:
        if word == '':
            continue
        CLASSIFIED_WORDS[word] = 1 if word not in CLASSIFIED_WORDS else CLASSIFIED_WORDS[word] + 1

preprocessed_data['title']   .apply(add_words_to_dictionary)
preprocessed_data['abstract'].apply(add_words_to_dictionary)

CLASSIFIED_WORDS_____no_output_____

Hoe vaak komt een individueel woord voor?_____no_output_____

CLASSIFIED_WORDS['gaswinning']_____no_output_____

Met de volgende functie berekenen we hoe informatief een zeker bericht is op basis van de context (alle berichten) die we hier hebben._____no_output_____

from collections import Counter

def information_rate(content):
    words = str(content).replace('\t', '    ').replace('\n', ' ').replace('\r', ' ').lower().split(' ')
    total = 0

    words = Counter(words)

    for word in words:
        if word == '':
            continue

        try:
            rarity = CLASSIFIED_WORDS[word]
        except KeyError:
            rarity = 0
        appearance = words[word]

        total += appearance * appearance / rarity

    return total

information_rate('mailcontact')_____no_output_____

We calculate the word relevance and then use the sigmoid function to spread it nicely between 0 and 1._____no_output_____

preprocessed_data['info_score']  = preprocessed_data['title']   .apply(information_rate)
preprocessed_data['info_score'] += preprocessed_data['abstract'].apply(information_rate)

preprocessed_data['norm_info_score'] = round(1 / (1 + np.exp(-1 * np.log10(preprocessed_data['info_score']))), 2)

preprocessed_data.sort_values(by='norm_info_score')_____no_output_____preprocessed_data.to_csv('data.csv')_____no_output_____

Met de onderstaande code kun je een specifiek artikel bekijken voor een steekproef._____no_output_____

print(preprocessed_data.loc[2453]['abstract'])

6.6

Schepersmaat 2
Postbus 28000
9400 HH ASSEN

Nederlandse Aardolie Maatschappij B.V.

pe Es CD Telefoon : (0592) 369111
Gemeent&SSlen | ô Telefax : (0592) 362200

RA PSB | | NAM www.nam.nl
Code: d

Afdoen dd:
pnt

Gemeente Assen 15 AUG. 2006 |

ge RE Le | AKAI
Postbus Ù ie AM 2006007018 /
9400 RA Assen CR TT

|
Uw ref: Onze ref: EP200 Bant Deerkiësar: (0592) 363451 Assen, 14 augustus 2006

LSEP-H-L(LL)

Onderwerp: Oriënterend milieukundig bodemonderzoek NAM-lokatie Assen 1

Geachte novou

Naar aanleiding van uw telefonisch verzoek rapportage aan te leveren omtrent een bodemkundig
nulonderzoek van de NAM-locatie Assen , gelegen aan de Asserwijk, berichten wij u het volgende.

De NAM-locatie Assen is in 1981 aangelegd en de aanwezige gasput op het locatieterrein is in 1982
geboord. Voor de aanleg van het locatieterrein is geen bodemkundig nulonderzoek verricht, hetgeen
destijds niet gebruikelijk was.
Wel hebben wij, om een inventarisatie te maken van eventuele verontreiniging(en) van al onze
locatieterreinen in Nederland, in mei 1994 een oriënterend milieukundig bodemonderzoek op onze
NAM-locatie Assen laten verrichten. De rapportage hieromtrent treft u hierbij aan in het rapport
631/NA94/A402/3.5766 van toen nog Heidemij advies.

Wij vertrouwen erop dat met deze bijdrage de afgifte van de bouwvergunning voor het plaatsen van de
gaswinningsunit incl. corrosie/methanolinjectie op de bestaande asfaltverharding geen beletsel meer
behoeft te zijn. Wel begrijpen wij dat er een aanhoudingsplicht voor de bouwvergunning geldt.
Wij zullen u dan ook informeren wanneer de milieuvergunning door het Ministerie van Economische
Zaken voor de locatie Assen zal worden afgegeven. In de milieuvergunning zullen voorschriften
worden gesteld in het kader van de Nederlandse Richtlijn Bodembescherming bedrijfsmatige
activiteiten.

Wij vertrouwen er op u hiermede naar behoren te hebben geïnformeerd en verblijven,

hoogachtend,
Nederlandse

bijlage: als geadviseerd

Nederlandse Aardolie Maatschappij B.V. ingeschreven in het handelsregister van de Kamer van Koophandel en Fabrieken voor Drenthe onder nummer 04008869.

Maatschappij B.V.

«

Oriënterend milieukundig bodem-
onderzoek NAM-lokatie Assen 1

mei 1994
631/ NA94/A402/3.5766

Nm
EN Milieukundig bodemonderzoek

» We
Ís A! filieukundig bodemonderzoek van

© heidemij advies £B): |__Heidemij Advies BV is gecertificeerd
NS ener" / volgens ISO-NEN 9002 Tore

® Inhoud

Samenvatting

1 Inleiding 5

2_Lokatiegegevens 6

3_Bodemopbouw en grondwaterhuishouding 7
31 Bodemopbouw 1
32 _Grondwaterhuishouding 8

4_ Verontreinigingssituatie 10

S_ Interpretatie resultaten 14
Sl Zintuiglijke waarnemingen 14

e 5.2 _Analyseresultaten grond 14
53 Analyseresultaten slib 14
54 _ Analyseresultaten grondwater El
5,5_Risico's volksgezondheid en milieu 15

6_ Conclusies en aanbevelingen 16

Bijlagen
1 Schematische boorprofielen
2 Veldwerkmethoden

À 3 Berekende coördinaten peilbuizen
À 4.1 Analyseresultaten grond/sib

42 __Analyseresultaten grondwater

Tekeningen:
® 4-1 Geografische ligging onderzoekslokatie

42___ Situatie met isohypsen. opnamedatum 19 oktober 1993
4-3 __ Situatie met boringen, peilbuizen en verontreiniging grond
44 ___ Situatie met boringen, peilbuizen en verontreiniging met minerale,

olie in het grondwater

Samenvatting

Lokatie:

Verricht onderzoek:

Geohydrologische opbouw

Assen

oriënterend. onderzoek

Diepte Formatie Geoliydrologische | samensteling mmv) cenbeid
02 Format van Eerste watervoerend | middel fijn Um uiterst Drente ‘pakket fijn zand
25 Formatie van Eerste scheidende laag | teem

Drenthe

sid Formatie van Eind- | Tweede watervoerend | stibhoudend middel hoven pakket fijn Um uiterst fijn
zand

1440 Formatie vaa Peelo | Tweeds scheidende {| locr, sterk sibhou- haag dend riddelfija Um.
iter fijn zand

> Formatie van Derde watervoersad | 40-50 mmv lihoû- UikdHlarderwijk — | pakket dend midelijo ot
viert fijn zaad
>50 mmv. matig
grof tot matig fijn
zand

Waterhuishouding: =___ potentiële infiltratie;

Verontreinigingssituatie:

Risico's

»__ het ondiepe grondwater stroomt alzijdig
richting de sloten;

=___ het diepere grondwater (3e wvp) stroomt
in noordoostelijke richting

Grond
Op de lokatie zijn geen verontreinigingen aan-
getoond.

Slib
Het slib overschrijdt de grenswaarde (klasse 2).
De klasse-indeling wordt veroorzaakt door een
verhoogd gehalte kwik.

Grondwater
In het grondwater is op de rand van de lokatie
(zuidwestzijde) een matige verontreiniging (>
B-waarde) met minerale olie aangetoond. In de
overige peilbuizen zijn geen of niet noemens-
waardig verhoogde gehalten aangetoond.

op de lokatie zijn geen of niet noemenswaardig
verhoogde verontreinigingen aangetoond zodat Been risico’s voor volksgezondheid en milieu zijn te verwachten.
De lokatie wordt volgens Raamplan Bodem van de NAM ingedeeld in urgentieklasse 5 blootstellingsklasse 4, verspreidingsklasse 3)

Aanbevelingen. op basis van de onderzoeksresultaten is geen
nader onderzoek noodzakelijk. Wel wordt
aanbevolen de peilbuis aan de zuidoostzijde
van de lokatie te monitoren en/of de verontrei-
niging buiten het hekwerk in kaart te brengen.

Toetsing:

Geohydrologische opbouw

Binnen lokatie _ | Buiten lokatie
Grond Minerale olie | <A mo.

Barium B no.
Vluchtige >a no,
aromaten

Benzeen <A no.

mo. = niet onderzocht
klasseindeling volgens Derde Nola Waterhuishouding.

® 1 Inleiding

De Nederlandse Aardolie Maatschappij nn nn aan Heidemij Advies B.V. opdracht gegeven tot het verrichten van een oriënterend. milieukundig bodemonderzoek op de lokatie Assen |. Het onderzoek is verricht in de periode oktober 1993 - januari 1994 en is uitgevoerd in het kader van het Raamplan Bodem van de Nederlandse Aardolie Maatschappij.

De lokatie is in gebruik bij de NAM en ligt in agrarisch gebied. De regio- nale ligging van de lokatie is aangegeven op tekening 4-1.

Het doel van het onderzoek is het vaststellen van de aard, de plaats en de mate van een eventuele grond en/of grondwaterverontreiniging met mine- rale olie, vluchtige aromaten of barium ter plaatse van de op de lokatie @ aanwezige potentiële verontreinigingsbronnen (hoekwaterbakken, putten, mudbakken etc.). Tevens dient een globaal inzicht te worden verkregen in een eventuele verontreiniging met minerale olie of kwik van de waterbodem ter plaatse van het lozingspunt van de hoekwaterbak.

Op de randen van de lokatie zijn peilbuizen geplaatst ten behoeve van een eventuele monitoring.

In dit rapport zijn de resultaten van het uitgevoerde oriënterend onderzoek nader uitgewerkt.

land ea
pe, heidemij

2 _Lokatiegegevens

De lokatiegegevens zijn samengevat in de onderstaande tabel

Situering lokatie
Hoogteligging lokatie
Oppervlakte lokatie
Bodemgebruik omgeving
Grondwateronttrekkingen

‘Aantal putten
Aantal waterbakken
‘Aanwezigheid mudbak
Potentiële verontreinigings-
bronnen
Sloten.

zie tekening 4-1, Gemeente Assen
11,70 m + NAP
6,000 m?
agrarisch
de lokatie bevindt zich niet binnen een
beschermingszone van een grondwater-
wingebied. Wel bevindt zich op enkele
Kilometers oostelijk het grondwater-
beschermingsgebied Assen
1 (niet producerend)
2 (asfalt)
1 (voormalig)

put, waterbakken, mudbak
aan alle zijden van de lokatie bevinden
zich watervoerende sloten

3 _Bodemopbouw en grondwaterhuishouding

3.1 Bodemopbouw

De geohydrologische opbouw van de lokatie is samengevat in de onder- staande tabel.

Tabel l: Geohydrologische bodemopbouw (Bron: Grondwaterkaart van Nederland, kaartblad 11oost, 12west)

Diepte Formatie Geohydrologische Samenstelling mv) eendeid
02 Eerste watervoeread _ | middel fijn Um uiterst Drenthe pakket
25 Formatie van. Eerste scheidende laag Drenthe
Sla Formatie van Eind- | Tweede watervoerend | slibhoudend middel hoven pakket fijn Uma uiterst fijn,

zand
1440 Formatie van Peelo | Tweede schoidende + | teem, sterk liölou- lag dead middelfjn: nu

uiterst fijn zand
>40 Formatie vaa Derde walervoerend | 40.50 mu -mw:slibhou- UridHarderwijk | pakket dend middelfijn vot

uiterst fijn zand
>50 m rav. malig

‘tot matig fijn

  Uit de Grondwaterkaart kan geen eenduidige grondwaterstroming van het Ondiepe grondwater (eerste watervoerend. pakket) worden afgeleid. De lokatie bevindt zich op een waterscheiding waarbij het grondwater in zowel zuidoostelijke als in noordwestelijke richting kan stromen. Verder is sprake van een potentiële infiltratiesituatie.
De stromingsrichting van het diepere grondwater (derde watervoerend pakket) is noordoostelijk, waarbij enige beïnvloeding is door de onttrekking van drinkwaterwingebied Assen.

32

De boorbeschrijvingen van de verrichte boringen zijn weergegeven in
lage 1. De bodemopbouw op de lokatie kan als volgt worden gesche-

matiseerd.

Tabel 2 Schematische bodemopbouw op de lokatie

Diepte Omschrijving
(mmv)

0,0-0,1 verharding: asfalt
Ol-L2a 15 zand: zwak lemig zand, buiten het asfalt is de

bovengrond humeus
Lal5-24 zand: sterk lemig zand

Deze bodemopbouw komt overeen met de regionale situatie,

Grondwaterhuishouding

De standen van zowel het grondwater als nabijgelegen óppervlaktewater
(Sloten) zijn tweemaal opgenomen: De gegevens zijn weergegeven in de
onderstaande tabel

Tabel 3: Gegevens peilbuizen en grondwaterstanden
(hoogten in meters ten opzichte van NAP)

Peilbuis- _fierdiepte bovenkant hoogte grondwaterstanden
nummer — (mmv) peilbuis maaiveld

19-10-1993 22-10-1993

oo1 08-18 us 180 us uz
002 1020 us wss 11,09 ILI6
oas 1020 ur 187 IEH II6
007 1020 161 us LL ug
oo 10-20 167 t1,70 mus 20

o1s 1020 us 1,63 1 ‚oo
ou 10-20 164 16 116 iis

Sloot 93 1,10 1,06

Uit de bovenstaande tabel kan het volgende worden afgeleid:
= de grondwaterstanden ten tijde van het onderzoek bevonden zich op

circa 0,5 à 0,7 m -m.v. (circa 11,2 m + NAP).

-_De grondwaterstanden van 19-10-1993 zijn weergegeven op tekening 4-2 Tevens is hierop het isohypsenpatroon weergeven. Hieruit kan worden Beconcludeerd dat het ondiepe grondwater voornamelijk richting de sloten afstroomt. Deze situatie komt niet overeen met de regionale situatie. De lokatie wordt volledig omringd door sloten.

1o

4 _Verontreinigingssituatie

Het veldwerk is uitgevoerd volgens het normontwerp NEN-574l. Aspecten
die hierin niet zijn geregeld, zijn uitgevoerd volgens de "Voorlopige Praktijk Richtlijnen” (VPR) voor monstername en analyse bij bodemonderzoek van.
het Ministerie van VROM. Een overzicht van de veldwerkmethoden is
opgenomen in bijlage 2.
De boringen en peilbuizen zijn geplaatst op verdachte plaatsen. De lokaties
zijn door de NAM aangegeven en weergegeven op tekeningen 4-2 Um 4-4,

Van de peilbuizen zijn de coördinaten ten opzichte van het Rijks Driehoek
Stelsel bepaald. De gegevens zijn opgenomen in bijlage 3.

De grondmonsters zijn onderzocht op minerale olie (GC) en/of bacium. De
bariamanalyses zijn uitgevoerd. op grond ter plaatse van mudbakken. 1 Het slib is onderzocht op minerale olie (LR) en kwik. De slibmonsters zijn
samengesteld ter plaatse van de uitmonding van de overloop van de
waterbakken. Het slibmonster is samengesteld met behulp van een zuiger-
boor.
De grondwatermonsters zijn onderzocht op minerale olie (GO), vluchtige
aromaten (benzeen, tolueen, ethylbenzeen en xylenen) en naftaleen.

De laboratoriumanalyses zijn Sterlab-erkend en zijn uitgevoerd door Pro
Analyse te Barneveld.
De analysecertiicaten zijn opgenomen ia bijlage 4.

De resultaten zijn getoetst aan de zogenaamde A, B- en C-waarden uit de toetsingstabel van het Ministerie van VROM. De waarden van de onder-
zochte parameters zijn opgenomen in de tabellen.
De analyseresultaten. van het slib zijn getoetst volgens de Derde Nota
Waterhuisbouding, aangevuld met MILBOWA met behulp van het
LAWABO.

® In de tabellen 4 en 5 zijn voor respectievelijk grond/slib en grondwater de
veldwaarnemingen en de analyseresultaten weergegeven. Voor de grond
geldt dat hierin alleen boringen zijn opgenomen waar in het veld zintuiglijk
verontreinigingen zijn waargenomen of analyses zijn verricht.

Burpaotejmaiszek
zou ae) sparmens zuske,

zp ven 1
Guipos yrs

sao
or) apumensbeje sen

ap van bi
poetsen

maas a)
Ap aamnen

vaat ar)
spiemjandae sp ven

tof asset
Haa

dap Jota
£ Ps

sputadag zere:

envel
ane

een
«or

cab
Gant

aar)   masten oi
irausr van Saen

de Suy
(ans)

€ “aee)
2 “in

te

gest
ot

oo
u

st
vane

zu
so

coor
Ee

ee
es

us
:

arwen
apsaopaje

2
°

ve aaygoug-snrens

oemes
geo

°
vraat

-
mo

oe
woon

veojs dongen
ate

Caen)
une

n
n
e
n

a
mts)

w
mun

we
enne

M
E
N
E

isde
snee

gp
bijde

i
n

ammers

Ltassy
qe

va puor®
varennsassskjvue

us vaBuwawrenpeA
P
L

e zame

=t

westen
“Bayjveleacn

« s8 Hersyp «30
ie

mit
« 0

un

seopoor
‘cres/ooos

cn or

vi

p
tn

ston

ve
eu

n
n
n

T
T

had
1 oss

qlS U
poor]

wapmijnsarasfjrur
ús taBumaurAPA

®
©

©
m
m
m

Gionon)
pr pqeL

voaame
<sieet

2

openen tt
erniet

opaan ey
iets

raap»

mi
Wh

TE
en

j
e
n

«
:

"
e

ke
a

aas
5

A
ENE

RL
de

onsradames
tengage

tn
zm

opn

e
e

WAL
ev

een
co

a
r
n

eer
B
d

ver
za

we
PAR

E
R

ne
eeen

pe
mm

LEN
V
m

2

ds
pn

ks
ks

ps
ozon

ao
zoonwoiie

ee
W
e
e

ven
p

Gi
= 5

cen
ze

an
B

ET
vd

AP
oa

zo
emi

PE
AE

ke
w

a

|
ee n

n

e
n

de
m
i
n
n

main
mie

1 uossy
seven puor8

ermijnsssoskjeuy
_

:s (oger

14

® 5 Interpretatie resultaten

5.1

52

5.3

54

   De mate van de verontreiniging in de grond en het grondwate
ven op respectievelijk tekeningen 4-3 en 4-4

is weergege-

Zintuiglijke waarnemingen
De zintuiglijke waarnemingen zijn opgenomen in de boorprofielen (bijlage
3). Zintuiglijk zijn op de lokatie geen verontreinigingen waargenomen
Alleen in boring L is van 0,4 tot 0,8 m -mv. met behulp van de oliedetectie- pan een oliereactie waargenomen (oliereactie 1: licht)

‘Analyseresultaten grond

Uit de analyseresultaten blijkt dat in geen van de monsters verhoogde
gehalten minerale olie of barium zijn aangetoond.

Analyseresultaten slib

Het gehalte kwik in het slib is licht verhoogd en voldoet aan de toetsings-
waarde (klasse-indeling 2). Het gehalte minerale olie voldoet aan de streef-
waarde (klasse-indeling 0). Het eindoordeel voor het monster is klasse 2
(voldoet aan de toetsingswaarden) en wordt veroorzaakt door het verhoog-
de gehalte kwik.

‘Analyseresultaten grondwater

Uit de analyseresultaten blijkt dat in peilbuis 2 (op rand van de lokatie zuidoostzijde) het gehalte minerale olie de B-waarde overschrijdt. In de overige peilbuizen zijn geen verhoogde gehalten minerale olie of vluchtige
aromaten aangetoond.

        Risico's volksgezondheid en milieu

Gezien het huidig gebruik van de lokatie en de omgeving (landbouw) en de aard van de aangetroffen stoffen, zouden de volgende risico’s voor mens. vee en gewas kunnen optreden '
1 _ contact met verontreinigde bovengrond en/of slib; 2._ consumptie van verontreinigde voedingsgewassen, vlees- of melk-

produkten;
3._ gebruik van verontreinigd grondwater, o.a. voor veedrenking en besproeiing.

   Op de lokatie zijn in de grond geen verontreinigingen in de bovengrond aangetroffen zodat risico volgens deze blootstellings- route niet te verwachten is. Het risico voor ingestie van verontrei- nigd slib is, gezien de diepte van de sloot alsmede de afgelegen ligging, nihil.
ad. /3__De gehalten ín grond en grondwater liggen beneden de richtwaar- e den die gelden voor deze blootstellingsroutes zodat geconcludeerd kan worden dat er geen risico’s voor vee en gewas te verwachten. zijn.

oor de risico's voor het milieu zijn met name de verspreidingsmogelijk- heden van de verontreiniging van belang.
De gehalten aan verontreinigende componenten in het grondwater zijn niet verhoogd (met uitzondering van plaatselijk minerale olie, hoger dan de B- waarde), zodat een dergelijk risico niet hoog wordt ingeschat

De lokatie wordt volgens het Raamplan Bodem van de NAM ingedeeld in verspreidingsklasse 3 en blootstelingsklasse 4. Hieruit volgt urgentieklasse 5. Indien uit aanvullend onderzoek blijkt, dat er sprake is van een veront reinigingsvlek, dan vindt indeling plaats in verspreidingsklasse 2. Hieruit volgt urgentieklasse 2b, De blootstellingsklasse blijft vooralsnog onveran- derd.

* Bronne:
“__Voorloplge Inspectierichtlijn Biootscellingsriaie vaa de Volksgezondheid voor de KL1ieohysid. =__ Brief voor de Veterinaire Taspectie van en Overijzenl, Staacstoericht op de Volk > Grenswaarden voor hac booordelon van ve

      bij Bodanverontreinigiag, Hoofdinsg:      zondheid voor Groningen, Ectesland, Deenche 4, 319342 BP Ex, 7 zulk 1993 , Oezendheidadtenst voor dezen, 1991.

   Pi > heidemij

16

® 6 Conclusies en aanbevelingen

Op basis van het uitgevoerde bodemonderzoek kan het volgende worden
geconcludeerd:

Grond
In de grond zijn geen verontreinigingen aangetoond.

Slib
Het slib uit de aangrenzende sloot valt in klasse 2 (voldoet aan de toet-
singswaarde). De indeling wordt veroorzaakt door het gehalte kwik.

Grondwater
In peilbuis 002 (zuidwestzijde terrein) is cen gefalte minerale olie groter dan de B-waarde aangetoond. De herkomst van het verhoogde gehalte is niet duidelijk. In de overige peilbuizen zijn geen of niet noemenswaardig verhoogde gehalten minerale olie of vluchtige aromaten aangetoond.

id u
Op basis van de onderzoeksresultaten zijn geen verhoogde risico's voor de
volksgezondheid te verwachten. Wel kan de aangetroffen verontreiniging in het slib en het grondwater zich verspreiden, hetgeen uit milieuhygiënisch
oogpunt ongewenst is.
De lokatie wordt volgens het Raamplan Bodem van de NAM ingedeeld in
urgentieklasse 5 (blootstellingsklasse 3, verspreidingsklasse 4). De klasse-
indeling wordt veroorzaakt door een verhoogd gehalte minerale olie op de
rand van de lokari

Aanbevelingen
Op basis van de resultaten van het onderzoek wordt aanbevolen aandacht te schenken aan peilbuis 002, Dit kan bijvoorbeeld door monitoring en/of het in kaart brengen van de verontreiniging buiten de lokatie
Verder wordt aanbevolen de overige peilbuizen op de lokatie in een
monitoringsprogramma op te nemen.
Daarnaast dienen de pH en EC-waarden van het grondwater in de geplaatste peilbuizen te worden bepaald.

Bijlage 1

Schematische boorprofielen

ONIDINIJSLNOH3A

M
N
O
B
H
O
N
J
G
0
8

ONIDINNZS
N
O
A
A

pt,
M
A
N
O
B
S
O
N
3
G
0
E

7 o
O

|
ed

5

n
e

D
s

— MD
 OD

O
N
I
O
I
N
I
3
E
L
N
O
H
J
A

E

Ln
MNOEJÖN3008

E
E
 : E

per

D
U
 5 je

© Ei
a

>

B005 BOO02 3001

2 F
Z
L
L
L
E
L
L

LLT
L
I
N
O
 LLLLIT ITIL

DI D
I
D

Zi
ze

m
e

dre
E
h

din
|

D
|

5
8

3

)

E
A

L
L
L

L
L
L

RCLLLLLLT L

L
Z

18
+8

keeg

1
0
0
9

L
O
N
Z
I
Z
S
Z
S

o
| me

D

L
E
R
T

KLLLLLILLIILID
I
I
I

AN

Se

2.G0

a

09)

0.15

è

Saran
P
I
B
A
I
D
O
U
I

AOÌ
S
J
a
}
e
u

T
ï

À
L

Y
Y

T
&

se 5 È <T 5

en 0 l

651 -55/66
DATUM :09-10-1993 1:15

. Assen Î PROJECT
VERT.SCHAAL:

Ei
®

®&

N
O
S
A
N
Z
N
E
N
G
E
Z
N
Z
N
Z
S
S

DD
î

ONIOINIELNON IA
‚® >

5
|

U
e
t
e

8
3

C
A
L
A
L
L
L
L
L
L
L
L
L
Z
L
L
L
L
L
T
L
L
Z
Z
E
Z
L
L
L
E
T
L
I
E
Z
E
N

S
O
L
A
S

A

eN
B

RIEN
EUT E

R
E

IES

De
VE r

e
t

ker.
MET

E

R
e
n

B
E

ied
k
e
t

TT
el

8
3

Ee MO
G

5

de
LE

ONIOINASINOH3A
l Ì

b
n
s

rbe

8
7

,
C
L
L
L
L
L
L
L
L
L
L
Z
L
L
L
T
T
L
L
L
Z
L
L
L
L
L
T
T
L
L
E
Z
L
I
I
I

O
S

@
2

>
d
l

ì
L
O

|J}
O
E
F
E
N
E
N

+
0

L
=
6
O
O
M

o

ONIOINIAHLNONJA
ei

MNOEJOW3008
5

8
L
L
,

D
a
l
e
n

Ea

Be
a

Pf@AlODW
AO}

sJajeus
5

$
/

$
TI

elk.
d

6351-355766
DATUM :09—10—1993

Assen 1

ETS

PROJECT
VERT.SCHAAL:

M
N
O
B
J
O
N
3
T
0
G

ONISINIIHLNON3A

M
N
O
S
J
O
W
z
3
0
0
8

ONISINI3S
I
N
O
H
3
A

M
N
O
B
d
O
W
3
0
0
8

BOO9

5008

3007

«
„

r
7

a
,

/
g

/
#

/
vd

4

4

-
.

4
,

PJSNOOW
Aoy

sIsjew
J

|
0

O
N
I
D
I
N
N
S

L
N
O
H
J
A

: 5
SZ

K
O
E

SN
H
E
L
L
A
L
A
L
L
L

L
L
L

TLT I

T
T
F

C
L
L
L
L
I
I
I
I
D
N
T
I
J
Z
I
I
T

TTA

<1
M
N
O
B
J
O
W
3
A
G
0
E

o

L
L
T

T
T
b

r
r
o
r

E,
)

Va
RES

ee
G
H

M
G

ee
ode

Ee
we

EB
T8

TS
8

o
fe

y
o

D

eD

EE
b
l

109
(
S
Z
S
Z
S
Z
S
Z
S
Z
S
Z
N

e
n

ONIDINI3RL LINO
IA

Í
ND)

d
e

e
n

TA rs
me:

>
kin

e
n

il
5

ar DD
L
L
L
L
L
L
L
L
L
L
L
L
L
E
E
E

E
T
S

A
L
L
L
L
L
L
L
L
L
N

haan
M
A
O
E
J
O
W
N
F
0
O
G

o
d
n

EE:
;

Pr
4

leen
ie

end
S

TD

t
8

1
e

o
n

Se
“5

O
D

a
PT
u

*

{8 Fe
a}
od
ne

INIOINLISLNON AA
|

DW
KD)

g
e

Z
D
L
,

u
.

e
—

O
J

P
D

I
J
S
S

S
P

Ep
te

M
N
O
B
J
O
N
3
0
0
8

5

|E
L
e

C
E
L
L
L
E
E
L
Z
E
Z
L
L
N

Z
E
T
T
E

ri
B

|<
„en

R
I

R
M

0
Ì

ë
83

38
NE

5
yn

7
Be

50
>

È
Ls

DJSAIODW
AO}

S59Je
u

@
3

i
e

&

Y
Y

y
r

T

T
t

T
ï

a
l

OE
wl

G
>

BA 5566
DATUM :09—10—1993

Assen |

dst

PROJECT
VERT.SCHAAL:

ONIDINIIS
L
N
O
E
I
A

M
N
O
B
H
O
N
3
T
O
E

ONIOINEIS
I
N
O
H
3
A

M
N
O
B
J
O
N
I
C
O
E

ONIDINIJH
N
O
S

ZA

M
N
O
B
J
O
N
3
G
O
E

8015 B014 BO 13

re
nme

Í

7

V
S

f
,

7
>

G
A
A
N

L
L
L

E
L
D

6
ke

L
=
G
E
O
M

e
e

58
8

48

t
b

L09

K
A
S
A

Z
Z

S
R
S

EE Î
lk

Ì
B
,

Z
e
 L
L
L

LD Z
A
L

Z
E

ij D
I
D

Zj 7 I
J
)

T
I
L

S
A

|
s

G
j

©

Z
d
t

E
e

d
d
r

1

58
T8

33
e

q

|
/

Av
|

GAAR LALLLLLLLZZLZLLLTLZDTZAETZLLLZTDZIDÒ
Er

x
j

Tek
5

“©
S

5
T
S

5e
5

2e

PISMODUI
AO}

S193a lu
7

&
-

‚&- >
En

<{ E D
‚9
Ed)
E

631 -35766
DATUM :09—10—1993

Âssen 1
rh

PROJECT
VERT.SCHAAL:

idemij Advie En 7

}
{ H

ONIDIN!ISLNOS3A
Là

| Ì

e
n

S
P
F

SAPFP
FA

MNOBSOW3008
LLLLLLLLL Lj

4

O
N
I
D
I
N
N
H
L
N
O
H

FA

S
j

Ì
Gael

©
P
A
S
T

S
mnoadonzoos

5
A
A
E

L
L
L
 L
L
L

mD
o

e
e

sl
Ì

t
e

F
5

r
o

ce’
A
r

a.
©

>
s
t

es

5
2

en
ö

5
De

PjaAloDw
Aoy

s1ajatu
&

t
ú

r

En
;

N
R

| EN IN me 5 SS DN [ IS SI NS L N LN N INN omge prae smeed e Ee get En De
[ 5 ZJ Le 4 Em Got Ee Ee En ee

EIN N | WEE ME eN | He Wenn VN Ere ble So

Den ee an B Me Wor WE Se get go AN

HUUUSRIJK STERK HUMEUS STERK HUUEUS STERK HUUEUS. ZAND MANG LEEMARM ZWAK LEMIG STERK TOT ZEER STERK LEMIG ZAND ZAND ZnO

B A B
    hd               STERK HUMEUS HUMUSRIJK__ HUMUSRUKE KEG STERK Kl STERK ZANDIGE ZAND ZAND Ke

Legenda geboseerd op classificatie Stiboka (1984)     VENG ZAND VENCELEEM _ VONGE KL A5 NUMMER BORING
tas HOOGTE WMD (mt NWP)

‘GEL HOOGSTE GRONDNATERSTNO (GHG)
ZANOIG VEEN LEUCVEEN _KLEIG VEEN gE

DOO
RLA

TEN
OWE

DEN
 (

m/4
)

En
To
mo
EG
He
En

GE WWESTE CANOHATERSTAND (LC)
VEEN GLG DEFER DAN BOODEPTE

VERONTREINIGINGINDICATIES
GEEN ENIG ZEER STERK
  KLEUR k keke
GEUR s sass
OLIEREACTIE o sooo

PEILFILTER MET AANDUIDING

MET AANDUIDING
GEROERD GRONOMONSTER MET AANDUIDING   il onoenoero cronoens

TOEVOEGINGEN

bodemkundig
BL beekleen
5 gelaagd
är houtzesten
I inspoeling

KK kasteklei
KL keileen
Kv kleiig veen
Kz kuneczand

LL Lössleen
oM oud maaiveld
oe origineel profiel
or opgehoogd terrein
PE potklei
SK smeerlaag
TA teelaarde
u uitspoeling
v veen
VA veraard veen

va broekveen
ve zeggeveen
VM ____mosveen

ve rietveen
vs spalterveen
w verslagen veen
WR wortelresten
X grind
Yz ijzerconcreties
zv zandig veen

ZANDFRACTIE

neer, in ruime mate aanwezig minder, in gecinge mate aanwezig

MSO -CIJFER (um)
vir vor
0-7 BT ZED urensr ain za

105 = 150 zeen Fin zw 1505210 “ne rn zw
De MATIG GROF ZAND 300 — 420:

Ae ZEER GROF ZAND 1000 — 200
   >2000 GRIND

verhardingen
ASE asfalt
BET beton
KLI klinkers
IGL_ cegels
STC scelconplaat

niet bodemkundig
AE huishoudelijk afval
LE berlijns blauw (cyanide)
a kolentesten.
GL glas

ME metaalresten
P puin

PL plastic
sc schelpen
SH scherven

SI sintels
SL slakken
TE teerzesten

vr vaten

Bijlage 2

Veldwerkmethoden

 heidemij

Monstername

Het veldwerk ie uitgevoerd volgens het normonwerp NEN 5741. Aspec- van welke hierin niet zijn geregeld. zijn uitgevoerd volgens de Voorlopi. 9e Prakikdichtljnen’ (VPR) voor monstemame en analyse bij bodem. onderzoek van het Ministerie van VROM.

De boringen zijn verricht met behulp van een handboorset. Wannee: daarbij onder grondwaterniveau gewerkt wordt kan gepulst worden. Bij het doorboren van sterke verontreinigingen wordt een dubbele casing gebruikt. Bij zeer sterke verontreiniging Is-een casing achtergelaten.
Pelbuizen zin volgens. VPR-voorschrit doorgepomt en bemonsterd. Grondwatermonsters voor analyse op zware metalen zijn in het veld gefitreerd over een 0,45 jam fiter.

Bodemkundig onderzoek

De bodemkundlge algenschappen van da diverse bodemlagen zijn be- perdeeld en genoteerd op veldboorstaten. Hierbij is aandacht geschon. ken aan het lutum leem. en humusgehalte en is de korrelgrootte van de zandfrakie geschat (M50). Tevens is een schatting gemaakt van de Waterdoorlatendheid van de diverse bodemlagen (Kwaarde)

Zintuiglijk waarneembare verontrein

Bij het onderzoek ls de grond uit de boringen zintuiglijk op verontreini- gingskenmerken beoordeeld (onder andere geur/keur). De, afzonderlijke bodemlagen zijn met behulp van de veldolledetectiamethode onderzoent 9p de aanwezigheid van olieachtige veronreinigingen (zoals benzine, giesel. teerachtigen (PAN, (smeerjole en dergelijke). Hierbij worden deze stoflen met behulp van de zogenaamde olepan zichtbaar gemaak, Zodat de aard en de concentratie globaal ingeschat kunnen worden. De alereactles zjn ingedeeld in gen. puntenwaarderingssysteem 0 t/m 4, respectievelijk niet verontreinigd tot zeer sterk verontreinigd.
Bl de beoordeling in het veld wordt gestreefd naar de volgende Kkoppe- ling wssen olereactie en A, B- en Cwaarden uit de Leidraad Bodem. bescherming:

0 = gehalte lager dan A-waarde; 1_= gehalte tussen A- en B-waarde; 2 = gehalte tussen B- en C-waarde: 3 = gehalte hoger dan de C-waarde; $ = gehalte veol hoger dan de C-waarde. Bl elk onderzoek dient da ollereactie “gai danwel getoetst te worden door middel van laboratorlumanalyses.

De grond wordt ook op andere wijze zintuiglijk beoordeeld op verontrei- nigingskenmerken (geur, keur en dergelijke).
Overige veldmetingen

Zidens het bemonsteren van de peilbuizen zin de zuurgraad (pH) en het elekarisch geleidingsvermogen (EC) van het grondwater gemeten

Bijlage 3

Berekende coördinaten peilbuizen

Berekende coördinaten peilbuizen
(coördinaten ten opzichte van het Rijks Driehoek Coördinatenstelsel)

Peilbuisnummer X-coördinaat Y-coördinaat

1 23.530,65 558.134,20

2 23.496,06 558.124,16

5 231.530,01 558.088,46-

7 23.518,12 558.068,46

9 23155113 558.100,80

15 23.592,39 558.065,60

© 17 23.496,06 558-124,06

® Bijlage 4.2

Analyserapporten grondwater

heidemij zel

Bijlage 4.1

Analyserapporten grond/slib

Tekening 4-2

Situatie met isohypsen; opnamedatum 19 oktober 1993

 heidemij

bes E

. Em à

Zeyerveld

be
4

pe .

nne %
, 4 Í Westerveid

8

ej Gl
Ri

' hw! \
\Klagstarvee
N ì

ep ï
À

Star

n 5

ar”

bl vi
POLA en

Ad
hts and wer

y d bl

wed,

kn

Ln OA De ) Ie
( ‚ads NK SE

47

hd zn en

WS olet he
a) He, a Je

\ Í

en ,
7 Vee

nt ifsMesscHhHoaveldf

nam lop/63
orienterend onderzoek
locatie assen 1

geografische ligging onderzoekslocatie

Projectauramar 631-35766

Tekealng b-1

Schaal 1:50000
Cluster milieu

ind, vorm

Beatekenrs.

Code Hd

Jelaed metingen 210x297
Gecontroleerd

Piename ad
Datuns 030154 Prohecttelder-
Mierofikm

Verkigingeptaats ”

Heidemij Adrien GV
Ratuteir gevestigd ze Arnhem
Handelsregister Aenbem 49255

me
„ heidemi] advies

Auteursrechten voorbehouden

Tekening 4-1

Geografische ligging onderzoekslokatie

À heidemij

PRO ANALYSE
MILIEULABORATORIU 4

ANALYSERAPPOR dn

Datum : 01/11/93 Datum onderzoek: 25/10/93 Rapportnummer: 9310-0981 Referentie :
Monsternemer:
Opmerking =

Analyse Eenheid 1 2 3 4 5
Benzeen ka/l < 0.10 < 0.10 < 0,10 < 0.30 < 0.10 Tolueen H9/L < 0.10 < 0.10 < 0.10 < 0.10 0.13 Ethylbenzeen &g/L < 0.10 < 0.10 < 0.16 < 0.10 < 0.10 Xytenen kg/l < 0.10 < 6.10 < 0.10 < 0.10 < 0.10 Naftaleen ug/l < 0.10 < 0.10 < 0.10 < 0.10 < 0.10 Som aromaten (BTEX) eenmalige analyse ug/l - - - 0.13

Minerale olie (GC) C10-C16 ua/L 0.0000 20 0.0000 0.0000 0.0000 #Hinerale olie (GC) C16-C22 23/L 0.0000 31 0,0000 0.0000 0.0000 E43 Minerale olie (GC) C22-C30 „o/t Q.0000 50 0,0000 0.0000 0.0000 Minerale olie (GC) C30-C40 #9/L 0.0000 220 6.0000 0.0000 0.0000 Minerate olie (GC) totaal #o/L BD 0 320 < 50 < 50 < 50

1: WOO1-1
2; WOOZ-1
3: WOO7-1
&: WOTZ-1
5: WOO5-1

Paraaf:

Pagina: 1

SS)

QUALIFIED
BY STERLAD NGEICHRE EN IN HET NTERLAUREGISTER VOOR KARGRAIORIA ONDER MRIJ VOOR GEEIEUEN: ZOALS NADER OUSCHARVEN IN DE EAKENHENG

nnn

PRO ANALYSE
EEN

ANALYSERAPEBORT

Datum : 01/11/93 Datum onderzoek: 25/10/93 Rapportnummer: 9310-0931 Referentie : d En
Monstermemer :
Opmerking

Analyse Eenheid 6 7 8 9 10

Benzeen kg/l < 0.10 < 0.10
Tot veen u9/L < 0,10 0.15
Ethylbenzeen k9/L < 0,10 <0.10
Xylenen &g/L 0.12 < 0.10
Naftateen k9/L < 0.10 « 0.10
som aromaten (BTEX) eenmalige analyse ug/l 0.12 0,15

Minerale otie (GC) CT0-C16 ug/l 0.0000 0.0000
Minerale olie (GC) C16-C22 kg/L 0.0000 0.0000
Minerale olie (GC) C22-C30 R3/L 0.0000 9.0000 @ Minerale alie (GC) C30-C40 uI/L 0.0000 0.0600
Hinerate olie (GC) totaal “g/L < 50 < 50

kek EINDE RAPPORT “xe

6: WOTS-

7: WOO9-1

ina: è

Paraaf:

dossier nr,

ingekomen … 4 NOV, 1935

copie    Te
Í E
X JE

OLALIFLED

EN COLE NADEN OMSCHREVEN IN OÙ TEKEN TNG
BYSTERLAB IAGESOMEEUEN EN HET STERLANREGISTER VOOR LARGHA TORIA ONQER NR.IO VOOH-GE RI

ANALYSERAPPORT

PRO ANALYSE
MICIHEULABORATORIU M

Datum 01/11/93 Datum onderzoek: 25/10/93 Rapportnummer: 9310-0948 Referentie < 1
Mons ternemer:
Opmerking $

Analyse Eenheid 1 2 3 4 S
indamprest X 81.4 69.3 80.2 Organische Stof A _(m/m) 6.9 Korrelgrootte; fractie < 2 um CLutum) % m/m ds àl

Kwik (Hg) ma/kg ds 0.44

Barium (Ba) mg/kg ds de!

& Minerale olie (GC) C10-C16 ms/kg ds 0. 0000 Minerale otie (GC) C16-C22 mg/kg ds 0,0009 Minerale olfe (GC) C22-C30 me/kg ds 0.0000 Minerale otfe (GC) C30-C4Q m9/kg ds 0.0000 Minerale olie (GC) tataal mg/kg ds 50

Minerale olie (IR) ma/kg ds 30

1: 5001
2: Slib f
3: G009-1

An

QUALIFIED
BVSTERLAB incrscrervens it ner SteRLACHESIKTEN VOOR LANQRAT   RIA GNOES? HIG VOO

kek EINDE RAPPORT tet

  ter afdoening

   agina: 1
    — 4 NOV, 1995 ingekomen

copie

BOICOEN ZOALG KADER OMSCHRETEN iN OE ENKKRNING

keda
S
m
a
n

n
|

is.
D
L
S

B
c
r

ineduameperg

fi
il

n
Dezen

# Shmast
S9

ver 4 fm
ama

TAPE
Ítwepiey

5

heij
IA

aad

Ie
ver

eh
Ken

‚
L
a
n
s

B
e
b
u
m
e
n
s
g

Z
I

VaPUDSIEjDApuoIbd
jaw

efsonyis
Jurne eng
A

Di

Prârj

Wat zijn de meest gebruikte woorden?_____no_output_____

common_words = [w for w in CLASSIFIED_WORDS.keys()]
common_words.sort(key=lambda x : CLASSIFIED_WORDS[x], reverse=True)
common_words[0:15]_____no_output_____

## Belangrijkheid finetunen

In het vorige stuk hebben we de belangrijkheid gesorteerd. Er is echter nog één klein probleem: de manier van het berekenen van informativiteit moedigt aan om artikelen zo lang mogelijk te schrijven - informativiteit kan nooit dalen naarmate er meer woorden worden toegevoegd.

Om dit tegen te gaan, kunnen we de 2-macht verlagen. Deze brengen naar een 1-macht zal echter ook niet helpen, omdat dit juist weer aanmoedigt om een zo KLEIN mogelijk artikel te schrijven.

Om deze reden gaan we de macht handmatig finetunen ronde de 0 en 5 om ervoor te zorgen dat er geen (of slechts een kleine) bias aanwezig is jegens een bepaalde bestandsgrootte, om op die manier zowel lange als korte relevante artikelen te kunnen vinden._____no_output_____

import seaborn as sns

def information_pow_rate(power):
    def exec(content):
        words = str(content).replace('\t', '    ').replace('\n', ' ').replace('\r', ' ').lower().split(' ')
        total = 0

        words = Counter(words)

        for word in words:
            if word == '':
                continue

            rarity     = CLASSIFIED_WORDS[word]
            appearance = words[word]

            total += appearance ** 2 / rarity

        return total
    return exec

def word_count(content):
    return len(str(content)
               .replace('\t', '    ')
               .replace('\n', ' ')
               .replace('\r', ' ')
               .lower().split(' ')
              )

def calculate_power(df, power):
    df['word_score'] =  df['title']   .apply(information_pow_rate(2))
    df['word_score'] += df['abstract'].apply(information_pow_rate(2))
    df['word_count'] =  df['title']   .apply(word_count)
    df['word_count'] += df['abstract'].apply(word_count)

    df['word_score'] = np.log10(df['word_score']) / np.log10(df['word_count']) ** power
    df['word_score'] = 1 / (1 + np.exp(-1 * df['word_score']))
    df['word_count'] = np.log2(df['word_count'])
    return df_____no_output_____# Sanity check - make sure it still runs as previously programmed
calculate_power(preprocessed_data, 2).sort_values(by='word_score')_____no_output_____def plot_at_power(power):
    return sns.scatterplot(
                data=calculate_power(preprocessed_data, power),
                x='word_count', y='word_score'
            )

plot_at_power(0), plot_at_power(1.7), plot_at_power(3)

#plot_at_power(getal)   # <-- Speel dus een beetje door hier bij "getal" een getal in te voeren.
                        #     Probeer de grafiek een zo recht mogelijke lijn te maken._____no_output_____calculate_power(preprocessed_data, 1.7).sort_values(by='word_score').tail(10)_____no_output_____print(preprocessed_data.loc[1074]['abstract'])

    Date : 18-5-2017 10:54:38
31.21

nn
ed

nn nn nn
2 atv an-nl, "Assen leeft" info@assenleeft.nl, '"Assen Stad'' redactie @assenstad.nl, "Asser Courant'' info@assercourant.nl, '"Asser Journaal''

info@asserjournaal.nl, "Berichten van de Brink" Berichtenvandebrink@assen.nl, Ek prplanet-nl, "bessels boom'' w.bessels@boom.nl,

nn nn
BN zieeo.nl Griffier" griffier@assen.nl, "EN" info@nieuwsinassen.nl, Ks Cl,

nn O0 nn
nn | nn

nn | | | nn
ME ss enol, "'' info@spiegelgrafie.nl, "NN pbrjournalistiek@gmail.com, * _orger Krant" datstaat@planet.nl, 'postteam''
postteam@assen.nl, "redactie assen boom" redactie.assen@boom.nl, "Redactie Dagblad Assen" assen(@dvhn.nl, "Redactie RTV Drenthe" redactie@rtvdrenthe.nl,

nn nn
Subject : Bijeenkomsten EZ over gaswinning

Geachte redactie,

Volgende week belegt het ministerie van EZ drie informatiebijeenkomsten over het ontwerpbesluit gaswinning Westerveld. De bijeenkomsten worden gehouden in cafe Poken in

Ekehaar (22 mei) en in de Nieuwe Kolk (23 en 24 mei). Alle bijeenkomsten beginnen om zeven uur. De bijeenkomsten zijn openbaar.

Met vriendelijke groet
nn
Bestuurscommunicatie, woordvoerder

te
_________ (GEE
Bezoekadres: Noordersingel 33, 9401 JW Assen

## Woorden zoeken & matchen

Tot nu toe hebben we de informatiedichtheid van artikelen bepaald. In dit stuk gaan we kijken hoe we artikelen kunnen vinden die de opgegeven zoekwoorden zo veel mogelijk matchen.

**Let op!** Er was uiteindelijk geen tijd meer over om dit gedeelte te gebruiken, maar het leek ons desalniettemin goed om te laten zien voor als het interessant zou kunnen zijn._____no_output_____

def relevance_to_words_func(search_words):
    def calculate_relevance(content):
        words = str(content).replace('\t', '    ').replace('\n', ' ').replace('\r', ' ').lower().split(' ')
        total = 0

        words = Counter(words)

        for word in words:
            if word not in search_words:
                continue

            rarity     = CLASSIFIED_WORDS[word]
            appearance = words[word]

            total += appearance * appearance / rarity

        return total
    return calculate_relevance

def calculate_relevance(df, words):
    return df['title'].apply(relevance_to_words_func(words)) + df['abstract'].apply(relevance_to_words_func(words))_____no_output_____SEARCH_TERMS = ['de', 'het', 'een', 'u', '??.pdf']

preprocessed_data['relative_relevance'] = calculate_relevance(preprocessed_data, SEARCH_TERMS)
preprocessed_data.sort_values(
    by='relative_relevance'
)_____no_output_____calculate_relevance(preprocessed_data, SEARCH_TERMS)_____no_output_____