1

我有一个基本上包含一个段落的字符串。可能会有换行符。现在我只想得到字符串中的第一句话。我以为我会尝试

indexOf(". ") 

那是一个带空格的点。

问题是这在诸如firstName. LastName.

我正在使用.Net。有没有一种好的方法可以实现这一目标?我还在标记 Java 以查看是否可以缩小搜索范围。

4

3 回答 3

2

您需要的是自然语言解析 (NLP) 工具包。自己写一个很难,因为它需要大量的研究和数据收集,但幸运的是它已经为你完成了。

。网

SharpNLP 是一组用 C# 编写的自然语言处理工具。目前它提供以下 NLP 工具:

  • 分句器
  • ...

爪哇

于 2012-05-01T18:27:11.167 回答
2

您需要以某种方式标记句子的结尾。正如您已经注意到的“。” 没有这样做,因为它可以以不同的方式使用(“嗨,我的名字是 Pudelhund 先生。”)。如果可能的话,我建议使用一些不会使用的标志。

编辑:另一种方法也不错,但方法更复杂。如果您无法编辑正在使用的字符串,那么该方法胜过我的;)

于 2012-05-01T18:27:23.383 回答
2

这可以使用非常简单的 String.substring() 实现

String example = "Hello world. This is example. " ;
System.out.print(example.substring(0, example.indexOf(".")+1)); // --> Hello world.
于 2017-05-13T19:27:46.203 回答