| Nom du module | |
|---|---|
| Dépendance. | 85,6% |
| Post-agger | 98,8% |
| Chunker | 93,4% |
| Lemmatizer | 89,9% |
| Métrique | Valeur | |
|---|---|---|
| Spacypostagger | Précision | 0,99250 |
| Rappel | 0.99249 | |
| F1-score | 0.99249 | |
| Détection EZ dans Spacypostagger | Précision | 0.99301 |
| Rappel | 0.99297 | |
| F1-score | 0.99298 | |
| Spacychunker | Précision | 96,53% |
| F-fesme F | 95,00% | |
| Rappel | 95,17% | |
| Précision | 94,83% | |
| Spacydependencyparser | Précision | 99.06 |
| Uas | 92.30 | |
| LAS | 89.15 | |
| Envoyé de précision | 98.84 | |
| Rappel envoyé | 99.38 | |
| Envoyé F-Mesure | 99.11 |
Hazm est une bibliothèque Python pour effectuer des tâches de traitement du langage naturel sur le texte persan. Il offre diverses fonctionnalités d'analyse, de traitement et de compréhension du texte persan. Vous pouvez utiliser Hazm pour normaliser le texte, tokensize phrases et mots, lemmatiser les mots, attribuer des balises de disposition, identifier les relations de dépendance, créer des incorporations de mots et de phrases ou lire les corpus persans populaires.
Pour installer la dernière version de Hazm, exécutez la commande suivante dans votre terminal:
pip install hazm
Alternativement, vous pouvez installer la dernière mise à jour de GitHub (cette version peut être instable et buggy):
pip install git+https://github.com/roshan-research/hazm.git
Enfin, si vous souhaitez utiliser nos modèles pré-entraînés, vous pouvez le télécharger à partir des liens ci-dessous:
| Nom du module | Taille |
|---|---|
| Télécharger WordMedding | ~ 5 Go |
| Télécharger Sentembedding | ~ 1 Go |
| Télécharger Postagger | ~ 18 Mb |
| Télécharger Depensencyparser | ~ 15 Mo |
| Télécharger Chunker | ~ 4 Mo |
| Téléchargez Spacy_pos_tagger_ParsbertPostagger | ~ 630 Mo |
| Télécharger SPACY_POS_TAGG_PARSBERTPOSTAGG_TRAINE_ON_95% | ~ 630 Mo |
| Télécharger SPACY_CHUNKER_UNCELET_BERT | ~ 650 Mo |
| Télécharger Spacy_Chunker_Parsbert | ~ 630 Mo |
| Télécharger Spacy_Dependency_Parser | ~ 630 Mo |
> >> from hazm import *
> >> normalizer = Normalizer ()
> >> normalizer . normalize ( 'اصلاح نويسه ها و استفاده از نیمفاصله پردازش را آسان مي كند' )
'اصلاح نویسهها و استفاده از نیمفاصله پردازش را آسان میکند'
> >> sent_tokenize ( 'ما هم برای وصل کردن آمدیم! ولی برای پردازش، جدا بهتر نیست؟' )
[ 'ما هم برای وصل کردن آمدیم!' , 'ولی برای پردازش، جدا بهتر نیست؟' ]
> >> word_tokenize ( 'ولی برای پردازش، جدا بهتر نیست؟' )
[ 'ولی' , 'برای' , 'پردازش' , '،' , 'جدا' , 'بهتر' , 'نیست' , '؟' ]
> >> stemmer = Stemmer ()
> >> stemmer . stem ( 'کتابها' )
'کتاب'
> >> lemmatizer = Lemmatizer ()
> >> lemmatizer . lemmatize ( 'میروم' )
'رفت#رو'
> >> tagger = POSTagger ( model = 'pos_tagger.model' )
> >> tagger . tag ( word_tokenize ( 'ما بسیار کتاب میخوانیم' ))
[( 'ما' , 'PRO' ), ( 'بسیار' , 'ADV' ), ( 'کتاب' , 'N' ), ( 'میخوانیم' , 'V' )]
> >> spacy_posTagger = SpacyPOSTagger ( model_path = 'MODELPATH' )
> >> spacy_posTagger . tag ( tokens = [ 'من' , 'به' , 'مدرسه' , 'ایران' , 'رفته_بودم' , '.' ])
[( 'من' , 'PRON' ), ( 'به' , 'ADP' ), ( 'مدرسه' , 'NOUN,EZ' ), ( 'ایران' , 'NOUN' ), ( 'رفته_بودم' , 'VERB' ), ( '.' , 'PUNCT' )]
> >> posTagger = POSTagger ( model = 'pos_tagger.model' , universal_tag = False )
> >> posTagger . tag ( tokens = [ 'من' , 'به' , 'مدرسه' , 'ایران' , 'رفته_بودم' , '.' ])
[( 'من' , 'PRON' ), ( 'به' , 'ADP' ), ( 'مدرسه' , 'NOUN' ), ( 'ایران' , 'NOUN' ), ( 'رفته_بودم' , 'VERB' ), ( '.' , 'PUNCT' )]
> >> chunker = Chunker ( model = 'chunker.model' )
> >> tagged = tagger . tag ( word_tokenize ( 'کتاب خواندن را دوست داریم' ))
> >> tree2brackets ( chunker . parse ( tagged ))
'[کتاب خواندن NP] [را POSTP] [دوست داریم VP]'
> >> spacy_chunker = SpacyChunker ( model_path = 'model_path' )
> >> tree = spacy_chunker . parse ( sentence = [( 'نامه' , 'NOUN,EZ' ), ( 'ایشان' , 'PRON' ), ( 'را' , 'ADP' ), ( 'دریافت' , 'NOUN' ), ( 'داشتم' , 'VERB' ), ( '.' , 'PUNCT' )])
> >> print ( tree )
( S
( NP نامه / NOUN , EZ ایشان / PRON )
( POSTP را / ADP )
( VP دریافت / NOUN داشتم / VERB )
. / PUNCT )
> >> word_embedding = WordEmbedding ( model_type = 'fasttext' , model_path = 'word2vec.bin' )
> >> word_embedding . doesnt_match ([ 'سلام' , 'درود' , 'خداحافظ' , 'پنجره' ])
'پنجره'
> >> word_embedding . doesnt_match ([ 'ساعت' , 'پلنگ' , 'شیر' ])
'ساعت'
> >> parser = DependencyParser ( tagger = tagger , lemmatizer = lemmatizer )
> >> parser . parse ( word_tokenize ( 'زنگها برای که به صدا درمیآید؟' ))
< DependencyGraph with 8 nodes >
> >> spacy_parser = SpacyDependencyParser ( tagger = tagger , lemmatizer = lemmatizer )
>> > spacy_parser . parse_sents ([ word_tokenize ( 'زنگها برای که به صدا درمیآید؟' )])
>> > ner = HazmNER ( model_path = 'ner/model-best' )
>> > ner . predict_entity ( 'حمله سایبری به سامانه سوخت در دولت سیزدهم برای بار دوم اتفاق افتاد، حادثهای که در سال 1400 هم به وقوع پیوست اما رفع این مشکل بیش از یک هفته زمان برد، در حالی که آذر امسال پس از این حمله همه پمپبنزینها در کمتر از 24 ساعت فعالیت خود را از سر گرفتند.' )
>> > ner . predict (
[
'ریو در ایران توسط شرکت سایپا از سال 1384 تا سال 1391 تولید شد' ,
'به جز ایالات متحده ، این خودرو در اروپا ، آمریکای جنوبی و آسیا هم فروش بالایی داشته است' ,
'این گاه شمار با قدمتی کمتر از دویست سال ، از جدیدترین گاه شمار های رایج به شمار می رود'
]
)Visitez https://roshan-ai.ir/hazm/docs pour afficher la documentation complète.
Avertissement: ces ports ne sont pas développés ou entretenus par Roshan. Ils peuvent ne pas avoir les mêmes fonctionnalités ou qualité que le Hazm d'origine.
Nous accueillons et apprécions toutes les contributions à ce dépôt, telles que les rapports de bogues, les demandes de fonctionnalités, les améliorations de code, les mises à jour de la documentation, etc. Veuillez suivre les directives de contribution lors de la contribution. Vous pouvez ouvrir un problème, débarquer le dépôt, écrire votre code, créer une demande de traction et attendre un examen et des commentaires. Merci pour votre intérêt et votre soutien dans ce dépôt!