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

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

رشته‌ای از کروشه‌ها که در هر کروشه جزئی از متن به همراه نوع آن جای گرفته است.