ओपनएनएलपी - टोकनेशन
दिए गए वाक्य को छोटे भागों (टोकन) में काटने की प्रक्रिया के रूप में जाना जाता है tokenization। सामान्य तौर पर, दिए गए कच्चे पाठ को सीमांकक (ज्यादातर व्हाट्सएप) के एक सेट के आधार पर टोकन किया जाता है।
टोकेनाइजेशन का उपयोग वर्तनी-जांच, प्रसंस्करण खोजों, भाषण के कुछ हिस्सों की पहचान, वाक्य का पता लगाने, दस्तावेजों के दस्तावेज वर्गीकरण आदि जैसे कार्यों में किया जाता है।
ओपनएनएलपी का उपयोग कर टोकन
opennlp.tools.tokenize पैकेज में वे कक्षाएं और इंटरफेस होते हैं जिनका उपयोग टोकन प्रदर्शन करने के लिए किया जाता है।
दिए गए वाक्यों को सरल अंशों में बदलने के लिए, OpenNLP लाइब्रेरी तीन अलग-अलग कक्षाएं प्रदान करती है -
SimpleTokenizer - यह वर्ग चरित्र वर्गों का उपयोग करके दिए गए कच्चे पाठ को टोकन देता है।
WhitespaceTokenizer - यह वर्ग दिए गए पाठ को टोकन करने के लिए व्हाट्सएप का उपयोग करता है।
TokenizerME- यह वर्ग कच्चे पाठ को अलग टोकन में परिवर्तित करता है। यह अपने निर्णय लेने के लिए अधिकतम एन्ट्रापी का उपयोग करता है।
SimpleTokenizer
का उपयोग कर एक वाक्य tokenize SimpleTokenizer वर्ग, आप की जरूरत है -
संबंधित वर्ग की एक वस्तु बनाएं।
का उपयोग करके वाक्य को टोकन दें tokenize() तरीका।
टोकन प्रिंट करें।
प्रोग्राम को लिखने के लिए निम्नलिखित चरणों का पालन करना चाहिए जो दिए गए कच्चे पाठ को टोकन देता है।
Step 1 - संबंधित वर्ग को त्वरित करना
दोनों वर्गों में, उन्हें तुरंत तैयार करने के लिए कोई रचनाकार उपलब्ध नहीं हैं। इसलिए, हमें स्थिर चर का उपयोग करके इन वर्गों की वस्तुओं को बनाने की आवश्यकता हैINSTANCE।
SimpleTokenizer tokenizer = SimpleTokenizer.INSTANCE;
Step 2 - वाक्यों को टोकें
इन दोनों वर्गों में एक विधि कहा जाता है tokenize()। यह विधि स्ट्रिंग प्रारूप में एक कच्चे पाठ को स्वीकार करती है। आह्वान करने पर, यह दिए गए स्ट्रिंग को टोकन देता है और स्ट्रिंग्स (टोकन) की एक सरणी देता है।
का उपयोग करके वाक्य को टोकन दें tokenizer() नीचे दिखाए अनुसार विधि।
//Tokenizing the given sentence
String tokens[] = tokenizer.tokenize(sentence);
Step 3 - टोकन प्रिंट करें
वाक्य को टोकन करने के बाद, आप टोकन का उपयोग करके प्रिंट कर सकते हैं for loop, जैसा की नीचे दिखाया गया।
//Printing the tokens
for(String token : tokens)
System.out.println(token);
Example
निम्नलिखित प्रोग्राम है जो SimpleTokenizer वर्ग का उपयोग करके दिए गए वाक्य को टोकन देता है। इस प्रोग्राम को नाम के साथ फाइल में सेव करेंSimpleTokenizerExample.java।
import opennlp.tools.tokenize.SimpleTokenizer;
public class SimpleTokenizerExample {
public static void main(String args[]){
String sentence = "Hi. How are you? Welcome to Tutorialspoint. "
+ "We provide free tutorials on various technologies";
//Instantiating SimpleTokenizer class
SimpleTokenizer simpleTokenizer = SimpleTokenizer.INSTANCE;
//Tokenizing the given sentence
String tokens[] = simpleTokenizer.tokenize(sentence);
//Printing the tokens
for(String token : tokens) {
System.out.println(token);
}
}
}
निम्न आदेशों का उपयोग करके कमांड प्रॉम्प्ट से सहेजी गई जावा फ़ाइल को संकलित करें और निष्पादित करें -
javac SimpleTokenizerExample.java
java SimpleTokenizerExample
निष्पादित करने पर, उपरोक्त कार्यक्रम दिए गए स्ट्रिंग (कच्चे पाठ) को पढ़ता है, इसे टोकन करता है, और निम्नलिखित आउटपुट प्रदर्शित करता है -
Hi
.
How
are
you
?
Welcome
to
Tutorialspoint
.
We
provide
free
tutorials
on
various
technologies
WhitespaceTokenizer
का उपयोग कर एक वाक्य tokenize WhitespaceTokenizer वर्ग, आप की जरूरत है -
संबंधित वर्ग की एक वस्तु बनाएं।
का उपयोग करके वाक्य को टोकन दें tokenize() तरीका।
टोकन प्रिंट करें।
प्रोग्राम को लिखने के लिए निम्नलिखित चरणों का पालन करना चाहिए जो दिए गए कच्चे पाठ को टोकन देता है।
Step 1 - संबंधित वर्ग को त्वरित करना
दोनों वर्गों में, उन्हें तुरंत तैयार करने के लिए कोई रचनाकार उपलब्ध नहीं हैं। इसलिए, हमें स्थिर चर का उपयोग करके इन वर्गों की वस्तुओं को बनाने की आवश्यकता हैINSTANCE।
WhitespaceTokenizer tokenizer = WhitespaceTokenizer.INSTANCE;
Step 2 - वाक्यों को टोकें
इन दोनों वर्गों में एक विधि कहा जाता है tokenize()। यह विधि स्ट्रिंग प्रारूप में एक कच्चे पाठ को स्वीकार करती है। आह्वान करने पर, यह दिए गए स्ट्रिंग को टोकन देता है और स्ट्रिंग्स (टोकन) की एक सरणी देता है।
का उपयोग करके वाक्य को टोकन दें tokenizer() नीचे दिखाए अनुसार विधि।
//Tokenizing the given sentence
String tokens[] = tokenizer.tokenize(sentence);
Step 3 - टोकन प्रिंट करें
वाक्य को टोकन करने के बाद, आप टोकन का उपयोग करके प्रिंट कर सकते हैं for loop, जैसा की नीचे दिखाया गया।
//Printing the tokens
for(String token : tokens)
System.out.println(token);
Example
निम्नलिखित प्रोग्राम है जो दिए गए वाक्य का उपयोग करके टोकन देता है WhitespaceTokenizerकक्षा। इस प्रोग्राम को नाम के साथ फाइल में सेव करेंWhitespaceTokenizerExample.java।
import opennlp.tools.tokenize.WhitespaceTokenizer;
public class WhitespaceTokenizerExample {
public static void main(String args[]){
String sentence = "Hi. How are you? Welcome to Tutorialspoint. "
+ "We provide free tutorials on various technologies";
//Instantiating whitespaceTokenizer class
WhitespaceTokenizer whitespaceTokenizer = WhitespaceTokenizer.INSTANCE;
//Tokenizing the given paragraph
String tokens[] = whitespaceTokenizer.tokenize(sentence);
//Printing the tokens
for(String token : tokens)
System.out.println(token);
}
}
निम्न आदेशों का उपयोग करके कमांड प्रॉम्प्ट से सहेजी गई जावा फ़ाइल को संकलित करें और निष्पादित करें -
javac WhitespaceTokenizerExample.java
java WhitespaceTokenizerExample
निष्पादित करने पर, उपरोक्त कार्यक्रम दिए गए स्ट्रिंग (कच्चे पाठ) को पढ़ता है, इसे टोकन करता है, और निम्न आउटपुट को प्रदर्शित करता है।
Hi.
How
are
you?
Welcome
to
Tutorialspoint.
We
provide
free
tutorials
on
various
technologies
टोकनिनेयर वर्ग
ओपनएनएलपी भी पूर्वनिर्धारित मॉडल का उपयोग करता है, एक फ़ाइल जिसका नाम de-token.bin है, वाक्यों को टोकने के लिए। यह दिए गए कच्चे पाठ में वाक्यों को टोकन करने के लिए प्रशिक्षित किया जाता है।
TokenizerME की कक्षा opennlp.tools.tokenizerपैकेज का उपयोग इस मॉडल को लोड करने के लिए किया जाता है, और ओपनएनएलपी लाइब्रेरी का उपयोग करके दिए गए कच्चे पाठ को टोकन दिया जाता है। ऐसा करने के लिए, आपको यह करने की आवश्यकता है -
लोड करें en-token.bin का उपयोग कर मॉडल TokenizerModel कक्षा।
झटपट TokenizerME कक्षा।
का उपयोग कर वाक्यों को टोकन tokenize() इस वर्ग की विधि।
प्रोग्राम को लिखने के लिए निम्नलिखित चरणों का पालन करना चाहिए जो दिए गए कच्चे पाठ से वाक्यों का उपयोग करता है TokenizerME कक्षा।
Step 1 - मॉडल लोड हो रहा है
टोकेनाइजेशन का मॉडल नामित वर्ग द्वारा दर्शाया गया है TokenizerModel, जो पैकेज के अंतर्गत आता है opennlp.tools.tokenize।
एक टोकन मॉडल लोड करने के लिए -
बनाओ InputStream मॉडल का उद्देश्य (FileInputStream झटपट करें और इसके निर्माणकर्ता को स्ट्रिंग प्रारूप में मॉडल का पथ पास करें)।
झटपट TokenizerModel कक्षा और पास InputStream (ऑब्जेक्ट) इसके निर्माता के लिए एक पैरामीटर के रूप में, जैसा कि निम्नलिखित कोड ब्लॉक में दिखाया गया है।
//Loading the Tokenizer model
InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-token.bin");
TokenizerModel tokenModel = new TokenizerModel(inputStream);
Step 2 - टोकेनाइज़रईएम क्लास को इंस्टेंट करना
TokenizerME पैकेज की कक्षा opennlp.tools.tokenizeकच्चे पाठ को छोटे भागों (टोकन) में काटने के तरीके शामिल हैं। यह अपने निर्णय लेने के लिए अधिकतम एन्ट्रापी का उपयोग करता है।
इस वर्ग को तुरंत लिखें और पिछले चरण में बनाई गई मॉडल ऑब्जेक्ट को नीचे दिखाए अनुसार पास करें।
//Instantiating the TokenizerME class
TokenizerME tokenizer = new TokenizerME(tokenModel);
Step 3 - सजा को टोकन देना
tokenize() की विधि TokenizerMEक्लास का उपयोग इसके लिए पास किए गए कच्चे पाठ को टोकन देने के लिए किया जाता है। यह विधि एक स्ट्रिंग चर को पैरामीटर के रूप में स्वीकार करती है, और स्ट्रिंग्स (टोकन) की एक सरणी लौटाती है।
इस विधि के वाक्य के स्ट्रिंग प्रारूप को पास करके इस विधि को लागू करें, निम्नानुसार।
//Tokenizing the given raw text
String tokens[] = tokenizer.tokenize(paragraph);
Example
निम्नलिखित कार्यक्रम है जो दिए गए कच्चे पाठ को टोकन देता है। इस प्रोग्राम को नाम के साथ फाइल में सेव करेंTokenizerMEExample.java।
import java.io.FileInputStream;
import java.io.InputStream;
import opennlp.tools.tokenize.TokenizerME;
import opennlp.tools.tokenize.TokenizerModel;
public class TokenizerMEExample {
public static void main(String args[]) throws Exception{
String sentence = "Hi. How are you? Welcome to Tutorialspoint. "
+ "We provide free tutorials on various technologies";
//Loading the Tokenizer model
InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-token.bin");
TokenizerModel tokenModel = new TokenizerModel(inputStream);
//Instantiating the TokenizerME class
TokenizerME tokenizer = new TokenizerME(tokenModel);
//Tokenizing the given raw text
String tokens[] = tokenizer.tokenize(sentence);
//Printing the tokens
for (String a : tokens)
System.out.println(a);
}
}
निम्न आदेशों का उपयोग करके कमांड प्रॉम्प्ट से सहेजी गई जावा फ़ाइल को संकलित करें और निष्पादित करें -
javac TokenizerMEExample.java
java TokenizerMEExample
निष्पादित करने पर, उपरोक्त कार्यक्रम दिए गए स्ट्रिंग को पढ़ता है और इसमें वाक्यों का पता लगाता है और निम्नलिखित आउटपुट प्रदर्शित करता है -
Hi
.
How
are
you
?
Welcome
to
Tutorialspoint
.
We
provide
free
tutorials
on
various
technologie
टोकन के पदों को पुनः प्राप्त करना
हम भी स्थिति प्राप्त कर सकते हैं या spans का उपयोग कर टोकन की tokenizePos()तरीका। यह पैकेज के टोकनाइज़र इंटरफ़ेस की विधि हैopennlp.tools.tokenize। चूंकि सभी (तीन) टोकनाइज़र कक्षाएं इस इंटरफ़ेस को लागू करती हैं, आप उन सभी में यह विधि पा सकते हैं।
यह विधि एक स्ट्रिंग के रूप में वाक्य या कच्चे पाठ को स्वीकार करती है और प्रकार की वस्तुओं की एक सरणी लौटाती है Span।
आप का उपयोग कर टोकन की स्थिति प्राप्त कर सकते हैं tokenizePos() विधि, इस प्रकार है -
//Retrieving the tokens
tokenizer.tokenizePos(sentence);
पदों की छपाई (स्पैन)
नाम का वर्ग Span का opennlp.tools.util पैकेज का उपयोग सेट के प्रारंभ और अंत पूर्णांक को संग्रहीत करने के लिए किया जाता है।
आप द्वारा दिए गए स्पैन को स्टोर कर सकते हैं tokenizePos() स्पैन ऐरे में विधि और उन्हें प्रिंट करें, जैसा कि निम्नलिखित कोड ब्लॉक में दिखाया गया है।
//Retrieving the tokens
Span[] tokens = tokenizer.tokenizePos(sentence);
//Printing the spans of tokens
for( Span token : tokens)
System.out.println(token);
एक साथ मुद्रण टोकन और उनकी स्थिति
substring() स्ट्रिंग कक्षा की विधि स्वीकार करती है begin और यह endऑफसेट और संबंधित स्ट्रिंग लौटाता है। हम इस विधि का उपयोग टोकन और उनके स्पैन (स्थिति) को एक साथ प्रिंट करने के लिए कर सकते हैं, जैसा कि निम्नलिखित कोड ब्लॉक में दिखाया गया है।
//Printing the spans of tokens
for(Span token : tokens)
System.out.println(token +" "+sent.substring(token.getStart(), token.getEnd()));
Example(SimpleTokenizer)
निम्नलिखित प्रोग्राम है जो कच्चे पाठ के टोकन स्पैन को पुनः प्राप्त करता है SimpleTokenizerकक्षा। यह उनके पदों के साथ-साथ टोकन भी प्रिंट करता है। इस प्रोग्राम को नाम वाली फ़ाइल में सेव करेंSimpleTokenizerSpans.java।
import opennlp.tools.tokenize.SimpleTokenizer;
import opennlp.tools.util.Span;
public class SimpleTokenizerSpans {
public static void main(String args[]){
String sent = "Hi. How are you? Welcome to Tutorialspoint. "
+ "We provide free tutorials on various technologies";
//Instantiating SimpleTokenizer class
SimpleTokenizer simpleTokenizer = SimpleTokenizer.INSTANCE;
//Retrieving the boundaries of the tokens
Span[] tokens = simpleTokenizer.tokenizePos(sent);
//Printing the spans of tokens
for( Span token : tokens)
System.out.println(token +" "+sent.substring(token.getStart(), token.getEnd()));
}
}
निम्न आदेशों का उपयोग करके कमांड प्रॉम्प्ट से सहेजी गई जावा फ़ाइल को संकलित करें और निष्पादित करें -
javac SimpleTokenizerSpans.java
java SimpleTokenizerSpans
निष्पादित करने पर, उपरोक्त कार्यक्रम दिए गए स्ट्रिंग (कच्चे पाठ) को पढ़ता है, इसे टोकन करता है, और निम्नलिखित आउटपुट प्रदर्शित करता है -
[0..2) Hi
[2..3) .
[4..7) How
[8..11) are
[12..15) you
[15..16) ?
[17..24) Welcome
[25..27) to
[28..42) Tutorialspoint
[42..43) .
[44..46) We
[47..54) provide
[55..59) free
[60..69) tutorials
[70..72) on
[73..80) various
[81..93) technologies
Example (WhitespaceTokenizer)
निम्नलिखित प्रोग्राम है जो कच्चे पाठ के टोकन स्पैन को पुनः प्राप्त करता है WhitespaceTokenizerकक्षा। यह उनके पदों के साथ-साथ टोकन भी प्रिंट करता है। इस प्रोग्राम को नाम के साथ फाइल में सेव करेंWhitespaceTokenizerSpans.java।
import opennlp.tools.tokenize.WhitespaceTokenizer;
import opennlp.tools.util.Span;
public class WhitespaceTokenizerSpans {
public static void main(String args[]){
String sent = "Hi. How are you? Welcome to Tutorialspoint. "
+ "We provide free tutorials on various technologies";
//Instantiating SimpleTokenizer class
WhitespaceTokenizer whitespaceTokenizer = WhitespaceTokenizer.INSTANCE;
//Retrieving the tokens
Span[] tokens = whitespaceTokenizer.tokenizePos(sent);
//Printing the spans of tokens
for( Span token : tokens)
System.out.println(token +"
"+sent.substring(token.getStart(), token.getEnd()));
}
}
निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें
javac WhitespaceTokenizerSpans.java
java WhitespaceTokenizerSpans
निष्पादित करने पर, उपरोक्त कार्यक्रम दिए गए स्ट्रिंग (कच्चे पाठ) को पढ़ता है, इसे टोकन करता है, और निम्न आउटपुट को प्रदर्शित करता है।
[0..3) Hi.
[4..7) How
[8..11) are
[12..16) you?
[17..24) Welcome
[25..27) to
[28..43) Tutorialspoint.
[44..46) We
[47..54) provide
[55..59) free
[60..69) tutorials
[70..72) on
[73..80) various
[81..93) technologies
Example (TokenizerME)
निम्नलिखित प्रोग्राम है जो कच्चे पाठ के टोकन स्पैन को पुनः प्राप्त करता है TokenizerMEकक्षा। यह उनके पदों के साथ-साथ टोकन भी प्रिंट करता है। इस प्रोग्राम को नाम के साथ फाइल में सेव करेंTokenizerMESpans.java।
import java.io.FileInputStream;
import java.io.InputStream;
import opennlp.tools.tokenize.TokenizerME;
import opennlp.tools.tokenize.TokenizerModel;
import opennlp.tools.util.Span;
public class TokenizerMESpans {
public static void main(String args[]) throws Exception{
String sent = "Hello John how are you welcome to Tutorialspoint";
//Loading the Tokenizer model
InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-token.bin");
TokenizerModel tokenModel = new TokenizerModel(inputStream);
//Instantiating the TokenizerME class
TokenizerME tokenizer = new TokenizerME(tokenModel);
//Retrieving the positions of the tokens
Span tokens[] = tokenizer.tokenizePos(sent);
//Printing the spans of tokens
for(Span token : tokens)
System.out.println(token +" "+sent.substring(token.getStart(), token.getEnd()));
}
}
निम्न आदेशों का उपयोग करके कमांड प्रॉम्प्ट से सहेजी गई जावा फ़ाइल को संकलित करें और निष्पादित करें -
javac TokenizerMESpans.java
java TokenizerMESpans
निष्पादित करने पर, उपरोक्त कार्यक्रम दिए गए स्ट्रिंग (कच्चे पाठ) को पढ़ता है, इसे टोकन करता है, और निम्नलिखित आउटपुट प्रदर्शित करता है -
[0..5) Hello
[6..10) John
[11..14) how
[15..18) are
[19..22) you
[23..30) welcome
[31..33) to
[34..48) Tutorialspoint
टोकनर संभावना
टोकनएपएमई क्लास की getTokenProbabilities () पद्धति का उपयोग टोकनपेपोस () पद्धति के लिए सबसे हालिया कॉल से जुड़ी संभावनाओं को प्राप्त करने के लिए किया जाता है।
//Getting the probabilities of the recent calls to tokenizePos() method
double[] probs = detector.getSentenceProbabilities();
इसके बाद tokenizePos () पद्धति से कॉल से जुड़ी संभावनाओं को प्रिंट करने का कार्यक्रम है। इस प्रोग्राम को नाम के साथ फाइल में सेव करेंTokenizerMEProbs.java।
import java.io.FileInputStream;
import java.io.InputStream;
import opennlp.tools.tokenize.TokenizerME;
import opennlp.tools.tokenize.TokenizerModel;
import opennlp.tools.util.Span;
public class TokenizerMEProbs {
public static void main(String args[]) throws Exception{
String sent = "Hello John how are you welcome to Tutorialspoint";
//Loading the Tokenizer model
InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-token.bin");
TokenizerModel tokenModel = new TokenizerModel(inputStream);
//Instantiating the TokenizerME class
TokenizerME tokenizer = new TokenizerME(tokenModel);
//Retrieving the positions of the tokens
Span tokens[] = tokenizer.tokenizePos(sent);
//Getting the probabilities of the recent calls to tokenizePos() method
double[] probs = tokenizer.getTokenProbabilities();
//Printing the spans of tokens
for(Span token : tokens)
System.out.println(token +" "+sent.substring(token.getStart(), token.getEnd()));
System.out.println(" ");
for(int i = 0; i<probs.length; i++)
System.out.println(probs[i]);
}
}
निम्न आदेशों का उपयोग करके कमांड प्रॉम्प्ट से सहेजी गई जावा फ़ाइल को संकलित करें और निष्पादित करें -
javac TokenizerMEProbs.java
java TokenizerMEProbs
निष्पादित करने पर, उपरोक्त कार्यक्रम दिए गए स्ट्रिंग को पढ़ता है और वाक्यों को टोकता है और उन्हें प्रिंट करता है। इसके अलावा, यह टोकेनाइजरपोस () पद्धति के लिए सबसे हालिया कॉल से जुड़ी संभावनाओं को भी लौटाता है।
[0..5) Hello
[6..10) John
[11..14) how
[15..18) are
[19..22) you
[23..30) welcome
[31..33) to
[34..48) Tutorialspoint
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0