پرش به محتویات

word_tokenizer

کاربرد عملی

برای آشنایی با کاربرد این ماژول می‌توانید به بخش کاربردهای هضم مراجعه کنید.

در پروژه‌های زیر از این ماژول استفاده شده است:

پروژهٔ استخراج کلمات کلیدی

این ماژول شامل کلاس‌ها و توابعی برای استخراج کلماتِ متن است.

برای استخراج جملات، از تابع SentenceTokenizer() استفاده کنید.

WordTokenizer

کلاس(های) پایه: TokenizerI

این کلاس شامل توابعی برای استخراج کلماتِ متن است.

پارامترها:

نام نوع توضیحات پیش‌فرض
words_file str

مسیر فایل حاوی لیست کلمات. هضم به صورت پیش‌فرض فایلی برای این منظور در نظر گرفته است؛ با این حال شما می‌توانید فایل موردنظر خود را معرفی کنید. برای آگاهی از ساختار این فایل به فایل پیش‌فرض مراجعه کنید.

default_words
verbs_file str

مسیر فایل حاوی افعال. هضم به صورت پیش‌فرض فایلی برای این منظور در نظر گرفته است؛ با این حال شما می‌توانید فایل موردنظر خود را معرفی کنید. برای آگاهی از ساختار این فایل به فایل پیش‌فرض مراجعه کنید.

default_verbs
join_verb_parts bool

اگر True باشد افعال چندبخشی را با خط زیر به هم می‌چسباند؛ مثلاً «گفته شده است» را به صورت «گفته_شده_است» برمی‌گرداند.

True
join_abbreviations bool

اگر True باشد مخفف‌ها را نمی‌شکند و به شکل یک توکن برمی‌گرداند.

False
separate_emoji bool

اگر True باشد اموجی‌ها را با یک فاصله از هم جدا می‌کند.

False
replace_links bool

اگر True باشد لینک‌ها را با کلمهٔ LINK جایگزین می‌کند.

False
replace_ids bool

اگر True باشد شناسه‌ها را با کلمهٔ ID جایگزین می‌کند.

False
replace_emails bool

اگر True باشد آدرس‌های ایمیل را با کلمهٔ EMAIL‍ جایگزین می‌کند.

False
replace_numbers bool

اگر True باشد اعداد اعشاری را باNUMF و اعداد صحیح را باNUM جایگزین می‌کند. در اعداد غیراعشاری، تعداد ارقام نیز جلوی NUM می‌آید.

False
replace_hashtags bool

اگر True باشد علامت # را با TAG جایگزین می‌کند.

False

tokenize(text)

توکن‌های متن را استخراج می‌کند.

مثال‌ها:

>>> tokenizer = WordTokenizer()
>>> tokenizer.tokenize('این جمله (خیلی) پیچیده نیست!!!')
['این', 'جمله', '(', 'خیلی', ')', 'پیچیده', 'نیست', '!!!']
>>> tokenizer = WordTokenizer(join_verb_parts=False)
>>> print(' '.join(tokenizer.tokenize('سلام.')))
سلام .
>>> tokenizer = WordTokenizer(join_verb_parts=False, replace_links=True)
>>> print(' '.join(tokenizer.tokenize('در قطر هک شد https://t.co/tZOurPSXzi https://t.co/vtJtwsRebP')))
در قطر هک شد LINK LINK
>>> tokenizer = WordTokenizer(join_verb_parts=False, replace_ids=True, replace_numbers=True)
>>> print(' '.join(tokenizer.tokenize('زلزله ۴.۸ ریشتری در هجدک کرمان @bourse24ir')))
زلزله NUMF ریشتری در هجدک کرمان ID
>>> tokenizer = WordTokenizer(join_verb_parts=False, separate_emoji=True)
>>> print(' '.join(tokenizer.tokenize('دیگه میخوام ترک تحصیل کنم 😂😂😂')))
دیگه میخوام ترک تحصیل کنم 😂 😂 😂
>>> tokenizer = WordTokenizer(join_abbreviations=True)
>>> print(' '.join(tokenizer.tokenize('امام علی (ع) فرمود: برترین زهد، پنهان داشتن زهد است')))
['امام', 'علی', '(ع)', 'فرمود', ':', 'برترین', 'زهد', '،', 'پنهان', 'داشتن', 'زهد', 'است']

پارامترها:

نام نوع توضیحات پیش‌فرض
text str

متنی که باید توکن‌های آن استخراج شود.

اجباری

خروجی‌ها:

نوع توضیحات
List[str]

لیست توکن‌های استخراج‌شده.

join_verb_parts(tokens)

افعال چندبخشی را به هم می‌چسباند.

مثال‌ها:

>>> tokenizer = WordTokenizer()
>>> tokenizer.join_verb_parts(['خواهد', 'رفت'])
['خواهد_رفت']
>>> tokenizer.join_verb_parts(['رفته', 'است'])
['رفته_است']
>>> tokenizer.join_verb_parts(['گفته', 'شده', 'است'])
['گفته_شده_است']
>>> tokenizer.join_verb_parts(['گفته', 'خواهد', 'شد'])
['گفته_خواهد_شد']
>>> tokenizer.join_verb_parts(['خسته', 'شدید'])
['خسته', 'شدید']

پارامترها:

نام نوع توضیحات پیش‌فرض
tokens List[str]

لیست کلمات یک فعل چندبخشی.

اجباری

خروجی‌ها:

نوع توضیحات
List[str]

لیست از افعال چندبخشی که در صورت لزوم بخش‌های آن با کاراکتر خط زیر به هم چسبانده_شده_است.