OpenNLP - Cümleleri Ayrıştırma
OpenNLP API kullanarak verilen cümleleri ayrıştırabilirsiniz. Bu bölümde, OpenNLP API kullanılarak ham metnin nasıl ayrıştırılacağını tartışacağız.
OpenNLP Kitaplığını Kullanarak Ham Metni Ayrıştırma
Cümleleri algılamak için, OpenNLP önceden tanımlanmış bir model kullanır; en-parserchunking.bin. Bu, verilen ham metni ayrıştırmak için eğitilmiş önceden tanımlanmış bir modeldir.
Parser sınıfı opennlp.tools.Parser paket ayrıştırma bileşenlerini tutmak için kullanılır ve ParserTool sınıfı opennlp.tools.cmdline.parser paket içeriği ayrıştırmak için kullanılır.
Aşağıda, verilen ham metni kullanarak ayrıştıran bir program yazmak için izlenecek adımlar verilmiştir. ParserTool sınıf.
Adım 1: Modeli yükleme
Metni ayrıştırma modeli, adlı sınıf tarafından temsil edilir. ParserModelpakete ait olan opennlp.tools.parser.
Bir jetonlaştırıcı modeli yüklemek için -
Oluşturduğunuz bir InputStream modelin nesnesi (FileInputStream öğesini örnekleyin ve modelin yolunu String biçiminde yapıcısına iletin).
Örnekleyin ParserModel sınıf ve geç InputStream (nesne) modelinin yapıcısına bir parametre olarak aşağıdaki kod bloğunda gösterildiği gibi.
//Loading parser model
InputStream inputStream = new FileInputStream(".../en-parserchunking.bin");
ParserModel model = new ParserModel(inputStream);
Adım 2: Parser sınıfının bir nesnesini oluşturma
Parser paketin sınıfı opennlp.tools.parserayrıştırma bileşenlerini tutmak için bir veri yapısını temsil eder. Statik kullanarak bu sınıfın bir nesnesini oluşturabilirsiniz.create() yöntemi ParserFactory sınıf.
Çağırın create() yöntemi ParserFactory önceki adımda oluşturulan model nesnesini aşağıda gösterildiği gibi ileterek -
//Creating a parser Parser parser = ParserFactory.create(model);
3. Adım: Cümlenin ayrıştırılması
parseLine() yöntemi ParserToolsınıfı, ham metni OpenNLP'de ayrıştırmak için kullanılır. Bu yöntem kabul eder -
ayrıştırılacak metni temsil eden bir String değişkeni.
ayrıştırıcı nesnesi.
gerçekleştirilecek ayrıştırma sayısını temsil eden bir tam sayı.
Aşağıdaki parametreleri cümleyi ileterek bu yöntemi çağırın: önceki adımlarda oluşturulan ayrıştırma nesnesi ve yürütülecek gerekli çözümleme sayısını temsil eden bir tam sayı.
//Parsing the sentence
String sentence = "Tutorialspoint is the largest tutorial library.";
Parse topParses[] = ParserTool.parseLine(sentence, parser, 1);
Example
Verilen ham metni ayrıştıran program aşağıdadır. Bu programı adıyla bir dosyaya kaydedinParserExample.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();
}
}
Kaydedilen Java dosyasını aşağıdaki komutları kullanarak Komut isteminden derleyin ve yürütün -
javac ParserExample.java
java ParserExample
Yürütüldüğünde, yukarıdaki program verilen ham metni okur, ayrıştırır ve aşağıdaki çıktıyı görüntüler -
(TOP (S (NP (NN Tutorialspoint)) (VP (VBZ is) (NP (DT the) (JJS largest) (NN
tutorial) (NN library.)))))