我正在编写一个解析 epub 2 的 python 脚本,我正在努力实现它,以便我可以将单词、句子和段落拆分为它们自己的对象......我已经让单词和段落工作了,但问题在于在句子中,因为有时会有“......” 在句末作为分隔符。但问题是我正在逐个字符解析,所以当我点击“。”,“!”或“?”时 我的系统将其视为句子的结尾......我正在考虑编写一些复杂的 if 语句来读取前一个字符以查看它是空格还是句子分隔符,但我尝试过的每件事都不起作用。对此的任何建议将不胜感激。我应该提到的一件事是我没有使用正则表达式,我也不会,
这是我一直在尝试使用的代码:
def add_until(self):
char_list = []
end_sentence = False
for char in self.source:
if isinstance(char, Character) or isinstance(char, EntityRef):
char_list.append(char)
if len(char_list) >= 2 and char_list[-2].is_whitespace or len(char_list) >= 2 and char_list[-2].split_sent and char.is_whitespace or char.split_sent:
char_list.append(char)
if len(char_list) >= 2 and char_list[-2].is_whitespace and char.split_sent == False and char.is_whitespace == False:
char_list.pop() # pop's the last space off because it should be part of the next sentience.