2013-03-31 4 views
8

का प्रदर्शन बढ़ाएं मैंने अभी एक प्रोग्राम लागू किया है जो जावा में स्टैनफोर्ड पीओएस टैगर का उपयोग करता है।स्टैनफोर्ड-टैगर आधारित प्रोग्राम

मैंने कुछ केबी आकार के इनपुट फ़ाइल का उपयोग किया, जिसमें कुछ सौ शब्द शामिल थे। मैंने ढेर आकार को 600 एमबी तक भी सेट किया।

लेकिन यह अभी भी धीमा है और कभी-कभी ढेर स्मृति से बाहर चला जाता है। मैं इसकी निष्पादन गति और मेमोरी प्रदर्शन कैसे बढ़ा सकता हूं? मैं इनपुट के रूप में कुछ एमबी का उपयोग करने में सक्षम होना चाहता हूँ।

public static void postag(String args) throws ClassNotFoundException 

    { 

    try 

    { 

    File filein=new File("c://input.txt"); 

    String content = FileUtils.readFileToString(filein); 

    MaxentTagger tagger = new MaxentTagger("postagging/wsj-0-18-bidirectional-distsim.tagger"); 

    String tagged = tagger.tagString(content); 

     try 
     { 
      File file = new File("c://output.txt"); 
      if (!file.exists()) 
      { 
       file.createNewFile(); 
      } 

      FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
      BufferedWriter bw = new BufferedWriter(fw); 
      bw.write("\n"+tagged); 
      bw.close(); 

      } 
       catch (IOException e) 
       { 
        e.printStackTrace(); 
       } 

    } catch (IOException e1) 
    { 
     e1.printStackTrace(); 
    } 

} 

उत्तर

7

सलाह के मुख्य पहले टुकड़ा नहीं बल्कि wsj-0-18-bidirectional-distsim.tagger से (, हाल के संस्करणों में या शायद बेहतर, english-left3words-distsim.tagger सामान्य पाठ के लिए) wsj-0-18-left3words-distsim.tagger उपयोग करने के लिए, है। जबकि बिडरेक्शनल टैगर का टैगिंग प्रदर्शन आंशिक रूप से बेहतर है, यह लगभग 6 गुना धीमा है और लगभग दोगुनी स्मृति का उपयोग करता है। एक आंकड़ा एफडब्ल्यूआईडब्लू: 2012 मैकबुक प्रो पर, जब left3words टैगर "गर्म" करने के लिए पर्याप्त पाठ दिया गया तो पाठ प्रति सेकंड लगभग 35000 शब्दों पर टैग टैग करेगा।

मेमोरी उपयोग पर सलाह का दूसरा टुकड़ा यह है कि यदि आपके पास बड़ी मात्रा में टेक्स्ट है, तो सुनिश्चित करें कि आप उचित आकार वाले हिस्सों में tagString() पर पास कर दें, सभी एक विशाल स्ट्रिंग के रूप में नहीं, क्योंकि पूरे स्ट्रिंग को टोकननाइज्ड किया जाएगा एक बार में, स्मृति आवश्यकताओं को जोड़ना।

+0

धन्यवाद। Left3words का उपयोग करेंगे :) – Ameer

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