人工智能AI培训_中文文本分词

  人工智能AI培训_中文文本分词

  1.实验简介

  中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂得多、困难得多。

  在自然语言处理技术中,中文处理技术比西文处理技术要落后很大一段距离,许多西文的处理方法中文不能直接采用,就是因为中文必需有分词这道工序。中文分词是其他中文信息处理的基础,比如搜索引擎、机器翻译、语音合成、自动分类、自动摘要、自动校对等,都需要用到分词。

  2.实验目的

  本章的主要内容就是基于Python3.6和中文分词框架jieba进行简单的分词操作演练,并对比多种分词模式的分词效果;本章总共4个小实验,前三个是对3种分词模式的简单演示,第4个案例主要是基于txt文本数据进行全文的分词展示。

  3.实验预备知识

  本实验操作需要学员有3方面的预备知识做支撑。

  自然语言处理中分词技术的相关理论基础支撑,分词是自然语言处理中最基础的操作,可用于多种自然语言处理任务;

  有相应Python语言实战基础,对Python基础的数据格式,数据类型以及相关的字符处理函数有所了解,并熟悉对文件的读写操作。

  对中文分词框架jieba当中的分词模块有相应的了解,主要是对分词函数及其相应参数有所了解。

  4.安装相关模块

  ​安装jieba分词模块。点击windows系统左下角的“开始”按钮,进入菜单列表:

人工智能AI培训_中文文本分词_第1张图片
​图1-1Anaconda Prompt

  ​点击“Anaconda Prompt”按钮,进入Anaconda系统:

人工智能AI培训_中文文本分词_第2张图片
图1-2Anaconda 环境

  ​两种安装安装方式,基于Anaconda的conda install jieba和基于Python的pip install jieba,两种都可以使用,操作如下:

人工智能AI培训_中文文本分词_第3张图片
​图1-3安装jieba

  ​同样的操作流程,其他需要的Python框架安装也是如此。

  5.实验步骤

  ​本章内容包括4个小操作,都是基于jieba分词进行操作,其中结巴分词包括三种分词模式,下面就进行一一演示。具体如下:

    ​​jieba的精确分词模式实现;

    ​jieba的全分词模式实现;

    ​jieba的搜索分词模式实现;

    ​基于jieba的文本分词实现;

  ​5.1.精确模式分词

代码:

# 导入模块

import jieba

import warnings

# 忽略警告

warnings.simplefilter('ignore')

# 精确模式

print("----精确模式:----")

# 分词语料

s = u'华为合作伙伴网络是华为与合作伙伴之间的协作框架,包含一系列的合作伙伴计划。'

# 精确分词

cut = jieba.cut(s, cut_all = False, HMM=False)

print(' '.join(cut))

结果:

----精确模式:----

华为 合作伙伴 网络 是 华为 与 合作伙伴 之间 的 协作 框架 , 包含 一系列 的 合作伙伴 计划 。

5.2.全模式分词

代码:

# 全模式

print("----全模式:----")

# 全模式分词和HMM模式对比

print(' '.join(jieba.cut(s, cut_all = True)))

print(' '.join(jieba.cut(s, cut_all = False, HMM=False)))

结果:

----全模式:----

华为 合作 合作伙伴 伙伴 网络 是 华为 与 合作 合作伙伴 伙伴 之间 的 协作 框架   包含 一系 一系列 系列 的 合作 合作伙伴 伙伴 计划

华为 合作伙伴 网络 是 华为 与 合作伙伴 之间 的 协作 框架 , 包含 一系列 的 合作伙伴 计划 。

5.4.文本文件分词

代码:

# 文本分词

old_file = "../data/华为.txt"

new_file = "../data/华为cut.txt"

# 读取数据

with  open(old_file, 'r') as f:

text = f.read()

# 分词

new_text = jieba.cut(text, cut_all=False)

# 去掉标点符号

str_out = ' '.join(new_text).replace(',', '').replace('。', '').replace('?', '').replace('!', '').replace('“', '').replace('”', '').replace(':','').replace('…', '').replace('(', '').replace(')', '').replace('—', '').replace('《', '').replace('》', '').replace('、', '').replace('‘', '').replace('’', '').replace('-', '').replace('\n', '')

# 数据写入和保存

With open(new_file, 'w', encoding='utf-8') as fo:

fo.write(str_out)

# 结果查看

with open(new_file, "r", encoding="utf-8") as f:

print(f.readline(1000))

结果:

公司简介  华为 是 全球 领先 的 ICT  信息 与 通信  基础设施 和 智能 终端 提供商  致力于 把 数字 世界 带入 每个 人  每个 家庭  每个 组织  构建 万物 互联 的 智能 世界  我们 在 通信 网络  IT  智能 终端 和 云 服务 等 领域 为 客户 提供 有 竞争力  安全 可信赖 的 产品  解决方案 与 服务  与 生态 伙伴 开放 合作  持续 为 客户 创造 价值  释放 个人 潜能  丰富 家庭 生活  激发 组织 创新  华为 坚持 围绕 客户 需求 持续 创新  加大 基础 研究 投入  厚积薄发  推动 世界 进步  华为 成立 于 1987 年  是 一家 由 员工 持有 全部 股份 的 民营企业  目前 有 18 万 员工  业务 遍及 170 多个 国家 和 地区    我们 为 世界 带来 了 什么   为 客户 创造 价值  华为 和 运营商 一起  在 全球 建设 了 1 , 500 多张 网络  帮助 世界 超过 三分之一 的 人口 实现 联接  华为 携手 合作伙伴  为 政府 及 公共事业 机构  金融  能源  交通  制造 等 企业 客户  提供 开放  灵活  安全 的 端 管云 协同 ICT 基础设施 平台  推动 行业 数字化 转型 ; 为云 服务 客户 提供 稳定 可靠  安全 可信 和 可 持续 演进 的 云 服务  华为 智能 终端 和 智能手机  正在 帮助 人们 享受 高品质 的 数字 工作  生活 和 娱乐 体验   推动 产业 良性 发展  华为 主张 开放  合作  共赢  与 客户 合作伙伴 及友商 合作 创新  扩大 产业 价值  形成 健康 良性 的 产业 生态系统  华为 加入 360 多个 标准 组织  产业 联盟 和 开源 社区  积极参与 和 支持 主流 标准 的 制定  构建 共 赢 的 生态圈  我们 面向 云 计算  NFV / SDN  5G 等 新兴 热点 领域  与 产业 伙伴 分工协作  推动 产业 持续 良性 发展   促进 经济 增长  华为 不仅 为 所在 国家 带来 直接 的 税收 贡献  促进 当地 就业  形成 产业链 带动 效应  更 重要 的 是 通过 创新 的 ICT 解决方案 打造 数字化 引擎  推动 各行各业 数字化 转

  6.实验小结

  本章主要是基于中文分词框架jieba进行多种jieba分词模式的演练和操作,由于每种模式的分词效果各不相同,所以可以根据不同的需求进行相应模式的选择。

你可能感兴趣的:(人工智能AI培训_中文文本分词)