问题描述
我想将段落分成句子。例如:“玛丽有一只小羊羔。它的羊毛是白色的。”我想将其拆分为: “玛丽有只小羊羔。” “它的羊毛是白色的。”
目前,我尝试使用text.split(“ [。]”);并得到结果: “玛丽有只小羊羔”(没有句号。我需要它) “它的羊毛是白色的”(句子前有空格,但没有句号)
我打算做的就是将此段落拆分为适当的句子,然后放入数组中。
String text = sc.nextLine();
String[] sentence = text.split("[.]");
请帮助!
解决方法
您可以仅添加句号'。到拆分后的字符串。
类似的东西
String[] splitString = theString.split("[.]");
for(String s : splitString){
s += ".";
}
在那个方向上的东西。
,像这样的Somethig应该可以工作:
public class Main {
public static void main(String[] args) {
String paragraph = "Mary had a little lamb. Its fleece was white.";
String sentences[] = paragraph.split("[.]");
for (String sentence:sentences){
System.out.println(sentence);
}
}
}
,
假设至少有可能句子拆分不是自然语言处理的最后要求,则应考虑使用natural language processing (NLP)之类的OpenNLP库。多亏了Gate project的English language processing pipeline available as a web page,您可以通过Web界面试用OpenNLP。确保使用“自定义注释”按钮来查看句子结构。
,假设这句话:
String sResult = "This is a test. This is a T.L.A. test.";
所以您最好尝试一下
String sResult = "This is a test. This is a T.L.A. test.";
String[] sSentence = sResult.split("(?<=[a-z])\\.\\s+");
结果:
This is a test
This is a T.L.A. test.
请注意,有些缩写词不以大写字母结尾,例如缩写词,先生等。还有一些句子也不以句号结尾!