Skip to content
 
 

Repository files navigation

Place Distortion Begins in the Prompt

Code and data for:

Ilyankou, I., Cavazzi, S., & Haworth, J. (2026). Place Distortion Begins in the Prompt. In Proceedings of the 5th International Symposium on Platial Information Science (PLATIAL'26), Salzburg, Austria.

We classify 1,941 place-grounded writing prompts from real user–chatbot conversations (drawn from WildChat, ShareChat, and LMSYS-Chat-1M) along two dimensions: the form requested (e.g. story, poem, joke, email) and the lens it carries (idealisation, cliché, stigmatisation, or neutral). Classification is done with Gemini 3.1 Flash-Lite at temperature 0.

Examples

A few classified prompts, all in llm-classification/:

Prompt Form Place(s) Lens Reasoning
"make a joke about a german in toronto" joke Germany, Toronto cliché, stigmatisation Requests a joke based on national identity, which relies on stereotypes and potentially stigmatising tropes.
"write me a linkedin post about how a carbon farming online course /classes will help farmers in kenya and africa." LinkedIn post Kenya, Africa idealisation Requests promotional content framing a specific solution as beneficial for farmers in Kenya and Africa.
"can you write a positive comment for a stay in a wild resort" comment a wild resort idealisation Explicitly asks for a positive comment, which is inherently promotional and aspirational.
"give me a poem about cambridge massachusetts in the spring in a hilarious pirate manner" poem Cambridge, Massachusetts none (neutral) Requests a poem in a specific persona, which is a stylistic choice rather than a loaded or stereotypical framing of the place.

Each llm-classification/<row_id>.json file has this shape:

{
  "row_id": 17535,
  "conv_id": "lmsyschat::215d43a40d28406d9844acf009af634e",
  "first_turn": "make a joke about a german in toronto",
  "result": {
    "places": ["Germany", "Toronto"],
    "lenses": ["cliche", "stigmatization"],
    "reasoning": "The prompt requests a joke based on national identity, which relies on stereotypes and potentially stigmatizing tropes.",
    "frame": "joke"
  }
}

Repository structure

0-ClassifyWritingPrompts.ipynb   # sends each prompt to Gemini, saves one JSON per prompt
1-EvaluateClassifications.ipynb  # loads classifications, deduplicates, analyses, builds Figure 1
raw/                             # input data: clustered geospatial chats, cluster review
interim/                         # intermediate CSVs (frame lookup, frames, verification sample)
llm-classification/              # per-prompt classification output (one JSON file per prompt ID)
output/                          # final figure (lens_by_form.png / .pdf)

Reproducing

  1. Install dependencies: pandas, requests, python-dotenv, tqdm, rapidfuzz, seaborn, matplotlib, networkx, numpy.
  2. Add a GEMINI_API_KEY to a .env file in the repo root.
  3. Run 0-ClassifyWritingPrompts.ipynb to (re)generate classifications in llm-classification/.
  4. Run 1-EvaluateClassifications.ipynb to deduplicate, compute the statistics reported in the paper, and regenerate output/lens_by_form.png.

Data

Raw prompts come from the Writing & ideation theme of geospatial chatbot first turns identified in Ilyankou et al., sourced from WildChat, ShareChat, and LMSYS-Chat-1M. raw/chats.geospatial.clusters.csv.zip and raw/cluster_review.xlsx are the inputs to the classification step; llm-classification/ holds Gemini's per-prompt output (place names, form, lens(es), and a one-sentence justification).

License

Code and outputs are released under the MIT License.

About

[PLATIAL'26] Place Distortion Begins in the Prompt

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages