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
|
میتوانید از تابع
|
parse_sents(sentences)
¶
جملات ورودی را بهشکل تقطیعشده و در قالب یک برمیگرداند.
پارامترها:
نام | نوع | توضیحات | پیشفرض |
---|---|---|---|
sentences |
List[List[Tuple[str, str]]]
|
جملات ورودی. |
اجباری |
خروجی تدریجی:
نوع | توضیحات |
---|---|
str
|
یک |
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
|
رشتهای از کروشهها که در هر کروشه جزئی از متن به همراه نوع آن جای گرفته است. |