Я столкнулся с проблемой с аннотатором Стэнфорда.В качестве входных данных я получил текст, который содержит предложения, но в некоторых его частях нет пробела после точки.Вот так:
Собака любит кошку. Кошка любит мышь.Мышь ненавидит всех.
Поэтому, когда я пытаюсь использовать SentenceAnnotator - я получаю 2 предложения
Собака любит кошку. Кошка любит мышь.
Мышь ненавидит всех.
Вот мой код
Annotation doc = new Annotation(t);
Properties props = new Properties();
props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner,parse,coref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
pipeline.annotate(doc);
List<CoreMap> sentences = doc.get(CoreAnnotations.SentencesAnnotation.class);
Я также пытался добавить свойство
props.setProperty("ssplit.boundaryTokenRegex", "\\.");
, но безрезультатно.
Может быть, я что-то упустил?Спасибо!
UPD Также я попытался токенизировать текст с помощью PTBTokenizer
PTBTokenizer ptbTokenizer = new PTBTokenizer(
new FileReader(classLoader.getResource("simplifiedParagraphs.txt").getFile())
,new WordTokenFactory()
,"untokenizable=allKeep,tokenizeNLs=true,ptb3Escaping=true,strictTreebank3=true,unicodeEllipsis=true");
List<String> strings = ptbTokenizer.tokenize();
, но токенизатор считает, что cat.Cat - это одно слово и не разделяет его.