我有一个基本上包含一个段落的字符串。可能会有换行符。现在我只想得到字符串中的第一句话。我以为我会尝试
indexOf(". ")
那是一个带空格的点。
问题是这在诸如firstName. LastName
.
我正在使用.Net。有没有一种好的方法可以实现这一目标?我还在标记 Java 以查看是否可以缩小搜索范围。
我有一个基本上包含一个段落的字符串。可能会有换行符。现在我只想得到字符串中的第一句话。我以为我会尝试
indexOf(". ")
那是一个带空格的点。
问题是这在诸如firstName. LastName
.
我正在使用.Net。有没有一种好的方法可以实现这一目标?我还在标记 Java 以查看是否可以缩小搜索范围。
您需要的是自然语言解析 (NLP) 工具包。自己写一个很难,因为它需要大量的研究和数据收集,但幸运的是它已经为你完成了。
。网
SharpNLP 是一组用 C# 编写的自然语言处理工具。目前它提供以下 NLP 工具:
- 分句器
- ...
爪哇
您需要以某种方式标记句子的结尾。正如您已经注意到的“。” 没有这样做,因为它可以以不同的方式使用(“嗨,我的名字是 Pudelhund 先生。”)。如果可能的话,我建议使用一些不会使用的标志。
编辑:另一种方法也不错,但方法更复杂。如果您无法编辑正在使用的字符串,那么该方法胜过我的;)
这可以使用非常简单的 String.substring() 实现
String example = "Hello world. This is example. " ;
System.out.print(example.substring(0, example.indexOf(".")+1)); // --> Hello world.