2013-07-16 67 views
6

如何使用波斯語的NLTK功能?波斯語的NLTK

例如:'一致'。當我使用「一致性」時,答案是「不匹配」,但是在我的文本中有一致性參數。

輸入非常簡單,它包含「helloسلام」。當'concordance'的參數是'hello'時,答案是正確的,但是,如果'سلام'的答案是'不匹配'輸出給我的是'顯示1個匹配項中的1個'。

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

你能給出一個最簡單的代碼示例和最小輸入的例子嗎?你預計會發生? – jogojapan

回答

19

強烈建議蟒蛇波斯庫NLP:https://github.com/sobhe/hazm

用法:

>>> 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

什麼類似的C#? –

+1

他們也有一個非官方的C#端口。我沒有嘗試過,但: https://github.com/mojtaba-khallash/NHazm – Mohsen

0

其實,我已經使用哈茲在窗戶,我可以安裝哈茲,但是當我運行此代碼:

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

你應該編輯這個,以便它的格式正確 – nbryans

+0

你需要一個名爲Wapiti的蟒蛇包Hazm工作。問題是,在Windows上編譯Wapiti並不容易......它不會用Visual C甚至MingW編譯 – wmac