diff --git a/readme/ner-recognizer-en.md b/readme/ner-recognizer-en.md new file mode 100644 index 0000000..b4780b4 --- /dev/null +++ b/readme/ner-recognizer-en.md @@ -0,0 +1,65 @@ +# Named Entity Recognition (NER) Script + +This project provides a Python script (`p2_ner_recognizer.py`) for extracting named entities from text sections using a trained NER model. The script is designed to identify entities such as names, organizations, locations, and more, which is useful for information extraction and text analysis tasks. + +## Requirements + +Before using this script, please install the required libraries: + +```bash +pip install flair +``` + +You also need a trained NER model. Update the `model` path in the script to point to your model file. + +## How It Works + +- The script loads a trained NER model using the Flair library. +- It processes each text section, splits long texts into smaller parts if needed, and extracts named entities. +- The results are saved in a JSON file for further use. + +## Main Functions + +- `single_ner_recognizer(input_sentence)`: Extracts named entities from a single sentence or text. +- `do_ner_recognize(sections)`: Processes all sections in a dictionary, extracts entities, and saves the results. + +## Usage Example + +Suppose you have your sections data as a dictionary: + +```python +sections = { + "1": {"content": "First section text"}, + "2": {"content": "Second section text"} +} +``` + +You can extract named entities for all sections as follows: + +```python +from p2_ner_recognizer import do_ner_recognize + +result = do_ner_recognize(sections) +``` + +After running, the results will be saved in a JSON file in the `./data/ner/` directory. + +## Output Structure + +Each section will have a new field `ners_v2` with the extracted entities: + +```json +"1": { + "content": "First section text", + "ners_v2": [ + {"key": "PERSON", "value": "John Doe", "begin": 0, "end": 2, "score": 0.98}, + ... + ] +} +``` + +## Notes + +- Make sure the model path is correct and the model file is available. +- The script supports Persian language if the model is trained for it. +- The output JSON file will be saved in `./data/ner/`. diff --git a/readme/ner-recognizer-fa.md b/readme/ner-recognizer-fa.md new file mode 100644 index 0000000..ddc5d0c --- /dev/null +++ b/readme/ner-recognizer-fa.md @@ -0,0 +1,65 @@ +# اسکریپت تشخیص موجودیت‌های نامدار (NER) + +این پروژه شامل یک اسکریپت پایتون (`p2_ner_recognizer.py`) برای استخراج موجودیت‌های نامدار از بخش‌های متنی با استفاده از یک مدل آموزش‌دیده NER است. این اسکریپت برای شناسایی موجودیت‌هایی مانند نام افراد، سازمان‌ها، مکان‌ها و ... کاربرد دارد و برای استخراج اطلاعات و تحلیل متون مفید است. + +## پیش‌نیازها + +قبل از استفاده از این اسکریپت، کتابخانه زیر را نصب کنید: + +```bash +pip install flair +``` + +همچنین به یک مدل آموزش‌دیده NER نیاز دارید. مسیر مدل را در اسکریپت به فایل مدل خودتان تغییر دهید. + +## نحوه عملکرد + +- اسکریپت با استفاده از کتابخانه Flair یک مدل NER آموزش‌دیده را بارگذاری می‌کند. +- هر بخش متنی را پردازش می‌کند، در صورت نیاز متن‌های طولانی را به بخش‌های کوچکتر تقسیم می‌کند و موجودیت‌های نامدار را استخراج می‌کند. +- نتایج در یک فایل JSON برای استفاده‌های بعدی ذخیره می‌شود. + +## توابع اصلی + +- `single_ner_recognizer(input_sentence)`: موجودیت‌های نامدار را از یک جمله یا متن استخراج می‌کند. +- `do_ner_recognize(sections)`: همه بخش‌ها را پردازش کرده، موجودیت‌ها را استخراج و نتایج را ذخیره می‌کند. + +## مثال استفاده + +فرض کنید داده‌های بخش‌های شما به صورت دیکشنری زیر است: + +```python +sections = { + "1": {"content": "متن بخش اول"}, + "2": {"content": "متن بخش دوم"} +} +``` + +می‌توانید موجودیت‌های نامدار همه بخش‌ها را به شکل زیر استخراج کنید: + +```python +from p2_ner_recognizer import do_ner_recognize + +result = do_ner_recognize(sections) +``` + +پس از اجرا، نتایج در یک فایل JSON در مسیر `./data/ner/` ذخیره می‌شود. + +## ساختار خروجی + +برای هر بخش، یک فیلد جدید به نام `ners_v2` با موجودیت‌های استخراج‌شده اضافه می‌شود: + +```json +"1": { + "content": "متن بخش اول", + "ners_v2": [ + {"key": "PERSON", "value": "علی رضایی", "begin": 0, "end": 2, "score": 0.98}, + ... + ] +} +``` + +## نکات + +- مطمئن شوید مسیر مدل صحیح است و فایل مدل در دسترس است. +- اگر مدل برای زبان فارسی آموزش دیده باشد، اسکریپت از زبان فارسی پشتیبانی می‌کند. +- فایل خروجی JSON در مسیر `./data/ner/` ذخیره خواهد شد. diff --git a/readme/readme-classifier-en.md b/readme/readme-classifier-en.md index 900378c..9a2df23 100644 --- a/readme/readme-classifier-en.md +++ b/readme/readme-classifier-en.md @@ -1,6 +1,6 @@ # Section Classification Script -This project provides a Python script (`classification.py`) for classifying text sections using a fine-tuned transformer model. The script is designed to suggest the most relevant classes for each section of text, which is useful for legal documents, content categorization, and similar NLP tasks. +This project provides a Python script (`p1_classifier.py`) for classifying text sections using a fine-tuned transformer model. The script is designed to suggest the most relevant classes for each section of text, which is useful for legal documents, content categorization, and similar NLP tasks. ## Requirements @@ -40,7 +40,7 @@ sections = { You can classify all sections as follows: ```python -from classification import do_classify +from p1_classifier import do_classify result = do_classify(sections) ``` @@ -67,5 +67,4 @@ Each section will have a new field `ai_codes` with the classification results: ## Notes - Make sure the model path in `model_checkpoint` is correct and the model files are available. -- The script supports Persian language. - The output JSON file will be saved in `./data/classification/`. diff --git a/readme/readme-classifier-fa.md b/readme/readme-classifier-fa.md index aacfa91..974f2fb 100644 --- a/readme/readme-classifier-fa.md +++ b/readme/readme-classifier-fa.md @@ -1,6 +1,6 @@ -# اسکریپت کلاسبندی سکشن‌ها +# اسکریپت کلاسیفیکیشن سکشن‌های قانون -این پروژه شامل یک اسکریپت پایتون (`classification.py`) برای کلاسبندی بخش‌های متنی با استفاده از یک مدل ترنسفورمر آموزش‌دیده است. این اسکریپت برای پیشنهاد مرتبط‌ترین کلاس‌ها برای هر بخش از متن طراحی شده و برای اسناد حقوقی، دسته‌بندی محتوا و وظایف مشابه در پردازش زبان طبیعی (NLP) کاربرد دارد. +این پروژه شامل یک اسکریپت پایتون (`p1_classifier.py`) برای کلاسبندی بخش‌های متنی با استفاده از یک مدل ترنسفورمر آموزش‌دیده است. این اسکریپت برای پیشنهاد مرتبط‌ترین کلاس‌ها برای هر بخش از متن طراحی شده و برای اسناد حقوقی، دسته‌بندی محتوا و وظایف مشابه در پردازش زبان طبیعی (NLP) کاربرد دارد. ## پیش‌نیازها @@ -10,21 +10,21 @@ pip install transformers pandas ``` -همچنین به یک مدل کلاسبندی آموزش‌دیده و توکنایزر آن نیاز دارید. مسیر مدل (`model_checkpoint`) را در اسکریپت به مدل خودتان تغییر دهید. +همچنین به یک مدل کلاسیفیکیشن آموزش‌دیده و توکنایزر آن نیاز دارید. مسیر مدل (`model_checkpoint`) را در اسکریپت به مدل خودتان تغییر دهید. ## نحوه عملکرد -- اسکریپت یک مدل ترنسفورمر آموزش‌دیده را برای کلاسبندی متن بارگذاری می‌کند. +- اسکریپت یک مدل ترنسفورمر آموزش‌دیده را برای کلاسیفیکیشن متن بارگذاری می‌کند. - هر بخش از متن را پردازش می‌کند و در صورت طولانی بودن متن، آن را به پنجره‌هایی تقسیم می‌کند تا با اندازه ورودی مدل سازگار شود. - برای هر بخش، بهترین کلاس‌ها را پیش‌بینی و نتایج را ذخیره می‌کند. ## توابع اصلی -- `get_class(sentences, top_k=4)`: یک جمله یا متن را کلاسبندی می‌کند و برترین کلاس‌ها را برمی‌گرداند. +- `get_class(sentences, top_k=4)`: یک جمله یا متن را کلاسیفای می‌کند و برترین کلاس‌ها را برمی‌گرداند. - `mean_classes(input_classes)`: نتایج کلاس‌بندی چند پنجره از یک متن طولانی را تجمیع می‌کند. -- `get_window_classes(text)`: تقسیم متن‌های طولانی به پنجره و تجمیع نتایج کلاسبندی آن‌ها را مدیریت می‌کند. +- `get_window_classes(text)`: تقسیم متن‌های طولانی به پنجره و تجمیع نتایج کلاسیفیکیشن آن‌ها را مدیریت می‌کند. - `single_section_classification(id, section_source)`: یک بخش را کلاسبندی کرده و بهترین و سایر کلاس‌های پیشنهادی را برمی‌گرداند. -- `do_classify(sections)`: همه بخش‌ها را کلاسبندی کرده و نتایج را در یک فایل JSON ذخیره می‌کند. +- `do_classify(sections)`: همه بخش‌ها را کلاسیفای کرده و نتایج را در یک فایل JSON ذخیره می‌کند. ## مثال استفاده @@ -40,7 +40,7 @@ sections = { می‌توانید همه بخش‌ها را به شکل زیر کلاسبندی کنید: ```python -from classification import do_classify +from p1_classifier import do_classify result = do_classify(sections) ``` @@ -49,7 +49,7 @@ result = do_classify(sections) ## ساختار خروجی -برای هر بخش، یک فیلد جدید به نام `ai_codes` با نتایج کلاسبندی اضافه می‌شود: +برای هر بخش، یک فیلد جدید به نام `ai_codes` با نتایج کلاسیفیکیشن اضافه می‌شود: ```json "1": { @@ -67,5 +67,4 @@ result = do_classify(sections) ## نکات - مطمئن شوید مسیر مدل (`model_checkpoint`) صحیح است و فایل‌های مدل در دسترس هستند. -- این اسکریپت بسته به مدل شما از زبان فارسی و سایر زبان‌ها پشتیبانی می‌کند. - فایل خروجی JSON در مسیر `./data/classification/` ذخیره خواهد شد. diff --git a/readme/readme-words-embedder-en.md b/readme/readme-words-embedder-en.md index eb6dc62..6cbe937 100644 --- a/readme/readme-words-embedder-en.md +++ b/readme/readme-words-embedder-en.md @@ -1,6 +1,6 @@ # Sentence Embedding Generator -This project provides a Python script (`embedding.py`) for generating sentence embeddings using the [Sentence Transformers]library. +This project provides a Python script (`p3_words_embedder.py`) for generating sentence embeddings using the [Sentence Transformers]library. ## Requirements @@ -22,7 +22,7 @@ pip install sentence-transformers numpy ### 1. Get Embedding for a Single Sentence ```python -from embedding import single_section_embedder +from p3_words_embedder import single_section_embedder sentence = "This is a sample sentence." embedding = single_section_embedder(sentence) @@ -43,7 +43,7 @@ sections = { You can generate and save embeddings as follows: ```python -from embedding import do_word_embedder +from p3_words_embedder import do_word_embedder result = do_word_embedder(sections) ``` diff --git a/readme/readme-words-embedder-fa.md b/readme/readme-words-embedder-fa.md index c777bdc..33e3172 100644 --- a/readme/readme-words-embedder-fa.md +++ b/readme/readme-words-embedder-fa.md @@ -1,6 +1,6 @@ # تولید بردار جملات (امبدینگ) -این پروژه شامل یک اسکریپت پایتون (`embedding.py`) برای تولید بردارهای جملات با استفاده از کتابخانه [Sentence Transformers] است. +این پروژه شامل یک اسکریپت پایتون (`p3_words_embedder.py`) برای تولید بردارهای جملات با استفاده از کتابخانه [Sentence Transformers] است. ## پیش‌نیازها @@ -22,7 +22,7 @@ pip install sentence-transformers numpy ### ۱. دریافت امبدینگ برای یک جمله ```python -from embedding import single_section_embedder +from p3_words_embedder.py import single_section_embedder sentence = "این یک جمله نمونه است." embedding = single_section_embedder(sentence) @@ -43,12 +43,12 @@ sections = { سپس می‌توانید امبدینگ‌ها را به شکل زیر تولید و ذخیره کنید: ```python -from embedding import do_word_embedder +from p3_words_embedder.py import do_word_embedder result = do_word_embedder(sections) ``` -پس از اجرا، فایلی با نامی مانند `sections_embeddings_سال-ماه-روز-ساعت.json` در مسیر `./data/embeddings/` ساخته می‌شود که شامل امبدینگ هر بخش است. +پس از اجرا، فایلی با نامی مانند `sections_embeddings_year-month-day-hour.json` در مسیر `./data/embeddings` ساخته می‌شود که شامل امبدینگ هر بخش است. ## ساختار خروجی @@ -67,4 +67,4 @@ result = do_word_embedder(sections) ## نکات - قبل از اجرا، پوشه `./data/embeddings/` را ایجاد کنید. -- این اسکریپت از زبان فارسی نیز پشتیبانی می‌کند. +- این اسکریپت از زبان فارسی پشتیبانی می‌کند.