Zdanie parsera Parser Stanforda przekazując ciąg nie tablicę ciągów
Czy możliwe jest przeanalizowanie zdania za pomocą analizatora składni Stanforda przez przekazanie ciągu znaków, a nie tablicy ciągów. Oto przykład, który podali w swoim krótkim samouczku (Zobacz Dokumenty):
Oto przykład:
import java.util.*;
import edu.stanford.nlp.ling.*;
import edu.stanford.nlp.trees.*;
import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
class ParserDemo {
public static void main(String[] args) {
LexicalizedParser lp = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz");
lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"});
String[] sent = { "This", "is", "an", "easy", "sentence", "." }; // This is the sentence to be parsed
List<CoreLabel> rawWords = Sentence.toCoreLabelList(sent);
Tree parse = lp.apply(rawWords);
parse.pennPrint();
System.out.println();
TreebankLanguagePack tlp = new PennTreebankLanguagePack();
GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
List<TypedDependency> tdl = gs.typedDependenciesCCprocessed();
System.out.println(tdl);
System.out.println();
}
}
Próbuję sprawdzić, czy mogę to zrobić, ponieważ muszę pobrać zdania z bazy danych MySQL i przeanalizować je bezpośrednio jako łańcuchy. Mógłbym tokezować zdania i dodawać słowa, przecinki i kropkę do tablicy ciągów, jednak aby tokenizować te zdania, musiałbym użyć Tokenizera Stanforda, PTBTokenizer. Konstruktor tego tokenizera wymieniony tutaj
wymaga obiektu „java.io.FileReader”, ale nie czytam pliku z katalogu. Zastanawiam się więc, czy istnieje sposób na bezpośrednie przeanalizowanie zdania poprzez przekazanie ciągu znaków lub czy mogę rozwiązać mój problem, tokenizując zdanie bez konieczności użycia obiektu „java.io.FileReader”.