2011-04-03 7 views
6

मैं पाठ मैं tokenize करना चाहते हैं के ब्लॉक है, लेकिन मैं, खाली स्थान के और विराम चिह्न पर tokenize के रूप में NLTK जैसे उपकरणों के साथ मानक प्रतीत हो रहा है नहीं करना चाहती के साथ Tokenizing। नियमित वाक्यांशों के बजाय, विशेष वाक्यांश हैं जिन्हें मैं एकल टोकन के रूप में टोकननाइज़ करना चाहता हूं।पायथन: वाक्यांशों

उदाहरण के लिए, "वेस्ट विंग एक अमेरिकी टेलीविज़न धारावाहिक नाटक है जो हारून सोर्किन द्वारा बनाया गया था जिसे मूल रूप से 22 सितंबर, 1 999 से 14 मई 2006 तक एनबीसी पर प्रसारित किया गया था," और टोकननाइज़र को वाक्यांश जोड़ना " the west wing, "जिसके परिणामस्वरूप टोकन होगा:

  • पश्चिम विंग
  • एक
  • अमेरिकी
  • ...
  • 0 है

सबसे अच्छा तरीका यह है, क्या है? मैं एनएलटीके जैसे उपकरणों की सीमाओं के भीतर रहना पसंद करूंगा।

उत्तर

1

आप वाक्यांशों कि आप देख रहे हैं की एक निश्चित सेट है, तो सरल समाधान अपने इनपुट tokenize और "पुनः" बहु-शब्द टोकन के लिए है। वैकल्पिक रूप से, एक regexp खोज & tokenizing कि The_West_Wing में The West Wing बदल जाता है से पहले की जगह है।

अधिक उन्नत विकल्प के लिए, regexp_tokenize का उपयोग करें या chapter 7 of the NLTK book देखते हैं।

+0

'regex_tokenize' और' NLTK book' लिंक के 7 अध्याय एक लॉगिन और पासवर्ड की आवश्यकता है। – Murta

1

आप NLTK की MWETokenizer Tokenizer बहु पद अभिव्यक्ति का उपयोग कर सकते हैं:

from nltk.tokenize import MWETokenizer 
tokenizer = MWETokenizer() 
tokenizer.add_mwe(('the', 'west', 'wing')) 
tokenizer.tokenize('Something about the west wing'.split()) 

आप मिल जाएगा:

['Something', 'about', 'the_west_wing'] 
0

आप पहले से विशेष वाक्यांशों नहीं जानते हैं, तो आप संभवतः सकता है scikit के CountVectorizer() कक्षा का उपयोग करें। इसमें बड़ी एन-ग्राम श्रेणियां (ngram_range) निर्दिष्ट करने का विकल्प है और फिर किसी भी शब्द को अनदेखा करें जो पर्याप्त दस्तावेजों (min_df) में प्रकट नहीं होता है। आप उन कुछ वाक्यांशों की पहचान कर सकते हैं जिन्हें आपने महसूस नहीं किया था, लेकिन आप कुछ ऐसे भी पा सकते हैं जो व्यर्थ हैं। इसमें स्टॉप_वर्ड पैरामीटर का उपयोग करके अंग्रेजी स्टॉपवर्ड (अर्थहीन शब्द जैसे 'is') को फ़िल्टर करने का विकल्प भी है।

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

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