2012-10-23 16 views
15

का उपयोग कर अरबी शब्दों का टोकनकरण मैं एनएलटीकेword_tokenizer शब्दों में वाक्य को विभाजित करने के लिए उपयोग कर रहा हूं।एनएलटीके

في_بيتنا كل شي لما تحتاجه يضيع ...ادور على شاحن فجأة يختفي ..لدرجة اني اسوي نفسي ادور شيء 

कोड मैं लिख रहा हूँ है:

import re 
import nltk 

lex = u" في_بيتنا كل شي لما تحتاجه يضيع ...ادور على شاحن فجأة يختفي ..لدرجة اني اسوي نفسي ادور شيء" 

wordsArray = nltk.word_tokenize(lex) 
print " ".join(wordsArray) 

समस्या यह है कि word_tokenize समारोह शब्दों द्वारा विभाजित नहीं करता है

मैं इस वाक्य tokenize करना चाहते हैं। इसके बजाय, यह अक्षरों से विभाजित होता है ताकि आउटपुट हो:

"ف ي _ ب ي ت ن ا ك ل ش ي ل م ا ت ح ت ا ج ه ي ض ي ع ... ا د و ر ع ل ى ش ا ح ن ف ج أ ة ي خ ت ف ي .. ل د ر ج ة ا ن ي ا س و ي ن ف س ي ا د و ر ش ي ء" 

कोई विचार?

मैं अब तक क्या पहुँच गए हैं:

here में पाठ की कोशिश कर रहा से, यह पत्र द्वारा tokenized जा करने के लिए दिखाई दिया। इसके अलावा, हालांकि, अन्य टोकननाइज़र ने इसे सही ढंग से टोकन किया। क्या इसका मतलब है कि word_tokenize केवल अंग्रेज़ी के लिए है? क्या यह अधिकांश एनएलटीके कार्यों के लिए जाता है?

+1

मदद http://stackoverflow.com/questions/7386856/python-arabic-nlp करता है? (और एक स्टेमर http://nltk.org/api/nltk.stem.html#module-nltk.stem.isri) –

उत्तर

6

मैं हमेशा nltk.tokenize.wordpunct_tokenize का उपयोग करने की सलाह देता हूं। आप http://text-processing.com/demo/tokenize/ पर कई एनएलटीके टोकनकारों को आजमा सकते हैं और स्वयं को देख सकते हैं।

+0

उन टोकननाइज़रों में से अधिकांश के बीच क्या अंतर है? और क्या इसका मतलब यह है कि अधिकांश एनएलटीके कार्य अरबी के साथ काम नहीं करेंगे? –

+2

ट्रीबैंकवॉर्ड टोकनाइज़र को वॉल स्ट्रीट जर्नल टेक्स्ट पर प्रशिक्षित किया जाता है, जो एसीआईआई है, इसलिए यह यूनिकोड टेक्स्ट पर कभी भी अच्छा काम नहीं करता है। PunctWordTokenizer को विभिन्न प्रकार के टेक्स्ट पर प्रशिक्षित किया जाता है, लेकिन मुझे लगता है कि यह उन बाकी हिस्सों की तुलना में कम अनुमानित है, जो नियमित अभिव्यक्तियों का उपयोग करते हैं, जिससे उन्हें किसी भी भाषा पर अनुमानित परिणाम मिलते हैं। – Jacob

+0

सामान्य कार्यों में एनएलटीके केवल अरबी के साथ ठीक है, और कोई यूनिकोड टेक्स्ट, यह सिर्फ कुछ मॉडल एसीसीआई की अपेक्षा करते हैं, और इसलिए यूनिकोड के साथ अच्छा नहीं करते हैं। – Jacob

0
इस

उत्पादन मैं अपने कोड के साथ प्राप्त है, लेकिन मैं याद यूनिकोड अजगर 2 में अच्छी तरह से जाना नहीं है और मैं प्रयोग किया जाता है 3,5

nltk.word_tokenize('في_بيتنا كل شي لما تحتاجه يضيع ...ادور على شاحن فجأة يختفي ..لدرجة اني اسوي نفسي ادور شيء ') 

[ 'في_بيتنا', 'كل', 'شي ', ' لما ', ' تحتاجه ', ' يضيع ', ' ... ', ' ادور ', ' على ', ' شاحن ', ' فجأة ', ' يختفي ', '..لدرجة', 'اني', 'اسوي', 'نفسي', 'ادور', 'شيء']

संबंधित मुद्दे