在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。
分句的关键是找到合适的结束符号,比如:中文里的 。,英文里的 . 等,而且,在这一点上中英也是有很大区分的。
这里介绍一种纯用 Python 实现的分句函数。
def cut_sentences(content): # 结束符号,包含中文和英文的 end_flag = ['?', '!', '.', '?', '!', '。', '…'] content_len = len(content) sentences = [] tmp_char = '' for idx, char in enumerate(content): # 拼接字符 tmp_char += char # 判断是否已经到了最后一位 if (idx + 1) == content_len: sentences.append(tmp_char) break # 判断此字符是否为结束符号 if char in end_flag: # 再判断下一个字符是否为结束符号,如果不是结束符号,则切分句子 next_idx = idx + 1 if not content[next_idx] in end_flag: sentences.append(tmp_char) tmp_char = '' return sentences content = '在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。' sentences = cut_sentences(content) print('\n\n'.join(sentences)) 在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。 本文会介绍 Python 是如何处理 分句 的。
这个函数可以通过修改 end_flag (结束符号),来自定义特定的句子切分方式,比如加入 ; 等符号。
当然,也可以用正则表达式来完成分句,使用 re.split 的方法。
import re def cut_sentences(content): sentences = re.split(r'(\.|\!|\?|。|!|?|\.{6})', content) return sentences content = content = '在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。' sentences = cut_sentences(content) print('\n\n'.join(sentences)) 在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。 本文会介绍 Python 是如何处理 分句 的。
推荐课程:python基础语法全讲解视频(马哥教育2014版)
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!