ورود به حساب کاربری

نام کاربری *
رمز عبور *
مرا به خاطر بسپار.

بنیاد توسعه رایانش سریع و ابری

HPC and Cloud Computing Development Foundation

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

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

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

واحدساز (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) در پردازش متن


                                                 جایگاه واحد ساز

 

 ------------------------------------
منبع : خانه بیگ دیتای ایران