Skip to main content

Synthesized Data for NLP Tasks

Project description

nlp-synt-data PyPi version t

Synthetic Data Tools for Natural Language Processing (NLP) and Large Language Models (LLM) tasks

  • generate prompts (and prompt ids)
  • generate synthetic data (and data ids)
  • retrieve prompts and data from ids (to reduce generated dataset size)

Installation

pip install nlp-synt-data

Quickstart

An example of this library with ollama

from nlp_synt_data import *
import ollama

# generate prompts
prompts_dict = {
    "a": ["promptA0", "promptA1"],
    "b": ["promptB0", "promptB1"],
    "c": ["promptC0", "promptC1"],
    "d": ["promptD0", "promptD1"],
    "e": ["promptE0", "promptE1"],
}
prompts = PromptGenerator.generate(prompts_dict, [["c","e"],["a","b","d"]])

# generate texts
texts_with_keys = [
    ("[PERSON]","label0"),
    ("[PERSON] is working as a [JOB] in [POS]","label1"),
    ]
substitutions = {
    "JOB": [("job0","labeljob0"), ("job1","labeljob1")],
    "PERSON": [("person0","labelperson0"), ("person1","labelperson1")],
    "POS": [("pos0","labelpos0"), ("pos1","labelpos1")]
}
texts = DataGenerator.generate(texts_with_keys, substitutions)

# generate responses
model_func = lambda prompt, text: ollama.chat(model='llama3:instruct', messages=[
                { 'role': 'system', 'content': prompt, },
                { 'role': 'user', 'content': text, },
            ])['message']['content']
ResponseGenerator.generate("results.csv", texts, prompts, model_func)

results.csv

prompt_id text_id text_labels response text_PERSON_value text_JOB_value text_POS_value text_PERSON_label text_JOB_label text_POS_label
c#0_e#0 t#0_PERSON#0 label0 response person0 labelperson0
c#0_e#0 t#0_PERSON#1 label0 response person1 labelperson1
c#0_e#0 t#1_JOB#0_PERSON#0_POS#0 label1 response person0 job0 pos0 labelperson0 labeljob0 labelpos0
c#0_e#0 t#1_JOB#0_PERSON#0_POS#1 label1 response person0 job0 pos1 labelperson0 labeljob0 labelpos1
c#0_e#0 t#1_JOB#0_PERSON#1_POS#0 label1 response person1 job0 pos0 labelperson1 labeljob0 labelpos0
... ... ... ... ... ... ... ... ... ...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nlp_synt_data-0.0.9.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nlp_synt_data-0.0.9-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file nlp_synt_data-0.0.9.tar.gz.

File metadata

  • Download URL: nlp_synt_data-0.0.9.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for nlp_synt_data-0.0.9.tar.gz
Algorithm Hash digest
SHA256 6d5990bb81d89711c61c6d1035a40a8151c6bcca73897ef291ea44f5d723db48
MD5 51384924783a6aebae7b52133cf055b2
BLAKE2b-256 592d476a58c2e5c2df549d5975991a2a92b8950b0fbf58a9b7bc2e952e8b0090

See more details on using hashes here.

File details

Details for the file nlp_synt_data-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: nlp_synt_data-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for nlp_synt_data-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 06cb4d1253441ac5b7ac271a4b57337f270e533ebdc21e8c71a5ec6ede64e89c
MD5 4c5e6d30fc67420fbb85605e19c57c67
BLAKE2b-256 9bfb02151087a7b3f21a1bbf3254f9aaf02f8a3aa4926f6a847f5a6f7b1c04ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page