ویژگیها
- تمیز و مرتب کردن متن
- تقطیع جملهها و واژهها
- ریشهیابی واژهها
- تحلیل صرفی جمله
- تجزیه نحوی جمله
- واسط استفاده از دادههای زبان فارسی
- سازگاری با بسته NLTK
- پشتیبانی از پایتون نسخه ۲ و ۳
- تست مداوم کدها:
استفاده
>>> from __future__ import unicode_literals
>>> from hazm import *
>>> normalizer = Normalizer()
>>> normalizer.normalize('اصلاح نویسه ها و استفاده از نیمفاصله پردازش را آسان می کند')
'اصلاح نویسهها و استفاده از نیمفاصله پردازش را آسان میکند'
>>> sent_tokenize('ما هم برای وصل کردن آمدیم! ولی برای پردازش، جدا بهتر نیست؟')
['ما هم برای وصل کردن آمدیم!', 'ولی برای پردازش، جدا بهتر نیست؟']
>>> word_tokenize('ولی برای پردازش، جدا بهتر نیست؟')
['ولی', 'برای', 'پردازش', '،', 'جدا', 'بهتر', 'نیست', '؟']
>>> stemmer = Stemmer()
>>> stemmer.stem('کتابها')
'کتاب'
>>> lemmatizer = Lemmatizer()
>>> lemmatizer.lemmatize('میروم')
'رفت#رو'
>>> tagger = POSTagger(model='resources/postagger.model')
>>> tagger.tag(word_tokenize('ما بسیار کتاب میخوانیم'))
[('ما', 'PRO'), ('بسیار', 'ADV'), ('کتاب', 'N'), ('میخوانیم', 'V')]
>>> chunker = Chunker(model='resources/chunker.model')
>>> tagged = tagger.tag(word_tokenize('کتاب خواندن را دوست داریم'))
>>> tree2brackets(chunker.parse(tagged))
'[کتاب خواندن NP] [را POSTP] [دوست داریم VP]'
>>> parser = DependencyParser(tagger=tagger, lemmatizer=lemmatizer)
>>> parser.parse(word_tokenize('زنگها برای که به صدا درمیآید؟'))
<DependencyGraph with 8 nodes>
نصب
هضم، یکی از بستههای زبان پایتون است و با این دستور نصب میشود:
pip install hazm
توجه کنید که برچسبزن صرفی و تجزیهگر نحوی نیاز به مدلهای آموزشدیده دارند. ما این مدلها را هم آماده کردهایم، میتوانید آنها را دریافت کنید و در پوشهای با عنوان resources در پروژه خود قرار دهید. البته رویههای آموزش و ارزیابی مدلها هم جزئی از کد هستند.
برای نصب روی ویندوز، لازم است ویژگی WSL را فعال کرده و با اجرای دستور زیر، پایتون را برای نصب هضم آماده کنید:
sudo apt install python-pip
اجازهنامه
شما میتوانید مطابق اجازهنامه، از این محصول در هر نوع پروژهای از جمله تحقیقاتی یا تجاری استفاده کنید. فقط توجه کنید که اجازهنامه هضم تنها مربوط به کدهای این پروژه است و برای استفاده از مدلهای آماده شده باید به مجوز دادههای مورد استفاده در آموزش آنها مراجعه کنید؛ که خب هیچکدام اجازه استفاده تجاری را نمیدهند 🙁