【问题标题】:Grouping text into sections algorithm将文本分组到部分算法
【发布时间】:2012-04-05 05:53:53
【问题描述】:

任务是根据对每个部分设置的各种限制将给定的文本字符串分组为部分。假设我们有一个字符串 S,它是“Lorem ipsum dolorem”。我们也有 3 个部分。每个部分都有限制,可以限制该部分中的文本数量。这些限制可以根据字符数或单词数来指定。例如,第一部分最少可以有 5 个字符,最多可以有 10 个字符。第二部分最少可以包含一个单词,最多可以包含五个单词,每个单词的长度在 2 到 10 个字符之间。第三部分可以有与第一部分相同的限制。

我们需要使用所有可用的文本,否则没有分组解决方案。单词不能分开(所以我们不能在分组时将一个单词分成多个部分。)如果我们在分组中将句子放在一起,则解决方案会更好,所有其他条件都相同。

对文本进行分组最有效的方法是什么?

【问题讨论】:

  • 你在寻找什么,找到给定文本的限制,或者实现给定的限制?顺便说一句:家庭作业?
  • 实施给定的限制。不,不是家庭作业。
  • 如果你能举一些例子会有所帮助。

标签: algorithm


【解决方案1】:

如果只计算字符/数字和单词,是正则表达式的情况:http://en.wikipedia.org/wiki/Regular_expressions

编辑

例如,考虑以下几点:

 sed -E -e 's/([a-z]{2,10}) (([a-z]{2,4} ){1,2})([a-z]{2,10})/G:\1 G:\2
 G:\4/'

如果将此应用于“aaa bb bbbb ccccc”,则会得到:

 G:aaa G:bb bbbb  G:ccccc

【讨论】:

  • 我不这么认为。每个部分中可以有一系列单词或字符,并且某些解决方案比其他解决方案更可取。例如,最好将句子分组,其他条件相同。
  • 我不明白,您所说的“每个部分中的一系列单词或字符”是什么意思。每个正则表达式都可以覆盖范围,不是吗?关于偏好:首先测试 nices,如果不匹配,使用您的第二个选择等。但是,您可以使用 awk 之类的正则表达式工具来执行此操作,并为不同类型的匹配分配不同的值。
  • 我在答案中举了一个例子。是你的意思,还是我错过了你的问题的重点?
  • 这是有道理的。它能给出所有可能的解决方案吗?
  • 不适用于 sed。但是,这是可能的,请参阅stackoverflow.com/questions/6643730/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 2020-11-23
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
相关资源
最近更新 更多