मुझे पाठ से सबसे लोकप्रिय ngrams प्राप्त करने की आवश्यकता है। Ngrams लंबाई 1 से 5 शब्दों से होना चाहिए।पाइथन आवृत्तियों के साथ Ngrams की सूची
मुझे पता है कि बिग्राम और ट्रिग्राम कैसे प्राप्त करें। उदाहरण के लिए:
bigram_measures = nltk.collocations.BigramAssocMeasures()
finder = nltk.collocations.BigramCollocationFinder.from_words(words)
finder.apply_freq_filter(3)
finder.apply_word_filter(filter_stops)
matches1 = finder.nbest(bigram_measures.pmi, 20)
हालांकि, मुझे पता चला कि विज्ञान-शिक्षा विभिन्न लंबाई के साथ ngrams प्राप्त कर सकते हैं। उदाहरण के लिए मैं 1 से 5.
v = CountVectorizer(analyzer=WordNGramAnalyzer(min_n=1, max_n=5))
लंबाई के साथ ngrams प्राप्त कर सकते हैं लेकिन WordNGramAnalyzer अब मान्य नहीं है। मेरा सवाल है: मुझे 1 से 5 तक की कॉलोकेशन लंबाई के साथ, मेरे पाठ से एन सर्वश्रेष्ठ शब्द कोलाकेशन कैसे प्राप्त हो सकता है। इसके अलावा मुझे इस कॉलोकेशन/ngrams की FreqList प्राप्त करने की आवश्यकता है।
क्या मैं इसे nltk/scikit के साथ कर सकता हूं? मुझे एक पाठ से विभिन्न लंबाई के साथ ngrams के संयोजन प्राप्त करने की आवश्यकता है?
उदाहरण के लिए एनएलटीके बिग्राम और ट्रिग्राम का उपयोग करना जहां कई परिस्थितियों में मेरे ट्रिग्राम में मेरे बिटग्राम शामिल हैं, या मेरे ट्रिग्राम बड़े 4-ग्राम का हिस्सा हैं।
bitgrams: नमस्ते मेरा trigrams: उदाहरण के लिए नमस्ते मेरा नाम
मैं जानता हूँ कि trigrams से Bigrams बहिष्कृत करने का तरीका है, लेकिन मैं बेहतर समाधान की जरूरत है।
का उपयोग कर आप TF-आईडीएफ सामान्य नहीं करना चाहते हैं लागू किया जाता है बस उपयोग करें: 'countVectorizer (min_n = 1, max_n = 5) .fit_transform (list_of_strings) '। – ogrisel
लेकिन मैं आगे क्या करूं? मैं ngrams आवृत्तियों कैसे प्राप्त करूं? – twoface88
@ twoface88: 'v = countVectorizer (min_n = 1, max_n = 5); एक्स = v.fit_transform (["एक सेब एक दिन डॉक्टर को दूर रखता है"]); ज़िप (v.inverse_transform (एक्स) [0], एक्स.ए [0]) '। ध्यान दें कि डिफ़ॉल्ट रूप से स्टॉपवर्ड और एक-चार टोकन हटा दिए जाएंगे। –