2013-07-16 11 views
6

Jak korzystać z funkcji NLTK dla języka perskiego?NLTK dla języka perskiego

Na przykład: "zgodność". Kiedy używam "konkordancji", odpowiedź brzmi "nie pasuje", jednak w tekście jest parametr zgodności.

dane wejściowe są bardzo proste .it zawiera słowo "hello سلام", gdy parametr "zgodności" to "cześć", odpowiedź jest prawidłowa, ale jeśli "سلام" odpowiedź brzmi "nie pasuje". dla mnie wynik to "Wyświetlanie 1 z 1 dopasowań".

import nltk 
    from urllib import urlopen 
    url = "file:///home/.../1.html" 
    raw = urlopen(url).read() 
    raw = nltk.clean_html(raw) 
    tokens = nltk.word_tokenize(raw) 
    tokens = tokens[:12] 
    text = nltk.Text(tokens) 
    print text.concordance('سلام') 
+2

Czy możesz podać przykład minimalnego kodu i minimalny przykład wprowadzania tego, co próbowałeś i co spodziewałeś się? – jogojapan

Odpowiedz

19

stanowczo zaleca Pythona perski bibliotekę NLP: https://github.com/sobhe/hazm

Zastosowanie:

>>> from __future__ import unicode_literals 

>>> from hazm import Normalizer 
>>> normalizer = Normalizer() 
>>> normalizer.normalize('اصلاح نويسه ها و استفاده از نیم‌فاصله پردازش را آسان مي كند') 
'اصلاح نویسه‌ها و استفاده از نیم‌فاصله پردازش را آسان می‌کند' 

>>> from hazm import sent_tokenize, word_tokenize 
>>> sent_tokenize('ما هم برای وصل کردن آمدیم! ولی برای پردازش، جدا بهتر نیست؟') 
['ما هم برای وصل کردن آمدیم!', 'ولی برای پردازش، جدا بهتر نیست؟'] 
>>> word_tokenize('ولی برای پردازش، جدا بهتر نیست؟') 
['ولی', 'برای', 'پردازش', '،', 'جدا', 'بهتر', 'نیست', '؟'] 

>>> from hazm import Stemmer, Lemmatizer 
>>> stemmer = Stemmer() 
>>> stemmer.stem('کتاب‌ها') 
'کتاب' 
>>> lemmatizer = Lemmatizer() 
>>> lemmatizer.lemmatize('می‌روم') 
'رفت#رو' 

>>> from hazm import POSTagger 
>>> tagger = POSTagger() 
>>> tagger.tag(word_tokenize('ما بسیار کتاب می‌خوانیم')) 
[('ما', 'PR'), ('بسیار', 'ADV'), ('کتاب', 'N'), ('می‌خوانیم', 'V')] 

>>> from hazm import DependencyParser 
>>> parser = DependencyParser(tagger=POSTagger()) 
>>> parser.parse(word_tokenize('زنگ‌ها برای که به صدا درمی‌آید؟')) 
<DependencyGraph with 8 nodes> 
+0

coś podobnego dla C#? –

+1

Mają także nieoficjalny port C#. Nie próbowałem jednak: https://github.com/mojtaba-khallash/NHazm – Mohsen

0

Rzeczywiście, użyłem Hazm w oknach, i mogłem zainstalować Hazm, ale gdy uruchamiam ten kod :

from __future__ import unicode_literals 
from hazm import * 
I have such Error: 

from hazm import x 
    File "C:\Python34\lib\site-packages\hazm\__init__.py", line 13, in <module> 
    from .SequenceTagger import SequenceTagger, IOBTagger 
    File "C:\Python34\lib\site-packages\hazm\SequenceTagger.py", line 6, in <module> 
    from wapiti import Model 
ImportError: No module named 'wapiti' 
+0

Powinieneś edytować to tak, aby było poprawnie sformatowane. – nbryans

+0

Potrzebujesz pakietu Pythona o nazwie Wapiti, aby Hazm działał. Problem polega na tym, że kompilowanie Wapiti w oknach nie jest takie proste ... Nie skompiluje się z Visual C, a nawet z MingW – wmac

Powiązane problemy