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

# 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]` | لیست از افعال چندبخشی که در صورت لزوم بخش‌های آن با کاراکتر خط زیر به هم چسبانده_شده_است.

#### درخواست استفاده از کوکی

با پذیرش کوکی به ما اجازه می‌دهید تا با بررسی تعامل شما با سایت و شناسایی بازدیدهای بعدی‌‌تان، کیفیت مستندات را بهبود ببخشیم.
سپاس از همکاری شما. ❤️

- Google Analytics
- GitHub

مدیریت تنظیمات