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

# chunker

دقت تجزیه‌گر سطحی در نسخهٔ حاضر ۹۳.۴ درصد است.

این ماژول شامل کلاس‌ها و توابعی برای تجزیهٔ متن به عبارات اسمی، فعلی و حرف است.

## `Chunker`

کلاس(های) پایه: `IOBTagger`

این کلاس شامل توابعی برای تقطیع متن، آموزش و ارزیابی مدل است.

### `__init__(model=None, data_maker=None)`

constructor.

### `data_maker(tokens)`

تابعی که لیستی دو بعدی از کلمات به همراه لیبل را گرفته و لیست دو بعدی از از دیکشنری‌هایی که تعیین‌کننده ویژگی‌ها هر کلمه هستند را برمی‌گرداند.

مثال‌ها:

    >>> chunker = Chunker(model = 'chunker.model')
    >>> chunker.data_maker(tokens = [[('من', 'PRON'), ('به', 'ADP'), ('مدرسه', 'NOUN,EZ'), ('ایران', 'NOUN'), ('رفته_بودم', 'VERB'), ('.', 'PUNCT')]])
    [[{'word': 'من', 'is_first': True, 'is_last': False, 'prefix-1': 'م', 'prefix-2': 'من', 'prefix-3': 'من', 'suffix-1': 'ن', 'suffix-2': 'من', 'suffix-3': 'من', 'prev_word': '', 'two_prev_word': '', 'next_word': 'به', 'two_next_word': 'مدرسه', 'is_numeric': False, 'prev_is_numeric': '', 'next_is_numeric': False, 'is_punc': False, 'prev_is_punc': '', 'next_is_punc': False, 'pos': 'PRON', 'prev_pos': '', 'next_pos': 'ADP'}, {'word': 'به', 'is_first': False, 'is_last': False, 'prefix-1': 'ب', 'prefix-2': 'به', 'prefix-3': 'به', 'suffix-1': 'ه', 'suffix-2': 'به', 'suffix-3': 'به', 'prev_word': 'من', 'two_prev_word': '.', 'next_word': 'مدرسه', 'two_next_word': 'ایران', 'is_numeric': False, 'prev_is_numeric': False, 'next_is_numeric': False, 'is_punc': False, 'prev_is_punc': False, 'next_is_punc': False, 'pos': 'ADP', 'prev_pos': 'PRON', 'next_pos': 'NOUN,EZ'}, {'word': 'مدرسه', 'is_first': False, 'is_last': False, 'prefix-1': 'م', 'prefix-2': 'مد', 'prefix-3': 'مدر', 'suffix-1': 'ه', 'suffix-2': 'سه', 'suffix-3': 'رسه', 'prev_word': 'به', 'two_prev_word': 'من', 'next_word': 'ایران', 'two_next_word': 'رفته_بودم', 'is_numeric': False, 'prev_is_numeric': False, 'next_is_numeric': False, 'is_punc': False, 'prev_is_punc': False, 'next_is_punc': False, 'pos': 'NOUN,EZ', 'prev_pos': 'ADP', 'next_pos': 'NOUN'}, {'word': 'ایران', 'is_first': False, 'is_last': False, 'prefix-1': 'ا', 'prefix-2': 'ای', 'prefix-3': 'ایر', 'suffix-1': 'ن', 'suffix-2': 'ان', 'suffix-3': 'ران', 'prev_word': 'مدرسه', 'two_prev_word': 'به', 'next_word': 'رفته_بودم', 'two_next_word': '.', 'is_numeric': False, 'prev_is_numeric': False, 'next_is_numeric': False, 'is_punc': False, 'prev_is_punc': False, 'next_is_punc': False, 'pos': 'NOUN', 'prev_pos': 'NOUN,EZ', 'next_pos': 'VERB'}, {'word': 'رفته_بودم', 'is_first': False, 'is_last': False, 'prefix-1': 'ر', 'prefix-2': 'رف', 'prefix-3': 'رفت', 'suffix-1': 'م', 'suffix-2': 'دم', 'suffix-3': 'ودم', 'prev_word': 'ایران', 'two_prev_word': 'مدرسه', 'next_word': '.', 'two_next_word': '', 'is_numeric': False, 'prev_is_numeric': False, 'next_is_numeric': False, 'is_punc': False, 'prev_is_punc': False, 'next_is_punc': True, 'pos': 'VERB', 'prev_pos': 'NOUN', 'next_pos': 'PUNCT'}, {'word': '.', 'is_first': False, 'is_last': True, 'prefix-1': '.', 'prefix-2': '.', 'prefix-3': '.', 'suffix-1': '.', 'suffix-2': '.', 'suffix-3': '.', 'prev_word': 'رفته_بودم', 'two_prev_word': 'ایران', 'next_word': '', 'two_next_word': '', 'is_numeric': False, 'prev_is_numeric': False, 'next_is_numeric': '', 'is_punc': True, 'prev_is_punc': False, 'next_is_punc': '', 'pos': 'PUNCT', 'prev_pos': 'VERB', 'next_pos': ''}]]

پارامترها:

نام | نوع | توضیحات | پیش‌فرض
--- | --- | --- | ---
`tokens` | `List[List[Tuple[str, str]]]` | جملاتی که نیاز به تبدیل آن به برداری از ویژگی‌ها است. | اجباری

خروجی‌ها:

نوع | توضیحات
--- | ---
`List[List[Dict]]` | لیستی از لیستی از دیکشنری‌های بیان‌کننده ویژگی‌های یک کلمه.

### `features(words, pos_tags, index)`

ویژگی‌های کلمه را برمی‌گرداند.

### `train(trees, c1=0.4, c2=0.04, max_iteration=400, verbose=True, file_name='chunker_crf.model', report_duration=True)`

از روی درخت ورودی، مدل را آموزش می‌دهد.

پارامترها:

نام | نوع | توضیحات | پیش‌فرض
--- | --- | --- | ---
`trees` | `List[str]` | لیستی از درخت‌ها برای آموزش مدل. | اجباری
`c1` | `float` | مقدار L1 regularization. | `0.4`
`c2` | `float` | مقدار L2 regularization. | `0.04`
`max_iteration` | `int` | تعداد تکرار آموزش بر کل دیتا. | `400`
`verbose` | `bool` | نمایش اطلاعات مربوط به آموزش. | `True`
`file_name` | `str` | نام و مسیر فایلی که می‌خواهید مدل در آن ذخیره شود. | `'chunker_crf.model'`
`report_duration` | `bool` | نمایش گزارشات مربوط به زمان. | `True`

### `parse(sentence)`

جمله‌ای را در قالب لیستی از تاپل‌های دوتایی [(توکن, نوع), (توکن, نوع), ...] دریافت می‌کند و درخت تقطع‌شدهٔ آن را بر می‌گرداند.

مثال‌ها:

    >>> chunker = Chunker(model = 'chunker.model')
    >>> tree = chunker.parse(sentence = [('نامه', 'NOUN,EZ'), ('ایشان', 'PRON'), ('را', 'ADP'), ('دریافت', 'NOUN'), ('داشتم', 'VERB'), ('.', 'PUNCT')])
    >>> print(tree)
    (S
      (NP نامه/NOUN,EZ ایشان/PRON)
      (POSTP را/ADP)
      (VP دریافت/NOUN داشتم/VERB)
      ./PUNCT)

پارامترها:

نام | نوع | توضیحات | پیش‌فرض
--- | --- | --- | ---
`sentence` | `List[Tuple[str, str]]` | جمله‌ای که باید درخت تقطیع‌شدهٔ آن تولید شود. | اجباری

خروجی‌ها:

نوع | توضیحات
--- | ---
`str` | ساختار درختی حاصل از تقطیع.
`str` | برای تبدیل این ساختار درختی به یک ساختار کروشه‌ای و قابل‌درک‌تر
`str` | می‌توانید از تابع `tree2brackets()` استفاده کنید.

### `parse_sents(sentences)`

جملات ورودی را به‌شکل تقطیع‌شده و در قالب یک برمی‌گرداند.

پارامترها:

نام | نوع | توضیحات | پیش‌فرض
--- | --- | --- | ---
`sentences` | `List[List[Tuple[str, str]]]` | جملات ورودی. | اجباری

خروجی تدریجی:

نوع | توضیحات
--- | ---
`str` | یک `Iterator` از جملات تقطیع شده.

### `evaluate(trees)`

داده صحیح دریافت شده را با استفاده از مدل لیبل می‌زند و دقت مدل را برمی‌گرداند.

مثال‌ها:

    >>> chunker = Chunker(model = 'chunker.model')
    >>> trees = list(chunker.parse_sents([[('نامه', 'NOUN,EZ'), ('ایشان', 'PRON'), ('را', 'ADP'), ('دریافت', 'NOUN'), ('داشتم', 'VERB'), ('.', 'PUNCT')]]))
    >>> chunker.evaluate(trees)
    1.0

پارامترها:

نام | نوع | توضیحات | پیش‌فرض
--- | --- | --- | ---
`trees` | `List[str]` | لیست درختانی که با استفاده از آن مدل را ارزیابی می‌کنیم. | اجباری

خروجی‌ها:

نوع | توضیحات
--- | ---
`float` | دقت مدل

## `tree2brackets(tree)`

خروجی درختی تابع parse() را به یک ساختار کروشه‌ای تبدیل می‌کند.

مثال‌ها:

    >>> chunker = Chunker(model='chunker.model')
    >>> tree=chunker.parse([('نامه', 'NOUN,EZ'), ('ایشان', 'PRON'), ('را', 'ADP'), ('دریافت', 'NOUN'), ('داشتم', 'VERB'), ('.', 'PUNCT')])
    >>> print(tree)
    (S
      (NP نامه/NOUN,EZ ایشان/PRON)
      (POSTP را/ADP)
      (VP دریافت/NOUN داشتم/VERB)
      ./PUNCT)

    >>> tree2brackets(tree)
    '[نامه ایشان NP] [را POSTP] [دریافت داشتم VP] .'

پارامترها:

نام | نوع | توضیحات | پیش‌فرض
--- | --- | --- | ---
`tree` | `str` | ساختار درختی حاصل از پردزاش تابع parse() | اجباری

خروجی‌ها:

نوع | توضیحات
--- | ---
`str` | رشته‌ای از کروشه‌ها که در هر کروشه جزئی از متن به همراه نوع آن جای گرفته است.

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

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

- Google Analytics
- GitHub

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