机器学习笔记-文本分类(二)jieba分词

分词就是词语切分了,关于分词的理论实现,以后再继续学习。此处用python的jieba分词工具直接分词。

jieba分词库的安装

本人用的是python3.6,windows环境,直接在cmd命令窗口下输入:

pip install jieba

发现自动下载安装:jieba-0.38,这个版本对python2和python3都兼容。

jieba分词在python中使用

支持三种分词模式:

  • 精确模式,试图将句子最精确地切开,适合文本分析;
  • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

分词算法

  • 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)
  • 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
  • 对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法

分词实现

jieba.cut 方法有三个输入参数:

  • 分词的字符串
  • cut_all 参数用来控制是否采用全模式
  • HMM参数,是否使用HMM
    jieba.cut_for_sesarch 方法接受两个参数
  • 分词的字符串
  • 是否使用HMM

代码实现,在python3环境下试了,没问题

import jieba 

seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式

seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))

上面的 "/ ",“, ” 斜杠空格,逗号空格,是分词以此来分来,结果如下

Paste_Image.png

分词结果中,“杭州”一词没有在词典中,也被识别出来了

文档中的分词

文档中分词就是先读文档,然后再调用分词,最后再保存了

import jieba
def readFile(path):
    with open(path,'r',errors='ignore') as file:
        content = file.read()
        return content
def saveFile(path,result,errors='ignore'):
    with open(path,'w') as file:
        file.write(result)

content = readFile("E:/test.txt")#调用上面函数读取文件的内容
result = (str(content)).replace("\r\n","").strip()#删除多余空行与空格
cutResult = jieba.cut(result)#默认方式分词,分词结果用空格隔开
saveFile("E:/result"," ".join(cutResult))#调用上面函数保存到文件

参考文献

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关键词:windows平台下jieba安装、三种模式比较、自定义词典、停用词语料、词频统计、词云生成 jieba简...
    秋灯锁忆阅读 4,496评论 0 2
  • 1.安装及入门介绍 推荐直接 pip install jieba 结巴中文分词涉及到的算法包括: (1)基于Tri...
    MiracleJQ阅读 13,296评论 0 5
  • 注:参考文档 一、在线词云图工具# (1)、使用### 在正式使用jieba分词之前,首先尝试用在线分词工具来将自...
    DearIreneLi阅读 6,169评论 1 8
  • 代码重签名 签名机制 iOS签名需要用到codesign这个命令,了解这个命令的用法可以增加我们对签名机制的了解 ...
    观星阅读 2,174评论 0 1
  • 对于一件事情不同的人会有不同的见解或者情绪,有人可能开心,有人可能愤怒,有人可能激动,有人可能担心,有人可能无所谓...
    咩一阅读 193评论 0 0