से सामान्य शब्दों (और उनके बहुवचन संस्करण) को हटाने के लिए तकनीक मैं पाठ की लंबी स्ट्रिंग को पार्स करके एक नुस्खा के लिए टैग (कीवर्ड) ढूंढने का प्रयास कर रहा हूं। पाठ में नुस्खा सामग्री, दिशानिर्देश और एक छोटा अस्पष्टता शामिल है।स्ट्रिंग
आपको टैग सूची से आम शब्दों को हटाने का सबसे प्रभावी तरीका क्या होगा?
आम शब्दों से, मैं जैसे शब्दों का मतलब: 'पर' '', 'वहाँ', 'अपने' आदि
2 तरीके मैं उपयोग कर सकते हैं, करते हैं जो आपको लगता है है गति के मामले में अधिक कुशल और क्या आप इसे और अधिक कुशल तरीके से जानते हैं जो मैं कर सकता हूं?
पद्धति 1:
- बार प्रत्येक शब्द होता है की संख्या का निर्धारण (पुस्तकालय संग्रह का उपयोग)
- आम शब्दों की एक सूची है और उस कुंजी को हटाने का प्रयास द्वारा संग्रह वस्तु से सभी 'आम शब्द' को दूर संग्रह वस्तु से यदि यह मौजूद है।
- इसलिए गति चर की लंबाई से निर्धारित किया जाएगा delims
import collections from Counter
delim = ['there','there\'s','theres','they','they\'re']
# the above will end up being a really long list!
word_freq = Counter(recipe_str.lower().split())
for delim in set(delims):
del word_freq[delim]
return freq.most_common()
पद्धति 2:
- सामान्य शब्द बहुवचन हो सकता है, नुस्खा स्ट्रिंग में प्रत्येक शब्द को देखो, और अगर यह जाँच के लिए आंशिक रूप से एक आम शब्द के गैर-बहुवचन संस्करण शामिल हैं। उदाहरण के लिए, स्ट्रिंग के लिए "एक परीक्षण है" प्रत्येक शब्द को यह देखने के लिए जांचें कि इसमें "वहां" है या नहीं और इसे हटा दें।
delim = ['this','at','them'] # words that cant be plural
partial_delim = ['there','they',] # words that could occur in many forms
word_freq = Counter(recipe_str.lower().split())
for delim in set(delims):
del word_freq[delim]
# really slow
for delim in set(partial_delims):
for word in word_freq:
if word.find(delim) != -1:
del word_freq[delim]
return freq.most_common()
मैं आपको यहां एक पूर्ण उत्तर नहीं दे सकता, लेकिन मैं कुछ ऐसा उल्लेख करना चाहता था जो आपकी मदद कर सके। किसी भी तरह के पाठपरक विश्लेषण करते समय, आप आम तौर पर एक ही 'शब्द' से संबंधित बहुवचन, संयोग, और ऐसे अन्य परिवर्तनों का इलाज करने में सक्षम होना चाहते हैं। उदाहरण के लिए: आप डिलीमिट, डिलीमिट, सीमांकित, डेलीमीटर, डिलीमीटर ... के समान व्यवहार करना चाह सकते हैं। इस प्रक्रिया को 'स्टेमिंग' कहा जाता है और कई प्रकार के प्रोग्रामिंग भाषाओं के उदाहरणों के साथ कई अच्छी तरह से शोध किए गए एल्गोरिदम हैं, जो आपके लिए ऐसा करने का प्रयास करेंगे। सौभाग्य! इच्छा है कि मैं और मदद कर सकता हूं। – soundslikeneon
दरअसल, मैं काफी विपरीत की सिफारिश करता हूं। यदि इरादा पूरी तरह परिभाषित "सामान्य" शब्दों को "निकालने" के लिए पूरी तरह से है, तो मैं केवल पूरी सूची तैयार करूंगा, जिसे आप निकालना चाहते हैं प्रत्येक शब्द के सभी बदलावों के साथ पूरा करें। चिंता न करें कि कौन से शब्द बहुवचन हैं। बहुत आसान/तेज़/कम त्रुटि-प्रवण। –