| Nombre del módulo | |
|---|---|
| DependencyParser | 85.6% |
| Posazz | 98.8% |
| Chunker | 93.4% |
| Lematizador | 89.9% |
| Métrico | Valor | |
|---|---|---|
| SpacyPostagage | Precisión | 0.99250 |
| Recordar | 0.99249 | |
| Puntaje F1 | 0.99249 | |
| Detección de EZ en SpacyPosgagger | Precisión | 0.99301 |
| Recordar | 0.99297 | |
| Puntaje F1 | 0.99298 | |
| Spacychunker | Exactitud | 96.53% |
| F-Medición | 95.00% | |
| Recordar | 95.17% | |
| Precisión | 94.83% | |
| SpacyDependencyParser | Precisión | 99.06 |
| Uas | 92.30 | |
| Lás | 89.15 | |
| Enviado precisión | 98.84 | |
| Enviado retirado | 99.38 | |
| Enviado F-Medición | 99.11 |
Hazm es una biblioteca de Python para realizar tareas de procesamiento del lenguaje natural en el texto persa. Ofrece varias características para analizar, procesar y comprender el texto persa. Puede usar HAZM para normalizar el texto, tokenizar oraciones y palabras, lemmatizar palabras, asignar etiquetas de parte de voz, identificar relaciones de dependencia, crear integrantes de palabras y oraciones, o leer corpus persa populares.
Para instalar la última versión de Hazm, ejecute el siguiente comando en su terminal:
pip install hazm
Alternativamente, puede instalar la última actualización de GitHub (esta versión puede ser inestable y errante):
pip install git+https://github.com/roshan-research/hazm.git
Finalmente, si desea utilizar nuestros modelos previos a la aparición, puede descargarlo desde los enlaces a continuación:
| Nombre del módulo | Tamaño |
|---|---|
| Descargar Wordembedding | ~ 5 GB |
| Descargar Sentembedding | ~ 1 GB |
| Descargar Postagger | ~ 18 MB |
| Descargar dependencyParser | ~ 15 MB |
| Descargar Chunker | ~ 4 MB |
| Descargar spacy_pos_tagger_parsbertPosTagger | ~ 630 MB |
| Descargar spacy_pos_tagger_parsbertpostagger_trainse_on_95% | ~ 630 MB |
| Descargar spacy_chunker_uncased_bert | ~ 650 MB |
| Descargar spacy_chunker_parsbert | ~ 630 MB |
| Descargar 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 ver la documentación completa.
Descargo de responsabilidad: estos puertos no son desarrollados ni mantenidos por Roshan. Es posible que no tengan la misma funcionalidad o calidad que el Hazm original.
Agradecemos y apreciamos cualquier contribución a este repositorio, como informes de errores, solicitudes de funciones, mejoras en el código, actualizaciones de documentación, etc. Siga la guía de contribución al contribuir. Puede abrir un problema, bifurcar el repositorio, escribir su código, crear una solicitud de extracción y esperar una revisión y comentarios. ¡Gracias por su interés y apoyo en este repositorio!