On this page
Long-Form Text
Misata generates realistic multi-sentence text for content that needs to feel human, product reviews, support tickets, email bodies, social captions, and bios. None of it is Lorem Ipsum.
Supported text types#
text_type | Format | Use case |
|---|---|---|
review | 1–2 sentences, sentiment-weighted | Product/service review columns |
support_ticket | Issue description + context | Helpdesk, CRM, support systems |
email_body | Greeting + body + closing | Email datasets, inbox simulations |
caption | Emoji + hashtag style | Social media posts |
bio | Role | vibe | optional emoji | Social media user profiles |
comment_body | Short reaction | Social comments, forum replies |
description | Product feature sentence | E-commerce, catalog data |
Reviews#
Python
Column(name="review_text", type="text", distribution_params={"text_type": "review"})Reviews are sentiment-weighted: 65% positive, 22% neutral, 13% negative, matching real platform distributions.
Sample output:
Great experience overall. Instructions could be clearer. Highly recommend.
Disappointing. Had a minor issue at first but it resolved quickly. Expected much better.
Absolutely loved it! The build quality feels premium. Will definitely come back.Reviews are automatically detected for columns named review, review_text, or review_body.
Support tickets#
Python
Column(name="issue_body", type="text", distribution_params={"text_type": "support_ticket"})Sample output:
I'm unable to log into my account after the recent update. I've tried clearing cache and it didn't help.
The payment keeps failing at checkout — tried three different cards. This is blocking my team from completing their work.
My order shows as delivered but I haven't received anything. Please escalate — this is urgent.Auto-detected for columns named ticket_body, issue_body, or description in tables named tickets, issues, or support_*.
Email bodies#
Python
Column(name="message_body", type="text", distribution_params={"text_type": "email_body"})Sample output:
Hi,
I wanted to follow up on our conversation from last week. Could you share an update?
Best regards,Auto-detected for columns named email_body, message_body, or body in tables named emails, messages, or inbox.
Social captions#
Python
Column(name="caption", type="text", distribution_params={"text_type": "caption"})Sample output:
loving every moment of this golden journey ✨ #instagood #travel #lifestyle #authentic
no filter needed when the hustle is this good 🌿 #daily #instagood #loveBios#
Python
Column(name="bio", type="text", distribution_params={"text_type": "bio"})Sample output:
Developer | building in public 🚀
Writer | sharing what I love
Photographer | exploring the world 🌍Full example: review dataset#
Python
from misata.schema import SchemaConfig, Table, Column, Relationship
schema = SchemaConfig(
name="Product Reviews",
tables=[
Table(name="products", row_count=100),
Table(name="reviews", row_count=2000),
],
columns={
"products": [
Column(name="product_id", type="int", unique=True, distribution_params={"min": 1, "max": 101}),
Column(name="name", type="text", distribution_params={"text_type": "product_name"}),
Column(name="category", type="categorical", distribution_params={
"choices": ["electronics", "clothing", "home", "sports"],
"probabilities": [0.35, 0.30, 0.20, 0.15],
}),
],
"reviews": [
Column(name="review_id", type="int", unique=True, distribution_params={"min": 1, "max": 2001}),
Column(name="product_id", type="foreign_key"),
Column(name="rating", type="float", distribution_params={
"distribution": "beta", "a": 4.0, "b": 1.5, "min": 1.0, "max": 5.0, "decimals": 1,
}),
Column(name="review_text", type="text", distribution_params={"text_type": "review"}),
Column(name="verified", type="boolean", distribution_params={"probability": 0.78}),
Column(name="created_at", type="date", distribution_params={"start": "2022-01-01", "end": "2024-12-31"}),
],
},
relationships=[
Relationship(parent_table="products", child_table="reviews",
parent_key="product_id", child_key="product_id"),
],
)
import misata
tables = misata.generate_from_schema(schema)
print(tables["reviews"][["rating", "review_text"]].head(5).to_string())