قطعه بندی متن (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) در پردازش متن