| Nome do módulo | |
|---|---|
| DependencyParser | 85,6% |
| Postager | 98,8% |
| Chunker | 93,4% |
| Lemmatizer | 89,9% |
| Métrica | Valor | |
|---|---|---|
| Spacypostagge | Precisão | 0,99250 |
| Lembrar | 0,99249 | |
| F1-score | 0,99249 | |
| Detecção de EZ em Spacypostagge | Precisão | 0,99301 |
| Lembrar | 0,99297 | |
| F1-score | 0,99298 | |
| SpacyChunker | Precisão | 96,53% |
| F-Mensa | 95,00% | |
| Lembrar | 95,17% | |
| Precisão | 94,83% | |
| SpacydependencyParser | Precisão de tok | 99.06 |
| Uas | 92.30 | |
| Las | 89.15 | |
| Precisão enviada | 98.84 | |
| Recall enviado | 99.38 | |
| Enviado F-measidade | 99.11 |
Hazm é uma biblioteca Python para executar tarefas de processamento de linguagem natural no texto persa. Oferece vários recursos para analisar, processar e entender o texto persa. Você pode usar o HAZM para normalizar o texto, tokenizar frases e palavras, lematizar palavras, atribuir tags de parte da fala, identificar relações de dependência, criar incorporação de palavras e frases ou ler corpora persa popular.
Para instalar a versão mais recente do Hazm, execute o seguinte comando em seu terminal:
pip install hazm
Como alternativa, você pode instalar a atualização mais recente do Github (esta versão pode ser instável e buggy):
pip install git+https://github.com/roshan-research/hazm.git
Finalmente, se você quiser usar nossos modelos pré -tenhados, pode baixá -los nos links abaixo:
| Nome do módulo | Tamanho |
|---|---|
| Baixe o Wordembedding | ~ 5 GB |
| Baixar Sentembedding | ~ 1 GB |
| Baixar postager | ~ 18 mb |
| Download DependencyParser | ~ 15 mb |
| Baixe Chunker | ~ 4 mb |
| Faça o download do spacy_pos_tager_parsbertpostager | ~ 630 MB |
| Baixe spacy_pos_tagger_parsbertposger_trared_on_95% | ~ 630 MB |
| Faça o download spacy_chunker_uncased_bert | ~ 650 MB |
| Baixe Spacy_chunker_parsbert | ~ 630 MB |
| Baixe spacy_dependency_parser | ~ 630 MB |
> >> 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 تولید شد' ,
'به جز ایالات متحده ، این خودرو در اروپا ، آمریکای جنوبی و آسیا هم فروش بالایی داشته است' ,
'این گاه شمار با قدمتی کمتر از دویست سال ، از جدیدترین گاه شمار های رایج به شمار می رود'
]
)Visite https://roshan-ai.ir/hazm/docs para visualizar a documentação completa.
Isenção de responsabilidade: Essas portas não são desenvolvidas ou mantidas por Roshan. Eles podem não ter a mesma funcionalidade ou qualidade que o Hazm original.
Congratulamo -nos com e apreciamos quaisquer contribuições para este repositório, como relatórios de bugs, solicitações de recursos, melhorias de código, atualizações de documentação etc. Siga a diretriz de contribuição ao contribuir. Você pode abrir um problema, bifurcar o repositório, escrever seu código, criar uma solicitação de tração e aguardar uma revisão e feedback. Obrigado pelo seu interesse e apoio neste repositório!