Token Classification
Transformers
PyTorch
Safetensors
English
bert
toponym detection
language model
geospatial understanding
geolm
Instructions to use knowledge-computing/geolm-base-toponym-recognition with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use knowledge-computing/geolm-base-toponym-recognition with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="knowledge-computing/geolm-base-toponym-recognition")# Load model directly from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("knowledge-computing/geolm-base-toponym-recognition") model = AutoModelForTokenClassification.from_pretrained("knowledge-computing/geolm-base-toponym-recognition") - Notebooks
- Google Colab
- Kaggle
| language: | |
| - en | |
| thumbnail: url to a thumbnail used in social sharing | |
| tags: | |
| - toponym detection | |
| - language model | |
| - geospatial understanding | |
| - geolm | |
| license: cc-by-nc-2.0 | |
| datasets: | |
| - GeoWebNews | |
| metrics: | |
| - f1 | |
| pipeline_tag: token-classification | |
| widget: | |
| - text: >- | |
| Minneapolis, officially the City of Minneapolis, is a city in the state of Minnesota | |
| and the county seat of Hennepin County. As of the 2020 census the population was | |
| 429,954, making it the largest city in Minnesota and the 46th-most-populous in the | |
| United States. Nicknamed the "City of Lakes", Minneapolis is abundant in water, | |
| with thirteen lakes, wetlands, the Mississippi River, creeks, and waterfalls. | |
| - text: >- | |
| Los Angeles, often referred to by its initials L.A., is the most populous | |
| city in California, the most populous U.S. state. It is the commercial, financial, | |
| and cultural center of Southern California. Los Angeles is the second-most populous | |
| city in the United States after New York City, with a population of roughly 3.9 | |
| million residents within the city limits as of 2020. | |
| # Model Card for GeoLM model for Toponym Recognition | |
| <!-- Provide a quick summary of what the model is/does. [Optional] --> | |
| A language model for detecting toponyms (i.e. place names) from sentences. We pretrain the GeoLM model on world-wide OpenStreetMap (OSM), WikiData and Wikipedia data, then fine-tune it for Toponym Recognition task on GeoWebNews dataset | |
| [UPDATE]: Demo can be found here: https://huggingface.co/spaces/zekun-li/geolm-base-toponym-recognition-demo | |
| # Model Details | |
| ## Model Description | |
| <!-- Provide a longer summary of what this model is/does. --> | |
| Pretrain the GeoLM model on world-wide OpenStreetMap (OSM), WikiData and Wikipedia data, then fine-tune it for Toponym Recognition task on GeoWebNews dataset | |
| <!--- **Developed by:** UMN Knowledge Computing Lab & USC LUKA Lab --> | |
| - **Model type:** Language model for geospatial understanding | |
| - **Language(s) (NLP):** en | |
| - **License:** cc-by-nc-2.0 | |
| - **Parent Model:** https://huggingface.co/zekun-li/geolm-base-cased | |
| <!---- **Resources for more information:** Zekun Li (li002666[Shift+2]umn.edu) --> | |
| # Uses | |
| <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. --> | |
| This is a fine-tuned GeoLM model for toponym detection task. The inputs are sentences and outputs are detected toponyms. | |
| <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. --> | |
| <!-- If the user enters content, print that. If not, but they enter a task in the list, use that. If neither, say "more info needed." --> | |
| To use this model, please refer to the code below. | |
| * **Option 1:** Load weights to a BERT model (Same procedure as the demo on the right side panel) | |
| ```python | |
| import torch | |
| from transformers import AutoModelForTokenClassification, AutoTokenizer | |
| # Model name from Hugging Face model hub | |
| model_name = "zekun-li/geolm-base-toponym-recognition" | |
| # Load tokenizer and model | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = AutoModelForTokenClassification.from_pretrained(model_name) | |
| # Example input sentence | |
| input_sentence = "Minneapolis, officially the City of Minneapolis, is a city in the state of Minnesota and the county seat of Hennepin County." | |
| # Tokenize input sentence | |
| tokens = tokenizer.encode(input_sentence, return_tensors="pt") | |
| # Pass tokens through the model | |
| outputs = model(tokens) | |
| # Retrieve predicted labels for each token | |
| predicted_labels = torch.argmax(outputs.logits, dim=2) | |
| predicted_labels = predicted_labels.detach().cpu().numpy() | |
| # Decode predicted labels | |
| predicted_labels = [model.config.id2label[label] for label in predicted_labels[0]] | |
| # Print predicted labels | |
| print(predicted_labels) | |
| # ['O', 'B-Topo', 'O', 'O', 'O', 'O', 'O', 'B-Topo', 'O', 'O', 'O', 'O', 'O', 'O', | |
| # 'O', 'O', 'B-Topo', 'O', 'O', 'O', 'O', 'O', 'B-Topo', 'I-Topo', 'I-Topo', 'O', 'O', 'O'] | |
| ``` | |
| * **Option 2:** Load weights to a GeoLM model | |
| To appear soon | |
| # Training Details | |
| ## Training Data | |
| <!-- This should link to a Data Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. --> | |
| **GeoWebNews** (Credit to [Gritta et al.](https://arxiv.org/pdf/1810.12368.pdf)) | |
| Download link: https://github.com/milangritta/Pragmatic-Guide-to-Geoparsing-Evaluation/blob/master/data/GWN.xml | |
| ## Training Procedure | |
| <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. --> | |
| ### Speeds, Sizes, Times | |
| <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. --> | |
| More information needed | |
| # Evaluation | |
| <!-- This section describes the evaluation protocols and provides the results. --> | |
| ## Testing Data & Metrics & Results | |
| ### Testing Data | |
| <!-- This should link to a Data Card if possible. --> | |
| More information needed | |
| ### Metrics | |
| <!-- These are the evaluation metrics being used, ideally with a description of why. --> | |
| More information needed | |
| ### Results | |
| More information needed | |
| # Technical Specifications [optional] | |
| ## Model Architecture and Objective | |
| More information needed | |
| ## Compute Infrastructure | |
| More information needed | |
| # Bias, Risks, and Limitations | |
| <!-- This section is meant to convey both technical and sociotechnical limitations. --> | |
| Significant research has explored bias and fairness issues with language models (see, e.g., [Sheng et al. (2021)](https://aclanthology.org/2021.acl-long.330.pdf) and [Bender et al. (2021)](https://dl.acm.org/doi/pdf/10.1145/3442188.3445922)). Predictions generated by the model may include disturbing and harmful stereotypes across protected classes; identity characteristics; and sensitive, social, and occupational groups. | |
| # Citation | |
| <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. --> | |
| **BibTeX:** | |
| More information needed | |
| **APA:** | |
| More information needed | |
| # Model Card Author [optional] | |
| <!-- This section provides another layer of transparency and accountability. Whose views is this model card representing? How many voices were included in its construction? Etc. --> | |
| <!--- Zekun Li (li002666[Shift+2]umn.edu) --> | |