{
  "id": 14188052,
  "title": "What 64,000 gun store listings taught us about parsing product titles",
  "url": "https://urgent.news/2026/10/13/what-64-000-gun-store-listings-taught-us-about-parsing-product-titles",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-13T11:37:54.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/gunsnprices/what-64000-gun-store-listings-taught-us-about-parsing-product-titles-27dk"
  },
  "original_language": "en",
  "account": "In a deep dive into gun store listings, researchers uncovered the complexities of parsing product titles. Out of 63,755 real listings from over 40 US gun and ammo stores, they analyzed 64,000 listings to understand how to determine if two listings refer to the same product. Store titles for guns and ammunition are particularly challenging, relying almost entirely on the title for accurate identification. The team developed a parser using Python and JavaScript packages to process these titles, which is now open-source.\n\nThe titles often contain a mix of model numbers, calibers, and other specifications that are easily misinterpreted by regex patterns. For example, \"O/U 12/28 BL/WD 3\" denotes a 12-gauge over/under shotgun with a 28-inch barrel and three chambers, not a barrel length. Similarly, \"20/25\" in an ammo title means 20 rounds per box and 25 boxes per case, not a caliber. Some listings, like \"G19 GEN3 COMPACT 9MM 4 2/15RD,\" need to be parsed to reveal a Glock 19 Gen 3 in 9mm with a 4-inch barrel and 15-round magazines.\n\nThe team's approach involved creating dictionaries for each brand, specifying model patterns, generations, configurations, and features. This method outperformed general named entity recognition (NER) models and large language models (LLMs) in terms of speed and cost, while still achieving high accuracy. Each brand has an ordered list of patterns, with the first matching pattern determining the model name. Numeric modes handle brands with variable model numbers, allowing for accurate identification.\n\nThe parser also addresses ambiguities in caliber spellings, generating them from what stores actually write. It resolves ambiguous spellings based on popularity and excludes bare numbers unless they appear with high frequency. A short allowlist of common numbers ensures they are correctly identified. The parser's accuracy was validated against the actual attributes stored on GunsNPrices for firearm and ammunition listings, achieving a 99.97% match rate for model identification in firearms and 97.8% for caliber in ammunition. In rare cases, discrepancies were found to be due to errors in the store data rather than the parser.",
  "summary": "If you compare prices across stores, sooner or later you have to answer a boring question: are these two listings the same product? For guns and ammunition the answer lives almost entirely in the title, and store titles are a mess. At GunsNPrices we track listings from 40+ US gun and ammo stores. We recently open-sourced the parser we use to read those titles, as a Python package, a JavaScript…",
  "key_points": [
    "Researchers analyzed 64,000 gun store listings to develop a parser for product titles.",
    "The parser outperformed NER models and LLMs in accuracy and cost efficiency.",
    "The parser achieved 99.97% match rate for firearm models and 97.8% for ammunition calibers."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}