ruby-on-rails – Rails gem将段落分成一系列句子
我试图将一个段落分成一系列句子,使每个句子组保持在N个字符之下.如果单个句子长于N,则应将其拆分为带有标点符号或空格作为分隔符的块.
例如,如果N = 50,则接下来的字符串
会成为
有没有可以帮助我实现这一目标的轨道宝石?我看了html_slicer,但我不确定它能处理上面的例子. 解决方法
有两个非平凡的任务来实现你的目标:
>将一个字符串拆分成句子 我认为第一个不容易从头开始实现,所以你最好的选择可能只是使用自然语言处理库,前提是你的“第三方语言处理服务”没有这样的功能.我不知道任何“rails gem”符合您的要求. 这里只是一个使用stanford-core-nlp将字符串拆分成句子的玩具示例. require 'stanford-core-nlp' text = "Lorem ipsum,sapien sodales elementum blandit. Fusce urna libero blandit eu aliquet ac rutrum vel tortor." pipeline = StanfordCoreNLP.load(:tokenize,:ssplit) a = StanfordCoreNLP::Annotation.new(text) pipeline.annotate(a) sentenses = a.get(:sentences).to_a.map &:to_s # Map with to_s if you want an array of sentence string. # => ["Lorem ipsum,consectetur elit.","Donec ut ligula.","Sed acumsan posuere tristique.","Sed et tristique sem.","Aenean sollicitudin,sapien sodales elementum blandit.","Fusce urna libero blandit eu aliquet ac rutrum vel tortor."] 第二个问题类似于自动换行,如果它确实是一个自动换行问题,它应该可以使用ActionView :: Helpers :: TextHelper.word_wrap等现有实现轻松解决. 我唯一的想法是首先对每个句子进行自动换行,然后用标点符号分割每一行,然后再次连接各个部分但限制长度.我想知道这是否会奏效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |