Struct-IE: Structured Information Extraction with Large Language Models
struct-ie is a Python library for named entity extraction using a transformer-based model.
Installation
You can install the struct-ie library from PyPI:
pip install struct_ie
To-Do List
- Implement batch prediction
- Implement a Trainer fot Instruction Tuning
- PrefixLM for Instruction Tuning
- Add RelationExtractor
- Add GraphExtractor
- Add JsonExtractor
Usage
You can try it on google colab:
Here's an example of how to use the EntityExtractor:
1. Basic Usage
from struct_ie import EntityExtractor
# Define the entity types with descriptions (optional)
entity_types_with_descriptions = {
"Name": "Names of individuals like 'Jane Doe'",
"Award": "Names of awards or honors such as the 'Nobel Prize' or the 'Pulitzer Prize'",
"Date": None,
"Competition": "Names of competitions or tournaments like the 'World Cup' or the 'Olympic Games'",
"Team": None
}
# Initialize the EntityExtractor
extractor = EntityExtractor("Qwen/Qwen2-0.5B-Instruct", entity_types_with_descriptions, device="cpu")
# Example text for entity extraction
text = "Cristiano Ronaldo won the Ballon d'Or. He was the top scorer in the UEFA Champions League in 2018."
# Extract entities from the text
entities = extractor.extract_entities(text)
print(entities)
2. Usage with a Custom Prompt
from struct_ie import EntityExtractor
# Define the entity types with descriptions (optional)
entity_types_with_descriptions = {
"Name": "Names of individuals like 'Jean-Luc Picard' or 'Jane Doe'",
"Award": "Names of awards or honors such as the 'Nobel Prize' or the 'Pulitzer Prize'",
"Date": None,
"Competition": "Names of competitions or tournaments like the 'World Cup' or the 'Olympic Games'",
"Team": "Names of sports teams or organizations like 'Manchester United' or 'FC Barcelona'"
}
# Initialize the EntityExtractor
extractor = EntityExtractor("Qwen/Qwen2-0.5B-Instruct", entity_types_with_descriptions, device="cpu")
# Example text for entity extraction
text = "Cristiano Ronaldo won the Ballon d'Or. He was the top scorer in the UEFA Champions League in 2018."
# Custom prompt for entity extraction
prompt = "You are an expert on Named Entity Recognition. Extract entities from this text."
# Extract entities from the text using a custom prompt
entities = extractor.extract_entities(text, prompt=prompt)
print(entities)
3. Usage with Few-shot Examples
from struct_ie import EntityExtractor
# Define the entity types with descriptions (optional)
entity_types_with_descriptions = {
"Name": "Names of individuals like 'Jean-Luc Picard' or 'Jane Doe'",
"Award": "Names of awards or honors such as the 'Nobel Prize' or the 'Pulitzer Prize'",
"Date": None,
"Competition": "Names of competitions or tournaments like the 'World Cup' or the 'Olympic Games'",
"Team": "Names of sports teams or organizations like 'Manchester United' or 'FC Barcelona'"
}
# Initialize the EntityExtractor
extractor = EntityExtractor("Qwen/Qwen2-0.5B-Instruct", entity_types_with_descriptions, device="cpu")
# Example text for entity extraction
text = "Cristiano Ronaldo won the Ballon d'Or. He was the top scorer in the UEFA Champions League in 2018."
# Few-shot examples for improved entity extraction
demonstrations = [
{"input": "Lionel Messi won the Ballon d'Or 7 times.", "output": [("Lionel Messi", "Name"), ("Ballon d'Or", "Award")]}
]
# Extract entities from the text using few-shot examples
entities = extractor.extract_entities(text, few_shot_examples=demonstrations)
print(entities)
License
This project is licensed under the Apache-2.0.
Metadata
Release files for struct-ie 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| struct_ie-0.0.2.tar.gz | 8.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| struct_ie-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.4 kB
Release files / struct_ie-0.0.2.tar.gz
| Download URL | struct_ie-0.0.2.tar.gz |
|---|---|
| Size | 8.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
156c24c128b88b4c7c047bbfb668465ec3cd3ee25b9d78be9b29d66741e24633
|
|
BLAKE2b-256 checksum How to use checksums |
4214f3afd3999a978fe7296dd8571d13ba18135f8e2a26d006f58aaf2944455c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.8.18
|
Release files / struct_ie-0.0.2-py3-none-any.whl
| Download URL | struct_ie-0.0.2-py3-none-any.whl |
|---|---|
| Size | 8.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
80a7a43c37f19871fa22478f27fe73ba5f6b1e41abb6150e2ada66b73da4fab6
|
|
BLAKE2b-256 checksum How to use checksums |
d29df99456e35982224b6bb06939ab52c34ba20177913836deadd9154e10292a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.8.18
|