Automationscribe.com
  • Home
  • AI Scribe
  • AI Tools
  • Artificial Intelligence
  • Contact Us
No Result
View All Result
Automation Scribe
  • Home
  • AI Scribe
  • AI Tools
  • Artificial Intelligence
  • Contact Us
No Result
View All Result
Automationscribe.com
No Result
View All Result

Can LangExtract Flip Messy Scientific Notes into Structured Knowledge?

admin by admin
August 19, 2025
in Artificial Intelligence
0
Can LangExtract Flip Messy Scientific Notes into Structured Knowledge?
399
SHARES
2.3k
VIEWS
Share on FacebookShare on Twitter



LangExtract is a from builders at Google that makes it simple to show messy, unstructured textual content into clear, structured knowledge by leveraging LLMs. Customers can present a couple of few-shot examples together with a customized schema and get outcomes primarily based on that. It really works each with proprietary in addition to native LLMs (by way of Ollama). 

A big quantity of knowledge in healthcare is unstructured, making it a super space the place a device like this may be helpful. Scientific notes are lengthy and stuffed with abbreviations and inconsistencies. Essential particulars comparable to drug names, dosages, and particularly adversarial drug reactions (ADRs) get buried within the textual content. Subsequently, for this text, I wished to see if LangExtract might deal with adversarial drug response (ADR) detection in medical notes. Extra importantly, is it efficient? Let’s discover out on this article. Word that whereas LangExtract is an open-source undertaking from builders at Google, it’s not an formally supported Google product.

Only a fast word: I’m solely displaying how LangExtract works. I’m not a physician, and this isn’t medical recommendation.

▶️ Here’s a detailed Kaggle pocket book to observe alongside.

Why ADR Extraction Issues

An Adversarial Drug Response (ADR) is a dangerous, unintended outcome brought on by taking a drugs. These can vary from gentle uncomfortable side effects like nausea or dizziness to extreme outcomes which will require medical consideration. 

Affected person takes medication for headache however develops abdomen ache; a typical Adversarial Drug Response (ADR) | Picture created by creator utilizing ChatGPT

Detecting them shortly is vital for affected person security and pharmacovigilance. The problem is that in medical notes, ADRs are buried alongside previous situations, lab outcomes, and different context. Consequently, detecting them is difficult. Utilizing LLMs to detect ADRs is an ongoing space of analysis. Some current works have proven that LLMs are good at elevating crimson flags however not dependable. So, ADR extraction is an efficient stress take a look at for LangExtract, because the purpose right here is to see if this library can spot the adversarial reactions amongst different entities in medical notes like medicines, dosages, severity, and so on.

How LangExtract Works

Earlier than we soar into utilization, let’s break down LangExtract’s workflow. It’s a easy three-step course of:

  1. Outline your extraction process by writing a transparent immediate that specifies precisely what you need to extract. 
  2. Present a couple of high-quality examples to information the mannequin in direction of the format and degree of element you count on.
  3. Submit your enter textual content, select the mannequin, and let LangExtract course of it. Customers can then evaluation the outcomes, visualize them, or move them immediately into their downstream pipeline.

The official GitHub repository of the device has detailed examples spanning a number of domains, from entity extraction in Shakespeare’s Romeo & Juliet to treatment identification in medical notes and structuring radiology stories. Do verify them out.

Set up

First we have to set up the LangExtract library. It’s all the time a good suggestion to do that inside a digital surroundings to maintain your undertaking dependencies remoted. 

pip set up langextract

Figuring out Adversarial Drug Reactions in Scientific Notes with LangExtract & Gemini

Now let’s get to our use case. For this walkthrough, I’ll use Google’s Gemini 2.5 Flash mannequin. You possibly can additionally use Gemini Professional for extra advanced reasoning duties. You’ll must first set your API key:

export LANGEXTRACT_API_KEY="your-api-key-here"

▶️ Here’s a detailed Kaggle pocket book to observe alongside.

Step 1: Outline the Extraction Activity

Let’s create our immediate for extracting medicines, dosages, adversarial reactions, and actions taken. We are able to additionally ask for severity the place talked about. 

immediate = textwrap.dedent("""
Extract treatment, dosage, adversarial response, and motion taken from the textual content.
For every adversarial response, embody its severity as an attribute if talked about.
Use precise textual content spans from the unique textual content. Don't paraphrase.
Return entities within the order they seem.""")
The word highlights ibuprofen (400 mg), the adversarial response (gentle abdomen ache), and the motion taken (stopping the drugs). That is what ADR extraction seems to be like in observe. | Picture by Writer

Subsequent, let’s present an instance to information the mannequin in direction of the proper format:

# 1) Outline the immediate
immediate = textwrap.dedent("""
Extract situation, treatment, dosage, adversarial response, and motion taken from the textual content.
For every adversarial response, embody its severity as an attribute if talked about.
Use precise textual content spans from the unique textual content. Don't paraphrase.
Return entities within the order they seem.""")

# 2) Instance 
examples = [
    lx.data.ExampleData(
        text=(
            "After taking ibuprofen 400 mg for a headache, "
            "the patient developed mild stomach pain. "
            "They stopped taking the medicine."
        ),
        extractions=[
            
            lx.data.Extraction(
                extraction_class="condition",
                extraction_text="headache"
            ),
        
            lx.data.Extraction(
                extraction_class="medication",
                extraction_text="ibuprofen"
            ),
            lx.data.Extraction(
                extraction_class="dosage",
                extraction_text="400 mg"
            ),
            lx.data.Extraction(
                extraction_class="adverse_reaction",
                extraction_text="mild stomach pain",
                attributes={"severity": "mild"}
            ),
            lx.data.Extraction(
                extraction_class="action_taken",
                extraction_text="They stopped taking the medicine"
            )
        ]
    )
]

Step 2: Present the Enter and Run the Extraction

For the enter, I’m utilizing an actual medical sentence from the ADE Corpus v2 dataset on Hugging Face.

input_text = (
    "A 27-year-old man who had a historical past of bronchial bronchial asthma, "
    "eosinophilic enteritis, and eosinophilic pneumonia introduced with "
    "fever, pores and skin eruptions, cervical lymphadenopathy, hepatosplenomegaly, "
    "atypical lymphocytosis, and eosinophilia two weeks after receiving "
    "trimethoprim (TMP)-sulfamethoxazole (SMX) remedy."
)

Subsequent, let’s run LangExtract with the Gemini-2.5-Flash mannequin.

outcome = lx.extract(
    text_or_documents=input_text,
    prompt_description=immediate,
    examples=examples,
    model_id="gemini-2.5-flash",
    api_key=LANGEXTRACT_API_KEY 
)

Step 3: View the Outcomes

You possibly can show the extracted entities with positions

print(f"Enter: {input_text}n")
print("Extracted entities:")
for entity in outcome.extractions:
    position_info = ""
    if entity.char_interval:
        begin, finish = entity.char_interval.start_pos, entity.char_interval.end_pos
        position_info = f" (pos: {begin}-{finish})"
    print(f"• {entity.extraction_class.capitalize()}: {entity.extraction_text}{position_info}")

LangExtract accurately identifies the adversarial drug response with out complicated it with the affected person’s pre-existing situations, which is a key problem in the sort of process.

If you wish to visualize it, it’s going to create this .jsonl file. You possibly can load that .jsonl file by calling the visualization perform, and it’ll create an HTML file for you.

lx.io.save_annotated_documents(
    [result],
    output_name="adr_extraction.jsonl",
    output_dir="."
)

html_content = lx.visualize("adr_extraction.jsonl")

# Show the HTML content material immediately
show((html_content))

Working with longer medical notes

Actual medical notes are sometimes for much longer than the instance proven above. As an illustration, right here is an precise word from the ADE-Corpus-V2 dataset launched underneath the MIT License. You possibly can entry it on Hugging Face or Zenodo. 

Excerpt from a medical word from the ADE-Corpus-V2 dataset launched underneath the MIT License | Picture by the creator

To course of longer texts with LangExtract, you retain the identical workflow however add three parameters:

extraction_passes runs a number of passes over the textual content to catch extra particulars and enhance recall. 

max_workers controls parallel processing so bigger paperwork might be dealt with quicker. 

max_char_buffer splits the textual content into smaller chunks, which helps the mannequin keep correct even when the enter may be very lengthy.

outcome = lx.extract(
    text_or_documents=input_text,
    prompt_description=immediate,
    examples=examples,
    model_id="gemini-2.5-flash",
    extraction_passes=3,    
    max_workers=20,         
    max_char_buffer=1000   
)

Right here is the output. For brevity, I’m solely displaying a portion of the output right here.


If you’d like, you may also move a doc’s URL on to the text_or_documents parameter.


Utilizing LangExtract with Native fashions by way of Ollama

LangExtract isn’t restricted to proprietary APIs. You may as well run it with native fashions by way of Ollama. That is particularly helpful when working with privacy-sensitive medical knowledge that may’t go away your safe surroundings. You possibly can arrange Ollama regionally, pull your most well-liked mannequin, and level LangExtract to it. Full directions can be found within the official docs.

Conclusion

Should you’re constructing an data retrieval system or any software involving metadata extraction, LangExtract can prevent a big quantity of preprocessing effort. In my ADR experiments, LangExtract carried out effectively, accurately figuring out medicines, dosages, and reactions. What I seen is that the output immediately is dependent upon the standard of the few-shot examples offered by the consumer, which implies whereas LLMs do the heavy lifting, people nonetheless stay an vital a part of the loop. The outcomes had been encouraging, however since medical knowledge is high-risk, broader and extra rigorous testing throughout numerous datasets continues to be wanted earlier than transferring towards manufacturing use.

Tags: clinicalDataLangExtractMessynotesStructuredTurn
Previous Post

Create a journey planning agentic workflow with Amazon Nova

Next Post

Simplify entry management and auditing for Amazon SageMaker Studio utilizing trusted identification propagation

Next Post
Simplify entry management and auditing for Amazon SageMaker Studio utilizing trusted identification propagation

Simplify entry management and auditing for Amazon SageMaker Studio utilizing trusted identification propagation

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Popular News

  • How Aviva constructed a scalable, safe, and dependable MLOps platform utilizing Amazon SageMaker

    How Aviva constructed a scalable, safe, and dependable MLOps platform utilizing Amazon SageMaker

    402 shares
    Share 161 Tweet 101
  • Diffusion Mannequin from Scratch in Pytorch | by Nicholas DiSalvo | Jul, 2024

    401 shares
    Share 160 Tweet 100
  • Unlocking Japanese LLMs with AWS Trainium: Innovators Showcase from the AWS LLM Growth Assist Program

    401 shares
    Share 160 Tweet 100
  • Streamlit fairly styled dataframes half 1: utilizing the pandas Styler

    401 shares
    Share 160 Tweet 100
  • Proton launches ‘Privacy-First’ AI Email Assistant to Compete with Google and Microsoft

    401 shares
    Share 160 Tweet 100

About Us

Automation Scribe is your go-to site for easy-to-understand Artificial Intelligence (AI) articles. Discover insights on AI tools, AI Scribe, and more. Stay updated with the latest advancements in AI technology. Dive into the world of automation with simplified explanations and informative content. Visit us today!

Category

  • AI Scribe
  • AI Tools
  • Artificial Intelligence

Recent Posts

  • Benchmarking doc data localization with Amazon Nova
  • Constructing a Fashionable Dashboard with Python and Tkinter
  • Simplify entry management and auditing for Amazon SageMaker Studio utilizing trusted identification propagation
  • Home
  • Contact Us
  • Disclaimer
  • Privacy Policy
  • Terms & Conditions

© 2024 automationscribe.com. All rights reserved.

No Result
View All Result
  • Home
  • AI Scribe
  • AI Tools
  • Artificial Intelligence
  • Contact Us

© 2024 automationscribe.com. All rights reserved.