【问题标题】:Finding first sentence in a paragraph在段落中查找第一句话
【发布时间】:2012-05-11 05:57:22
【问题描述】:

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

indexOf(". ") 

这是一个带空格的点。

问题是这在 firstName. LastName 这样的行上不起作用。

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

【问题讨论】:

  • 如果您对自然语言解析不感兴趣,indexOf() 是您最好的选择。输入段落有什么限制吗?就像所有句子都以“。”结尾一样。或者他们也可以结束?和!。

标签: java .net text-segmentation


【解决方案1】:

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

.NET

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

  • 分句器
  • ...

Java

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      String example = "Hello world. This is example. " ;
      System.out.print(example.substring(0, example.indexOf(".")+1)); // --> Hello world.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-05
        • 1970-01-01
        • 1970-01-01
        • 2013-08-13
        • 1970-01-01
        • 1970-01-01
        • 2014-10-22
        • 1970-01-01
        相关资源
        最近更新 更多