当前位置: 首页 > 知识库问答 >
问题:

Python:如何正确地将句子分成两句?

马航
2023-03-14

我有一个字符串在big_sentence变量。

大句子=“1.Lorem ipsum door sit amet,一位杰出的献身者,他是一位临时劳工和职业经理人。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除了偶尔出于不谨慎的原因,必须为动物的劳动负责。。。。。。。多洛·塞特·艾米特是一位杰出的献身者,他是一位临时劳工和职业经理人。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除了偶尔不轻率的行为外,还必须为自己的行为负责。”

我想有这样的分裂:

var_1="1.Lorem ipsum dolor坐在那里,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭在有限的条件下,在有限的条件下,在有限的条件下进行锻炼。杜伊斯奥特鲁尔杜洛在谴责在流行的VELIT ESSE CREAM多洛雷欧盟逃犯nulla pariatur。例外的情况下,不存在,必须在错误的地方。"

var_2="2.Lorem ipsum......... Dolor坐在这里,奉献我们的荣誉,我们的工作和机会。在有限的条件下,在有限的条件下,在有限的条件下进行锻炼。杜伊斯奥特鲁尔杜洛在谴责在流行的VELIT ESSE CREAM多洛雷欧盟逃犯nulla pariatur。例外的情况下,不存在,必须在错误的地方。"

我试着这样做:

big_string.split('.')

但big_句子中的问题是,我有“1”,“2”。而且在“2.Lorem ipsum”之后还有几个句号“…”

我如何才能实现我的目标?

共有3个答案

李勇
2023-03-14

如果情况不总是这样,请告诉我,但在这种情况下,有一个2.口述可以拆分的位置,因此您可以这样做:

big_string = "1.xxx.xxx.2.yyy.yyy."
var_1 = big_string[:big_string.find("2.")]
var_2 = big_string[big_string.find("2.")+2:]
施慈
2023-03-14

您最有可能使用正则表达式实现您想要的。如。

import re

split_sentences = re.split('(\d\.)', big_sentence) # \d matches any digit \. matches any '.' and the () will include the match in the output
filter_split_sentences = list(filter(None, split_sentences)) # filter empty ones
var_1 = ''.join(filter_split_sentences[0::1]) # take first two of list using slicing
var_2 = ''.join(filter_split_sentences[2::1]) # take second two of list using slicing
print(var_1)
print(var_2)

将输出:

>>> print(var_1)
1.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.2.Lorem ipsum ....... dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
>>> print(var_2)
2.Lorem ipsum ....... dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
羊舌承
2023-03-14

您可以尝试使用正则表达式。类似的东西。

import re

re.split("\d\.", big_sentence). # \d means a digit and \. means a dot

['',
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
'Lorem ipsum ....... dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.']
 类似资料:
  • 问题内容: 我有一个文本文件。我需要得到一个句子清单。 如何实现呢?有很多细微之处,例如缩写中使用了点。 我的旧正则表达式效果很差: 问题答案: 自然语言工具包满足你的需求。 该群组发布表明这样做: (我还没有尝试过!)

  • 我在将Vaadin与Spring应用程序集成时遇到一些问题。我的所有bean都在“rootcontext.xml”文件中。我可以通过实例化“rootcontext.xml”然后为我的一个服务类调用bean来调用bean。 我可以这样填充表,但这是调用服务类的正确方法吗?因为我有更多的表必须称之为这个。 这是我的UI类: 我的根上下文。xml文件位于目录/WEB-INF/spring/root上下文

  • 这是为了俄罗斯方块。玻璃(蓝色)位于左侧,控制(红色面板)位于右侧。换句话说,现在我只想有一个框架分成两部分:左边(较宽)部分是蓝色,右边部分是红色。没别的了。但我似乎没能做到这一点。 所以,我的逻辑是:让框架有FlowLayout。然后,我添加了两个面板,这意味着它们将被放在一个行中。

  • 问题内容: 我想从字符串中列出句子列表,然后将其打印出来。我不想使用NLTK来做到这一点。因此,它需要在句子末尾的句点上进行分隔,而不是小数点,缩写或名称的标题,或者句子中包含.com。这是对正则表达式的尝试,不起作用。 示例输出应如下所示 问题答案: (?<!\w.\w.)(?<![A-Z][a-z].)(?<=.|\?)\s 尝试这个。分割您的字符串。您还可以查看演示。 http://rege

  • 我想根据特殊字符(如“=”)将一个句子拆分为单词。我尝试了以下代码,但无法得到确切答案,请参阅我的代码: 代码的输出是: 0 C: D: E:=99.993340#0.000000#0.035810#0.000000#0.000179#0.000358#0.000000#0.000000#1.999614#3071.407671_Total=99.993340#0.000000#0.035810#

  • 我最近一直在试验Typescript装饰程序,试图解决应用程序中的一个“问题”。我正在使用JS桥向Android和iOS提供TS代码,目前我们声明如下函数: index.js 上述操作将使函数在网桥的本机端可用 我想写一个decorator应用于方法,它将在但我的任务失败了。 这是起作用的装饰师: 我如何添加另一个方法到函数?