File size: 1,013 Bytes
e164e61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import gradio as gr
from transformers import pipeline

# Initialize Hugging Face NER pipeline
ner_pipeline = pipeline("ner", model="HooshvareLab/bert-fa-base-uncased", aggregation_strategy="simple")

def split_name(full_name):
    entities = ner_pipeline(full_name)
    prefix = ""
    first_name = ""
    last_name = ""
    for entity in entities:
        label = entity['entity_group']
        word = entity['word']
        if label.lower() == 'prefix':
            prefix += word + " "
        elif label.lower() == 'firstname':
            first_name += word + " "
        elif label.lower() == 'lastname':
            last_name += word + " "
    return prefix.strip(), first_name.strip(), last_name.strip()

# Gradio interface
demo = gr.Interface(
    fn=split_name,
    inputs=gr.Textbox(label="Full Name (Persian)", placeholder="Enter your full name"),
    outputs=[
        gr.Textbox(label="Prefix"),
        gr.Textbox(label="First Name"),
        gr.Textbox(label="Last Name"),
    ],
)

demo.launch()