قطعه بندی متون فارسی (tokenize) با استفاده از جی هضم (Jhazm)

قطعه بندی متن (Tokenizer)

در بخش های قبلی به روش های تشخیص زبان در متون اشاره کردیم و همچنین  به نقش واحد ساز (Tokenizer) در پردازش متن پرداختیم. در این مبحث با استفاده از جی هضم (Jhazm) به قطعه بندی متون میپردازیم. Tokenizer ابزاری برای شکستن یک متن بر اساس واحدهای با معنی مانند کلمه، پاراگراف، نمادهای معنادار مانند space و  tab و … . لازمه ی ایجاد این ابزار جمع آوری واحد هایی است که در زبان فارسی به عنوان واحد های مستقل معنایی شناخته می شوند. سپس بر اساس انتخاب هر کدام از این واحدها متن بر اساس آن شکسته خواهد شد. از نمونه های انگلیسی آن می توان به Flex، JLex، JFLex، ANTLR، Ragel و Quex و Standfor اشاره کرد.

واحدساز (Tokenizer) مرز کلمات را در متون تشخیص داده و متن را به دنباله‌ای از کلمات تبدیل می‌کند و آن را برای تحلیل های بعدی آماده میکند. در واقع این واحد ساز جزء مراحل پیش پردازش (pre process) متن به حساب میآید. در فرایند تحلیل متون اغلب بعد از پارس (Pars) کردن متن عمل جداسازی کلمات با ابزار Tokenizer انجام میشود. معمولا بعد از این مرحله نوبت به مرحله حذف ایست‌واژه‌ها یا Stop Wordsها میباشد که در مراحل بعدی به آن میپردازیم. در شکل زیر این مراحل به تصویر کشیده شده است. ابزار واحد ساز (Tokenizer) براي شکستن يک متن بر اساس واحدهاي با معني مانند کلمه، پاراگراف، جمله و نمادهاي معنادار مانند space و tab است.

قطعه بندی متون

به عیارتی دیگر واحدسازی تکه­ تکه کردن سند به قسمت­های کوچک به نام واحد است. واحدسازی در سطح کلمات رخ می­دهد و واحدهای استخراج شده می­توانند به عنوان ورودی ماژول­های دیگر مانند ریشه­ یاب و برچسب­گذار استفاده شود. لازمه­ ي ايجاد اين ابزار جمع ­آوري واحدهايي است که در زبان فارسي به عنوان واحدهاي مستقل معنايي شناخته مي­ شوند. متن بر اساس انتخاب هر کدام از اين واحدها، شکسته خواهد شد. از نمونه­ هاي انگليسي این ابزار مي­توان به Flex، JLex، JFLex، ANTLR،Ragel  و Quex اشاره کرد.

این ابزار مرز کلمات را در متون تشخیص داده و متن را به دنباله‌ای از کلمات تبدیل می‌کند. کلمات چند بخشی، کلمات بهم چسبیده و ترکیب‌های خاصی مانند اعداد اعشاری، تاریخ و ساعت از چالش‌های موجود در تشخیص مرز کلمات است.

tokenizer را نباید با موارد زیر اشتباه گرفت:

چانکر (Chunker): ابزاري براي تشخيص گروه هاي اسمي، فعلي و …. در يک جمله. جهت تقويت الگوريتم هاي وابسته به برچسب زن معنایی (Semantic role labeler) لازم است، نه تنها نقش هاي کلمات مشخص گردند، بلکه بايد وابستگي هاي کلمات به لحاظ نقشي در جمله مشخص گردند. از جمله نمونه هاي انگليسي آن مي توان به Illinois Chunker  اشاره کرد.

برچسب زن معنایی: ابزاري براي تشخيص نقش گرامري کلمه در جمله. اين ابزار يکي از مهمترين نقش ها را در پردازش هاي زباني بر عهده دارد. دقت در اين ابزار بسيار حائز اهميت است. اين ابزار بايد نقش هاي گرامري کلمات در جمله ها مانند فعل، فاعل، مفعول مستقيم، مفعول غير مستقيم و …. را تشخيص دهد. از جمله نمونه هاي انگليسي آن مي توان به OpenNlP، Illinois SRL، Swirl  و LTHSRL اشاره کرد. اين ابزارها از الگوريتم پارسينگ charniak استفاده مي کنند.

 

پردازش متن

تحلیل صرفی

POS, Tokenizer, lemmatizer

تحلیل نحوی

Chunker, Parser

تحلیل معنایی

Co-reference, NER, Event Detection

 

قطعه بندی متون

قطعه بندی متون
جایگاه قطعه بندی متون

 

مثالی از نمونه کد جاوا برای استفاده از ابزار قطعه بند یا tokenizer با کتابخانه jhazm:

import jhazm.tokenizer.WordTokenizer;
//jhazm tokenizer
WordTokenizer wordtokenizer = null;
try {
wordtokenizer = new WordTokenizer(true);
}
catch (IOException e)
{
// If document File was crrupted So Go to Next Doc
continue;
}
ArrayList<String> wordsList = new ArrayList<>(wordtokenizer.tokenize(textWithOutStopWords));

نقش و جایگاه واحدساز (Tokenizer) در پردازش متن

قطعه بندی متون
جایگاه واحد ساز

آدرس کانال تلگرام ما:

t.me/bigdata_channel

آدرس کانال سروش ما:
https://sapp.ir/bigdata_channel

Visits: 4322

همچنین ببینید

اسامی مکان

مجموعه داده اسامی مکان برای تشخیص موجودیت های مکانی در پردازش زبان طبیعی

عناوين مطالب: 'مقدمه ای بر اسامی مکان:کاربردهای (Named-entity recognition) NERروشهای تشخیص اسم مکاندانلود دیتاست اسامی …

آموزش خلاصه اسپرینگ

آموزش فارسی اسپرینگ بوت (Spring Boot) به صورت کاربردی

در این مبحث قصد دارم به صورت خلاصه به آموزش کاربردی اسپرینگ بوت بپردازم. برای …

دیدگاهتان را بنویسید