CoolFace
Datasetpublic

tanmaydeshpande/app-review-extraction-splits

App Review Structured-Extraction Splits Frozen train/val/test splits used to fine-tune and evaluate a LoRA adapter that extracts a strict, closed-vocabulary JSON object from app-store reviews. These are the exact artifacts behind the project's results — published so the base-vs-tuned comparison is fully reproducible. 💻 Code + write-up: https://github.com/deshpandetanmay/qlora-structured-extraction 🤖 Adapter: https://huggingface.co/tanmaydeshpande/qlora-app-review-extraction… See the full description on the dataset page: https://huggingface.co/datasets/tanmaydeshpande/app-review-extraction-splits.

sourceHugging Faceotherupdated 2mo agoView on Hugging Face
0likes37downloads
Dataset Card

App Review Structured-Extraction Splits

Frozen train/val/test splits used to fine-tune and evaluate a LoRA adapter that extracts a strict, closed-vocabulary JSON object from app-store reviews. These are the exact artifacts behind the project's results — published so the base-vs-tuned comparison is fully reproducible.

  • —💻 Code + write-up: https://github.com/deshpandetanmay/qlora-structured-extraction
  • —🤖 Adapter: https://huggingface.co/tanmaydeshpande/qlora-app-review-extraction
  • —🧪 Live demo: https://huggingface.co/spaces/tanmaydeshpande/app-review-extraction

Schema (each row)

json
{
  "input_text":     "the raw review text",
  "sentiment":      "positive" | "negative" | "neutral",
  "topics":         [up to 3 of: ui, performance, bugs, ads, price, features, usability, support],
  "mentions_price": true | false,
  "rating_implied": 1..5
}

Splits

splitrowsseen in training?
train1500yes
validation200yes (tuning)
test200no — held out completely

Source & how labels were produced

Derived from `sealuzh/app_reviews` (English app reviews with a native 1–5 star rating), stratified-sampled by star. Labels are produced by a deterministic rule-based pass (no model was used as a labeler), then frozen:

fieldrule
rating_impliedthe native star rating (genuine ground truth)
sentimentstar ≥ 4 → positive, star == 3 → neutral, star ≤ 2 → negative
mentions_priceregex for price/cost/subscription/pay/$/free/refund
topicskeyword regex per closed-vocab term; vocab order = priority; capped at 3

⚠️ Known label limitations (read before using)

  • —`rating_implied` is the only fully independent label. The other three are deterministic functions of the text/star, so a model can learn the rule rather than the concept (label circularity).
  • —sentiment is a hard star threshold — sarcastic 5-star complaints and mild 3-star praise are mislabeled by construction.
  • —mentions_price and the price topic share the same regex (correlated by design); mentions_price is ~96% one class.
  • —topics keyword matching misses paraphrases and can false-positive; the cap of 3 drops genuine extra topics.

Full detail: `publication/limitations.md`.

License

Labels/splits derived from sealuzh/app_reviews, whose license is not declared in its dataset metadata — verify terms on the source dataset card before redistribution or commercial use.