- Address, Email, URL, Phone Number extractor
from parsi_io.modules.address_extractions import AddressExtraction
extractor = AddressExtraction()
extractor.run('آدرس خیابان شهیدبهشتی میباشد و برای اطلاعات بیشتر به page.com مراجعه فرمایید')
{
'address': ['آدرس خیابان شهیدبهشتی'],
'email': [],
'url': ['page.com'],
'number': [],
'address_span': [0, 21],
'email_span': [],
'url_span': [54, 62],
'number_span': []
}
- Determines whether a sentence is causal
- Causal marker extarctor
from parsi_io.modules.cause_effect_extractions import CauseEffectExtraction
extractor = CauseEffectExtraction()
extractor.run('چون نمیخواستم اون چیزی از ماجرا بفهمه، مجبور به تظاهر شدم.')
{
"flag": "بله",
"marker": "چون",
"marker_span": "[0, 3]"
}
- Extracts persian numbers both in numeral form or text form or mixed form.
from parsi_io.modules.number_extractor import NumberExtractor
extractor = NumberExtractor()
extractor.run('من در بیست و پنجمین روز فروردین سوار اتوبوس ۱۲ شدم.')
[
{
"span": [6,16],
"phrase": "بیست و پنج",
"value": 25
},
{
"span": [44,46],
"phrase": "۱۲",
"value": 12
}
]
- Extracts parts (at least two words) of The Holy Quran verses with their surah and verse number from input text
- The Holy Quran verses extractor
from parsi_io.modules.quranic_extractions import QuranicExtraction
extractor = QuranicExtraction(model = 'exact', precompiled_patterns='prebuilt')
extractor.run('شان نزول آیه ی انما وليكم اللّه ورسوله والّذين امنوا')
{
'input_span': [15, 52],
'extracted': 'انما وليكم اللّه ورسوله والّذين امنوا',
'quran_id': '5##55',
'verse': 'إِنَّمَا وَلِيُّكُمُ اللَّهُ وَ رَسُولُهُ وَ الَّذِينَ آمَنُوا الَّذِينَ يُقِيمُونَ الصَّلَاةَ وَ يُؤْتُونَ الزَّكَاةَ وَ هُمْ رَاكِعُونَ'
}
- Extracts Time Date Markers (stable)
- Extract Values (Unstable)
- All Time and Date Markers
from parsi_io.modules.time_extractions import TimeExtraction
extractor = TimeExtraction()
extractor.run("ماریا شنبه عصر در ساعت نه و پنجاه نه دقیقه - مورخ 13 می 1999 با نادیا تماس گرفت اما نادیا بعدا در 1100/09/09 قمری به پرسش او پاسخ داد.")
{'markers': {'date': {'[50, 60]': '13 می 1999',
'[6, 10]': 'شنبه',
'[98, 113]': '1100/09/09 قمری'},
'datetime': {'[18, 42]': 'ساعت نه و پنجاه نه دقیقه',
'[50, 60]': '13 می 1999',
'[6, 14]': 'شنبه عصر',
'[98, 113]': '1100/09/09 قمری'},
'time': {'[11, 14]': 'عصر',
'[18, 42]': 'ساعت نه و پنجاه نه دقیقه'}},
'ner': [('ماریا', 'O'),
('شنبه', 'B-DAT'),
('عصر', 'I-DAT'),
('در', 'O'),
('ساعت', 'B-DAT'),
('نه', 'I-DAT'),
('و', 'I-DAT'),
('پنجاه', 'I-DAT'),
('نه', 'I-DAT'),
('دقیقه', 'I-DAT'),
('-', 'O'),
('مورخ', 'O'),
('13', 'B-DAT'),
('می', 'I-DAT'),
('1999', 'I-DAT'),
('با', 'O'),
('نادیا', 'O'),
('تماس', 'O'),
('گرفت', 'O'),
('اما', 'O'),
('نادیا', 'O'),
('بعدا', 'O'),
('در', 'O'),
('1100/09/09', 'B-DAT'),
('قمری', 'I-DAT'),
('به', 'O'),
('پرسش', 'O'),
('او', 'O'),
('پاسخ', 'O'),
('داد', 'O'),
('.', 'O')],
'spans': {'date': [[6, 10], [50, 60], [98, 113]],
'datetime': [[6, 14], [18, 42], [50, 60], [98, 113]],
'time': [[11, 14], [18, 42]]},
'values': {'date': {'[50, 60]': '13/05/1999',
'[6, 10]': 'شنبه',
'[98, 113]': '1100/09/09 ه.ق'},
'time': {'[11, 14]': 'عصر', '[18, 42]': '09:59:00'}}}
- XX
from parsi_io.modules.question_extractions import QuestionExtraction
extractor = QuestionExtraction()
extractor.run('حرکت بار الکتریکی باعث ایجاد میدان الکترومغناطیسی در فضا می شود')
[
{'Question': 'حرکت چه بار ی باعث ایجاد میدان الکترومغناطیسی در فضا میشود؟', 'Answer': 'بار الکتریکی'},
{'Question': 'حرکت بار الکتریکی باعث ایجاد چه میدان ی در فضا میشود؟', 'Answer': 'میدان الکترومغناطیسی'},
{'Question': 'آیا حرکت بار الکتریکی باعث ایجاد میدان الکترومغناطیسی در فضا میشود؟', 'Answer': 'بله'},
{'Question': 'چه چیزی باعث ایجاد میدان الکترومغناطیسی در فضا میشود؟', 'Answer': 'حرکت بار الکتریکی'},
{'Question': 'حرکت بار الکتریکی باعث ایجاد میدان الکترومغناطیسی در چه چیزی میشود؟', 'Answer': 'فضا'}
]
- Extracts vehicle movement information including: Source, Destination, and Vehicle.
- Source, Destination, and Vehicle.
from parsi_io.modules.vehicle_movement_extractions import VehicleMovementExtraction
extractor = VehicleMovementExtraction()
extractor.run('من با قطار از اصفهان به تهران میروم.')
[
{
"from": "اصفهان",
"from_span": [14, 20],
"to": "تهران",
"to_span": [24, 29],
"vehicle": "قطار",
"vehicle_span": [6, 10]
}
]
Add test cases to parsi_io/test/testcases/[marker_name].json in the following template
[
{
"id":test ID,
"input":input text,
"outputs":output dictionary
},
...
]
Marker | Contributors |
---|---|
Address Extraction | Amirreza Mozayani, Arya Kosari, Seyyed Mohammadjavad Feyzabadi, Omid Ghahroodi |
CauseEffect Extraction | Rozhan Ahmadi, Mohammad Azizmalayeri, Mohammadreza Fereiduni, Saeed Hematian, Seyyed Ali Marashian, Maryam Gheysari |
Number Extraction | Mohammad Ali Sadraei Javaheri, Mohammad Mozafari, Reihane Zohrabi, Parham Abedazad, Mostafa Masumi |
Quranic Extraction | Seyyed Mohammad Aref Jahanmir, Alireza Sahebi, Ali Safarpoor Dehkordi, Mohammad Mehdi Hemmatyar, Morteza Abolghasemi, Saman Hadian |
Time Date Extraction | Parstdex Team |
Tag-Span Converter | Omid Ghahroodi |
Vehicle Movement Extraction | Mahsa Amani |
Contact: info@language.ml
Natural Language Processing and Digital Humanities Laboratory
PI: Asgari