Skip to main content

PERDIDO Geoparser python library

Project description

Perdido Geoparser Python library

PyPI PyPI - License PyPI - Python Version

Installation

To install the latest stable version, you can use:

pip install --upgrade perdido

Quick start

Geoparsing

Binder Open In Colab

Import

from perdido.geoparser import Geoparser

Run geoparser

text = "J'ai rendez-vous proche de la place Bellecour, de la place des Célestins, au sud de la fontaine des Jacobins et près du pont Bonaparte."
geoparser = Geoparser(version='Standard')
doc = geoparser(text)
  • The version parameter can take 2 values: Standard (default), Encyclopedie.

Get tokens

  • Access token attributes:
for token in doc:
    print(f'{token.text}\tlemma: {token.lemma}\tpos: {token.pos}')
  • Get the IOB format:
for token in doc:
    print(token.iob_format())
  • Get a TSV-IOB format:
for token in doc:
    print(token.tsv_format())

Print the XML-TEI output

print(doc.tei)

Print the XML-TEI output with XML syntax highlighting

from display_xml import XML
XML(doc.tei, style='lovelace')

Print the GeoJSON output

print(doc.geojson)

Get the list of named entities

for entity in doc.named_entities:
    print(f'entity: {entity.text}\ttag: {entity.tag}')
    if entity.tag == 'place':
        for t in entity.toponym_candidates:
            print(f' latitude: {t.lat}\tlongitude: {t.lng}\tsource {t.source}')

Get the list of nested named entities

for nested_entity in doc.nested_named_entities:
    print(f'entity: {nested_entity.text}\ttag: {nested_entity.tag}')
    if nested_entity.tag == 'place':
        for t in nested_entity.toponym_candidates:
            print(f' latitude: {t.lat}\tlongitude: {t.lng}\tsource {t.source}')

Shows named entities and nested named entities using the displacy library from spaCy

displacy.render(doc.to_spacy_doc(), style="ent", jupyter=True)
displacy.render(doc.to_spacy_doc(), style="span", jupyter=True)

Display the map (using folium library)

doc.get_folium_map()

Saving results

doc.to_xml('filename.xml')
doc.to_geojson('filename.geojson')
doc.to_iob('filename.tsv')
doc.to_csv('filename.csv')

Geocoding

Binder Open In Colab

Import

from perdido.geocoder import Geocoder

Geocode a single place name

geocoder = Geocoder()
doc = geocoder('Lyon')

Geocode a list of place names

geocoder = Geocoder()
doc = geocoder(['Lyon', 'la place des Célestins', 'la fontaine des Jacobins'])

Get the geojson result

print(doc.geojson)

Get the list of toponym candidates

for t in doc.toponyms: 
    print(f'lat: {t.lat}\tlng: {t.lng}\tsource {t.source}\tsourceName {t.source_name}')

Get the toponym candidates as a GeoDataframe

print(doc.to_geodataframe())

Perdido Geoparser REST APIs

http://choucas.univ-pau.fr/docs#

Example: call REST API in Python

import requests

url = 'http://choucas.univ-pau.fr/PERDIDO/api/'
service = 'geoparsing'
data = {'content': 'Je visite la ville de Lyon, Annecy et le Mont-Blanc.'}
parameters = {'api_key': 'demo'}

r = requests.post(url+service, params=parameters, json=data)

print(r.text)

Acknowledgements

Perdido is an active project still under developpement.

This work was partially supported by the following projects:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

perdido-0.1.40.tar.gz (61.3 MB view details)

Uploaded Source

Built Distribution

perdido-0.1.40-py3-none-any.whl (94.0 MB view details)

Uploaded Python 3

File details

Details for the file perdido-0.1.40.tar.gz.

File metadata

  • Download URL: perdido-0.1.40.tar.gz
  • Upload date:
  • Size: 61.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for perdido-0.1.40.tar.gz
Algorithm Hash digest
SHA256 7f1d676dd7dc73eba051f198c94d3d0d014a02f03b24d775d65621509a1b5237
MD5 c2428882350f0be1ac484f46732886ee
BLAKE2b-256 5b6fe8d08672a9292bdaecd27143a0d3f70ba8e9d7a66b6af37c88a974f02f6e

See more details on using hashes here.

File details

Details for the file perdido-0.1.40-py3-none-any.whl.

File metadata

  • Download URL: perdido-0.1.40-py3-none-any.whl
  • Upload date:
  • Size: 94.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for perdido-0.1.40-py3-none-any.whl
Algorithm Hash digest
SHA256 0ccd4f5282dccc3bddf44f83c47f8985362cebad0c33a7a493d5c0ee453e0051
MD5 417e816d394a9e79c80242e776e7313f
BLAKE2b-256 ebe69e647172176eebb1613de25bb526d943e7f0bf0f61cb45f817f0f5d1afd3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page