2012-01-24 13 views
5

साक्षात्कार प्रश्नकिसी दिए गए पीडीएफ में दिए गए शब्द की गणना कैसे होगी?

मैं platform- या एक साक्षात्कार में यह प्रश्न पूछा गया है, और जवाब विशिष्ट प्रोग्रामिंग भाषा की जरूरत नहीं है, उपकरण, विशिष्ट।

प्रश्न निम्नलिखित के रूप में phrased था:

आप कैसे एक पीडीएफ में दिए गए शब्द की उदाहरण गिनती मिलेगा। जवाब प्रोग्रामिंग, मंच, या उपकरण विशिष्ट होना आवश्यक नहीं है। बस मुझे पता है कि आप एक स्मृति और गति कारगर तरीका

मैं निम्नलिखित कारणों से इस प्रश्न पोस्ट कर रहा हूँ में यह करना होगा करते हैं:

  1. बेहतर संदर्भ को समझने के लिए - मैं अभी भी समझने में विफल इस सवाल का संदर्भ, साक्षात्कारकर्ता इस प्रश्न पूछकर क्या खोज सकता है?
  2. विविध राय प्राप्त करने के लिए - मैं प्रोग्रामिंग भाषा (सी #) पर अपने कौशल के आधार पर ऐसे प्रश्नों का उत्तर देता हूं, लेकिन ऐसा करने के लिए अन्य वैध विकल्प भी हो सकते हैं।

आपकी रुचि के लिए धन्यवाद।

उत्तर

4

अगर मुझे ऐसा करने के लिए एक प्रोग्राम लिखना पड़ा, तो मुझे पीडीएफ फाइलों से पाठ निकालने में सक्षम पीडीएफ प्रतिपादन लाइब्रेरी मिलेगी, जैसे Xpdf और फिर शब्दों को गिनें। यदि यह एक काम या ऐसा कुछ था जिसे गैर-उत्पादन गुणवत्ता कार्य के लिए स्वचालित करने की आवश्यकता होती है, तो मैं केवल फ़ाइल को पीडीएफटीओटीएक्स प्रोग्राम में खिलाऊंगा और फिर आउटपुट फ़ाइल को पाइथन के साथ पार्स कर दूंगा, शब्दों में विभाजित करूँगा, उन्हें अंदर डाल दूंगा एक शब्दकोश और घटनाओं की संख्या गिनती।

  1. इस कार्य के लिए सेटिंग के बीच अंतर को समझने:

    यदि मैं यह साक्षात्कार सवाल पूछ रहा था, मैं चीजों के एक जोड़े के लिए विचार करना होता बनाम एक बंद स्क्रिप्ट thingy उत्पादन कोड

  2. को लागू करने का प्रयास नहीं किया गया है, पीडीएफ ने स्वयं को प्रस्तुत किया है और इसके बजाय लाइब्रेरी लाइब्रेरी ढूंढने का प्रयास कर रहा है।

अब मैं किसी भी पीडीएफ अनुभव के साथ किसी भी यादृच्छिक उम्मीदवार से इसकी अपेक्षा नहीं करता हूं, लेकिन आप पीडीएफ क्या है और क्या "शब्द" के बारे में बहुत सार्थक चर्चा कर सकते हैं। आप देखते हैं, पीडीएफ संग्रहीत पाठ को निर्देशांक के साथ स्ट्रिंग के गुच्छा के रूप में। प्रत्येक स्ट्रिंग जरूरी नहीं है एक शब्द। अक्सर बार, शब्दों को एक पूरी तरह से अलग तारों में विभाजित किया जाएगा जो दस्तावेज़ में पूरी तरह से एक शब्द बनाने के लिए तैनात हैं। यही कारण है कि कभी-कभी पीडीएफ दस्तावेज़ में शब्दों की खोज करते समय आपको अजीब दिखने वाले परिणाम मिलते हैं। तो किसी दस्तावेज़ में खोज शब्द को लागू करने के लिए आपको इन स्ट्रिंग्स को एक साथ वापस चिपकाना होगा (pdftotext आपके लिए इसका ख्याल रखता है)।

यह कोई बुरा सवाल नहीं है।

+2

मैं इस सवाल की तरह है क्योंकि यह सिर्फ अगर एक उम्मीदवार कोड-अप कर सकते हैं एक शब्द गणना एल्गोरिथ्म का आकलन करने से परे चला जाता। यह उम्मीदवार को दिखाता है कि वह वास्तविक शब्द के काम को कैसे प्राप्त करेगा और यदि वह स्पष्टीकरण के लिए साक्षात्कारकर्ता को स्मार्ट प्रश्न पूछने के लिए पर्याप्त विचारशील है। अगर मैं साक्षात्कारकर्ता था, तो मैं शब्दकोश (हैश, ट्राई, इत्यादि ...) के कार्यान्वयन पर ड्रिल कर सकता हूं, लेकिन अपने कुछ अन्य फैसलों के बारे में उम्मीदवार को वक्र गेंदों को वापस फेंक सकता हूं कि वह कैसे प्रतिक्रिया करता है। (उदाहरण के लिए "पीडीएफ फाइल चीनी में लिखी पुस्तक है - यह आपके कोड को कैसे प्रभावित करती है?")। – selbie

+0

@selbie: जटिलता जोड़ने के लिए धन्यवाद! :) विविध राय वह है जो मैं ढूंढ रहा हूं! –

2

आप Trie का उपयोग कर सकते हैं यह दिए गए शब्द की गणना प्राप्त करना बहुत आसान है।

+1

आपका मतलब "ट्री" है, न कि "टायर"। उत्तरार्द्ध एक कार पर चला जाता है। ;) – selbie

+0

धन्यवाद selbie। मैंने इसे सही किया। – Sandeep

0

मैं जावा का उपयोग कर एक ओपन सोर्स समाधान का सुझाव दूंगा। सबसे पहले आपको पीडीएफ फाइल को पार्स करना होगा और Tika का उपयोग करके सभी टेक्स्ट निकालना होगा।

तब मेरा मानना ​​है कि सही सवाल यह है कि टेक्स्ट में किसी शब्द के टीएफ (टर्म फ्रीक्वेंसी) को कैसे ढूंढना है। मैं आपको परिभाषाओं के साथ परेशान नहीं करूंगा क्योंकि आप इसे निकाले गए पाठ को स्कैन करके और शब्द की आवृत्ति की गणना करके इसे प्राप्त कर सकते हैं।

नमूना कोड इस प्रकार दिखाई देगा:

while(scan.hasNext()) 
    { 
     word = scan.next(); 
     ha += (" " + word + " "); 

     int countWord = 0; 
     if(!listOfWords.containsKey(word)) 
     {  
      listOfWords.put(word, 1); //first occurance of this word 
     } 
     else 
     { 
      countWord = listOfWords.get(word) + 1; //get current count and increment 
                 //now put the new value back in the HashMap 
      listOfWords.remove(word);    //first remove it (can't have duplicate keys) 
      listOfWords.put(word, countWord);  //now put it back with new value 
     } 
    }  
संबंधित मुद्दे