找到段落中的第一句话

时间:2012-05-01 18:22:40

标签: java .net text-segmentation

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

indexOf(". ") 

这是一个带空格的点。

问题在于,这不会在firstName. LastName等行上发挥作用。

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

3 个答案:

答案 0 :(得分:2)

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

<强> .NET

  

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

     
      
  • 句子分割器
  •   
  • ...
  •   

<强>爪哇

答案 1 :(得分:2)

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

编辑:其他method也很好,但更复杂。如果你不能编辑你正在使用的字符串,那么该方法胜过我的;)

答案 2 :(得分:2)

这可以通过String.substring()

使用非常简单的实现
String example = "Hello world. This is example. " ;
System.out.print(example.substring(0, example.indexOf(".")+1)); // --> Hello world.