在Python里如何切分中文文本句子(分句)、英文文本分句(切分句子) 您所在的位置:网站首页 怎么把文本拆开 在Python里如何切分中文文本句子(分句)、英文文本分句(切分句子)

在Python里如何切分中文文本句子(分句)、英文文本分句(切分句子)

2023-06-02 09:57| 来源: 网络整理| 查看: 265

在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 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 是如何处理 分句 的 。

这里还可以安利大家一个非常不错的处理中文标点符号的第三库: zhon,可以通过 pip install zhon 安装,功能也算非常丰富。

我们使用 zhon 来实现中文分句。

import re import zhon rst = re.findall(zhon.hanzi.sentence, '我买了一辆车。妈妈做的菜,很好吃!') print(rst) ['我买了一辆车。', '妈妈做的菜,很好吃!']

大家可以阅读 zhon 的官方文档,了解更多的使用案例。

安利大家一本掘金小册《深入理解NLP的中文分词:从原理到实践》,让你从零掌握中文分词技术,踏入NLP大门。

如果因为以上内容对你有所帮助,希望点个赞、评个论、转个发,关个注,多谢多谢!

此公众号每周分享一篇干货文章,实实在在把一个课题说明白,讲清楚,望关注! 惠惠周刊



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有