ओपनएनएलपी - वाक्यों को पार्स करना

ओपनएनएलपी एपीआई का उपयोग करके, आप दिए गए वाक्यों को पार्स कर सकते हैं। इस अध्याय में, हम OpenNLP API का उपयोग करके कच्चे पाठ को पार्स करने के तरीके के बारे में चर्चा करेंगे।

ओपनएनएलपी लाइब्रेरी का उपयोग करके कच्चे पाठ को पार्स करना

वाक्यों का पता लगाने के लिए, ओपनएनएलपी एक पूर्वनिर्धारित मॉडल, एक फ़ाइल नाम का उपयोग करता है en-parserchunking.bin। यह एक पूर्वनिर्धारित मॉडल है जिसे दिए गए कच्चे पाठ को पार्स करने के लिए प्रशिक्षित किया गया है।

Parser की कक्षा opennlp.tools.Parser पैकेज पार्स घटक और धारण करने के लिए उपयोग किया जाता है ParserTool की कक्षा opennlp.tools.cmdline.parser पैकेज का उपयोग सामग्री को पार्स करने के लिए किया जाता है।

प्रोग्राम को लिखने के लिए निम्नलिखित चरणों का पालन करना चाहिए जो दिए गए कच्चे पाठ का उपयोग करता है ParserTool कक्षा।

चरण 1: मॉडल लोड हो रहा है

पार्सिंग पाठ के लिए मॉडल को नामित वर्ग द्वारा दर्शाया गया है ParserModel, जो पैकेज के अंतर्गत आता है opennlp.tools.parser

एक टोकन मॉडल लोड करने के लिए -

  • बनाओ InputStream मॉडल का उद्देश्य (FileInputStream झटपट करें और इसके निर्माणकर्ता को स्ट्रिंग प्रारूप में मॉडल का पथ पास करें)।

  • झटपट ParserModel कक्षा और पास InputStream (ऑब्जेक्ट) इसके निर्माता के लिए एक पैरामीटर के रूप में, जैसा कि निम्नलिखित कोड ब्लॉक में दिखाया गया है।

//Loading parser model 
InputStream inputStream = new FileInputStream(".../en-parserchunking.bin"); 
ParserModel model = new ParserModel(inputStream);

चरण 2: पार्सर वर्ग की एक वस्तु बनाना

Parser पैकेज की कक्षा opennlp.tools.parserपार्स घटक रखने के लिए एक डेटा संरचना का प्रतिनिधित्व करता है। आप स्थैतिक का उपयोग करके इस वर्ग का एक ऑब्जेक्ट बना सकते हैंcreate() की विधि ParserFactory कक्षा।

आह्वान किया create() की विधि ParserFactory पिछले चरण में बनाई गई मॉडल ऑब्जेक्ट को पास करके, जैसा कि नीचे दिखाया गया है -

//Creating a parser Parser parser = ParserFactory.create(model);

चरण 3: वाक्य को पार्स करना

parseLine() की विधि ParserToolक्लास का उपयोग ओपनएनएलपी में कच्चे पाठ को पार्स करने के लिए किया जाता है। इस विधि को स्वीकार करता है -

  • स्ट्रिंग का पाठ को दर्शाने वाला चर।

  • एक पार्सर वस्तु।

  • एक पूर्णांक जो पारस की संख्या को दर्शाता है।

इस विधि को निम्नलिखित मापदंडों को वाक्य के माध्यम से लागू करें: पिछले चरणों में बनाई गई पार्स वस्तु, और एक पूर्णांक जो पार्स की आवश्यक संख्या का प्रतिनिधित्व करता है।

//Parsing the sentence 
String sentence = "Tutorialspoint is the largest tutorial library.";       
Parse topParses[] = ParserTool.parseLine(sentence, parser, 1);

Example

निम्नलिखित कार्यक्रम है जो दिए गए कच्चे पाठ को पार्स करता है। इस प्रोग्राम को नाम के साथ फाइल में सेव करेंParserExample.java

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.cmdline.parser.ParserTool; 
import opennlp.tools.parser.Parse; 
import opennlp.tools.parser.Parser; 
import opennlp.tools.parser.ParserFactory; 
import opennlp.tools.parser.ParserModel;  

public class ParserExample { 
   
   public static void main(String args[]) throws Exception{  
      //Loading parser model 
      InputStream inputStream = new FileInputStream(".../en-parserchunking.bin"); 
      ParserModel model = new ParserModel(inputStream); 
       
      //Creating a parser 
      Parser parser = ParserFactory.create(model); 
      
      //Parsing the sentence 
      String sentence = "Tutorialspoint is the largest tutorial library.";
      Parse topParses[] = ParserTool.parseLine(sentence, parser, 1); 
    
      for (Parse p : topParses) 
         p.show();          
   } 
}

निम्न आदेशों का उपयोग करके कमांड प्रॉम्प्ट से सहेजी गई जावा फ़ाइल को संकलित करें और निष्पादित करें -

javac ParserExample.java 
java ParserExample

निष्पादित करने पर, उपरोक्त कार्यक्रम दिए गए कच्चे पाठ को पढ़ता है, इसे पार्स करता है, और निम्नलिखित आउटपुट प्रदर्शित करता है -

(TOP (S (NP (NN Tutorialspoint)) (VP (VBZ is) (NP (DT the) (JJS largest) (NN
   tutorial) (NN library.)))))