# How to extract city entities

**URL:** <https://forum.rasa.com/t/how-to-extract-city-entities/25233>\
**Category:** Rasa Open Source\
**Created:** [February 25, 2020, 10:04am UTC](https://forum.rasa.com/t/how-to-extract-city-entities/25233 "2020-02-25T10:04:39Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![tiziano](https://avatars.discourse-cdn.com/v4/letter/t/e19adc/32.png) [@tiziano](https://forum.rasa.com/u/tiziano)\
**Post date:** [February 25, 2020, 10:04am UTC](https://forum.rasa.com/t/how-to-extract-city-entities/25233/1 "2020-02-25T10:04:39Z")

</div>

Is there a way for Rasa to recognize cities in a text without needing to create the custom entity “city” and list all the possible cities?

---

<div class="post-metadata">

**Author:** ![dakshvar22](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/dakshvar22/32/3993_2.png) [@dakshvar22](https://forum.rasa.com/u/dakshvar22)\
**Post date:** [March 2, 2020, 4:17pm UTC](https://forum.rasa.com/t/how-to-extract-city-entities/25233/2 "2020-03-02T16:17:39Z")

</div>

Listing all possible cities is infeasible. You can add training data for this custom entity “city” to your NLU training data(take a look at [Entity Extraction](https://rasa.com/docs/rasa/nlu/entity-extraction/#entity-extraction)) and use a entity extractor like [Components](https://rasa.com/docs/rasa/nlu/components/#crfentityextractor) (CRFEntityExtractor)

---

<div class="post-metadata">

**Author:** ![tiziano](https://avatars.discourse-cdn.com/v4/letter/t/e19adc/32.png) [@tiziano](https://forum.rasa.com/u/tiziano)\
**Post date:** [March 2, 2020, 4:24pm UTC](https://forum.rasa.com/t/how-to-extract-city-entities/25233/3 "2020-03-02T16:24:01Z")

</div>

I wasn’t thinking about a look-up table with all the cities in the world listed; I thought more of a component for doing language analysis and recognizing the category of the word (Geographical entity, Person, Organization…) based on the sentence. Something like what the Python library NLTK already does…

---

<div class="post-metadata">

**Author:** ![dakshvar22](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/dakshvar22/32/3993_2.png) [@dakshvar22](https://forum.rasa.com/u/dakshvar22)\
**Post date:** [March 2, 2020, 7:47pm UTC](https://forum.rasa.com/t/how-to-extract-city-entities/25233/4 "2020-03-02T19:47:29Z")

</div>

You could build a custom component which uses the NLTK NER model and include it in your NLU pipeline.

---

<div class="post-metadata">

**Author:** ![tiziano](https://avatars.discourse-cdn.com/v4/letter/t/e19adc/32.png) [@tiziano](https://forum.rasa.com/u/tiziano)\
**Post date:** [March 3, 2020, 9:35am UTC](https://forum.rasa.com/t/how-to-extract-city-entities/25233/5 "2020-03-03T09:35:17Z")

</div>

Is there any guide on how to build a custom component?

---

<div class="post-metadata">

**Author:** ![dakshvar22](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/dakshvar22/32/3993_2.png) [@dakshvar22](https://forum.rasa.com/u/dakshvar22)\
**Post date:** [March 9, 2020, 1:31pm UTC](https://forum.rasa.com/t/how-to-extract-city-entities/25233/6 "2020-03-09T13:31:38Z")

</div>

Yes, here you go - [Enhancing Rasa NLU models with Custom Components](https://blog.rasa.com/enhancing-rasa-nlu-with-custom-components/)

---

<div class="post-metadata">

**Author:** ![tiziano](https://avatars.discourse-cdn.com/v4/letter/t/e19adc/32.png) [@tiziano](https://forum.rasa.com/u/tiziano)\
**Post date:** [March 9, 2020, 1:52pm UTC](https://forum.rasa.com/t/how-to-extract-city-entities/25233/7 "2020-03-09T13:52:35Z")

</div>

Ok, thank you 🙂
