Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Irchel Geoparser

CI Coverage PyPI Downloads Python License

A Python library for extracting place names from text and linking them to geographic locations.

Geoparsing is split into two stages, and the library keeps them separate: a recognizer finds which words are place names, and a resolver decides which place each name refers to, choosing from the entries of a gazetteer. You supply the recognizer, the resolver, and the gazetteer explicitly, and each can be exchanged for another: a module can be replaced by one that works differently, pointed at a different underlying model, or fine-tuned on your own annotated data, and you can write a module of your own against a small interface. The library ships gazetteer configurations for the modern world and for Switzerland, and other geographic data becomes a gazetteer through a YAML configuration file, with no code to write.

Installation

pip install geoparser

The library also needs a gazetteer, which is not bundled: it is the database of places that names are resolved against.

python -m geoparser install geonames

See the installation guide for environment setup, the available gazetteers, and their disk requirements.

Quick Start

from geoparser import Geoparser
from geoparser.modules import SentenceTransformerResolver, SpacyRecognizer

# Build a pipeline from a recognizer and a resolver
geoparser = Geoparser(
    recognizer=SpacyRecognizer(),
    resolver=SentenceTransformerResolver(gazetteer_name="geonames"),
)

# Parse text
document = geoparser.parse(
    "The conference was held in Zurich, with satellite events in Geneva and Basel."
)

# Access results
for toponym in document.toponyms:
    location = toponym.location  # None if the name could not be resolved
    print(f"{toponym.text} -> {location.data['name']}, {location.data['country_name']} "
          f"({location.data['latitude']}, {location.data['longitude']})")
Zurich -> Zürich, Switzerland (47.36667, 8.55)
Geneva -> Geneva, Switzerland (46.20222, 6.14569)
Basel -> Basel, Switzerland (47.55839, 7.57327)

Each name here has been tied to one specific entry in GeoNames, so besides the name and coordinates printed above you also have a stable identifier for the place, what kind of place it is, the administrative units it belongs to, and a geometry you can map, measure, or export.

Documentation

Full documentation, including setup, guides, and the API reference, is available at docs.geoparser.app.

Project Status

The library is under active development and its architecture is still evolving; while the version remains below 1.0, minor releases may make breaking changes. ROADMAP.md describes the larger changes we intend to make.

Contributing

Questions, bug reports, and ideas are always welcome via issues. Pull requests are appreciated too — see CONTRIBUTING.md for local setup and development guidelines.

Acknowledgments

The Irchel Geoparser originated as part of Diego Gomes' Master's thesis and was further developed with support from the Department of Geography at the University of Zurich and the Public Data Lab of the Digitalization Initiative of the Zurich Higher Education Institutions. We thank Prof. Dr. Ross Purves for the opportunity to continue this work as part of a research project.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Geoparser depends on a number of third-party libraries, listed in pyproject.toml. Each is distributed separately under its own license, which pip installs alongside it.

Release files for geoparser 0.6.1rc1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for geoparser 0.6.1rc1
File Size Uploaded
geoparser-0.6.1rc1.tar.gz 99.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for geoparser 0.6.1rc1
File Interpreter ABI Platform
geoparser-0.6.1rc1-py3-none-any.whl Python 3 none any Details

Total release size: 238.9 kB

Release files / geoparser-0.6.1rc1.tar.gz

Download URL geoparser-0.6.1rc1.tar.gz
Size 99.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cfc8535543d9f9b6e0c01bd7481a212172f2d07d734fce03ddc3e86ffc48cfd7
BLAKE2b-256 checksum
How to use checksums
582d0b821a40943888f80343c89fb79dff8ca151f9566da271dae990aec2c8ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / geoparser-0.6.1rc1-py3-none-any.whl

Download URL geoparser-0.6.1rc1-py3-none-any.whl
Size 139.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9224a0d8f002af7c65ae4176629dbb09ae20c76ccae8f6d80edf5df14d62ac63
BLAKE2b-256 checksum
How to use checksums
d6092555d3a6e5cb6dfa18f2dda5eaa170ca718d370e8c0c325e2a30bab1ee98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.1

2 release files

This release

0.6.1rc1 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

1 release file

0.1.1

1 release file

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page