手记实用系列文章:

1 结巴分词和自然语言处理HanLP处理手记

2 Python中文语料批量预处理手记

3 自然语言处理手记

4 Python中调用自然语言处理工具HanLP手记

5 Python中结巴分词使用手记

代码封装类:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import jieba
import os
import re
import time
from jpype import *'''
title:利用结巴分词进行文本语料的批量处理1 首先对文本进行遍历查找2 创建原始文本的保存结构3 对原文本进行结巴分词和停用词处理4 对预处理结果进行标准化格式,并保存原文件结构路径
author:白宁超
myblog:http://www.cnblogs.com/baiboy/
time:2017年4月28日10:03:09
''''''
创建文件目录
path:根目录下创建子目录
'''
def mkdir(path):# 判断路径是否存在isExists=os.path.exists(path)# 判断结果if not isExists:os.makedirs(path)print(path+' 创建成功')return Trueelse:passprint('-->请稍后,文本正在预处理中...')'''
结巴分词工具进行中文分词处理:
read_folder_path:待处理的原始语料根路径
write_folder_path 中文分词经数据清洗后的语料
'''
def CHSegment(read_folder_path,write_folder_path):stopwords ={}.fromkeys([line.strip() for line in open('../Database/stopwords/CH_stopWords.txt','r',encoding='utf-8')]) # 停用词表# 获取待处理根目录下的所有类别folder_list = os.listdir(read_folder_path)# 类间循环# print(folder_list)for folder in folder_list:#某类下的路径new_folder_path = os.path.join(read_folder_path, folder)# 创建一致的保存文件路径mkdir(write_folder_path+folder)#某类下的保存路径save_folder_path = os.path.join(write_folder_path, folder)#某类下的全部文件集# 类内循环files = os.listdir(new_folder_path)j = 1for file in files:if j > len(files):break# 读取原始语料raw = open(os.path.join(new_folder_path, file),'r',encoding='utf-8').read()# 只保留汉字# raw1 = re.sub("[A-Za-z0-9\[\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\'\,\[\]\.\<\>\/\?\~\!\@\#\\\&\*\%]", "", raw)# jieba分词wordslist = jieba.cut(raw, cut_all=False) # 精确模式# 停用词处理cutwordlist=''for word in wordslist:if word not in stopwords and word=="\n":cutwordlist+="\n" # 保持原有文本换行格式elif len(word)>1 :cutwordlist+=word+"/" #去除空格#保存清洗后的数据with open(os.path.join(save_folder_path,file),'w',encoding='utf-8') as f:f.write(cutwordlist)j += 1'''
结巴分词工具进行中文分词处理:
read_folder_path:待处理的原始语料根路径
write_folder_path 中文分词经数据清洗后的语料
'''
def HanLPSeg(read_folder_path,write_folder_path):startJVM(getDefaultJVMPath(), "-Djava.class.path=C:\hanlp\hanlp-1.3.2.jar;C:\hanlp", "-Xms1g", "-Xmx1g") # 启动JVM,Linux需替换分号;为冒号:stopwords ={}.fromkeys([line.strip() for line in open('../Database/stopwords/CH_stopWords.txt','r',encoding='utf-8')]) # 停用词表# 获取待处理根目录下的所有类别folder_list = os.listdir(read_folder_path)# 类间循环# print(folder_list)for folder in folder_list:#某类下的路径new_folder_path = os.path.join(read_folder_path, folder)# 创建一致的保存文件路径mkdir(write_folder_path+folder)#某类下的保存路径save_folder_path = os.path.join(write_folder_path, folder)#某类下的全部文件集# 类内循环files = os.listdir(new_folder_path)j = 1for file in files:if j > len(files):break# 读取原始语料raw = open(os.path.join(new_folder_path, file),'r',encoding='utf-8').read()# HanLP分词HanLP = JClass('com.hankcs.hanlp.HanLP')wordslist = HanLP.segment(raw)#保存清洗后的数据wordslist1=str(wordslist).split(",")# print(wordslist1[1:len(wordslist1)-1])flagresult=""# 去除标签for v in wordslist1[1:len(wordslist1)-1]:if "/" in v:slope=v.index("/")letter=v[1:slope]if len(letter)>0 and '\n\u3000\u3000' in letter:flagresult+="\n"else:flagresult+=letter +"/" #去除空格# print(flagresult)with open(os.path.join(save_folder_path,file),'w',encoding='utf-8') as f:f.write(flagresult.replace(' /',''))j += 1shutdownJVM()if __name__ == '__main__' :print('开始进行文本分词操作:\n')t1 = time.time()dealpath="../Database/SogouC/FileTest/"savepath="../Database/SogouCCut/FileTest/"# 待分词的语料类别集根目录read_folder_path = '../Database/SogouC/FileNews/'write_folder_path = '../Database/SogouCCut/'#jieba中文分词CHSegment(read_folder_path,write_folder_path) #300个txtq其中结巴分词使用3.31秒HanLPSeg(read_folder_path,write_folder_path) #300个txt其中hanlp分词使用1.83秒t2 = time.time()print('完成中文文本切分: '+str(t2-t1)+"秒。")

运行效果:

结巴分词和自然语言处理HanLP处理手记相关推荐

  1. ik 和hanlp_结巴分词和自然语言处理HanLP处理手记

    手记实用系列文章: 代码封装类: #!/usr/bin/env python # -*- coding:utf-8 -*- import jieba import os import re impor ...

  2. python结巴分词去掉停用词、标点符号、虚词_NLP自然语言处理入门-- 文本预处理Pre-processing...

    引言 自然语言处理NLP(nature language processing),顾名思义,就是使用计算机对语言文字进行处理的相关技术以及应用.在对文本做数据分析时,我们一大半的时间都会花在文本预处理 ...

  3. 结巴分词优点_中文分词概述及结巴分词原理

    词是中文表达语义的最小单位,中文分词是中文文本处理的一个基础步骤,分词的结果对中文信息处理至为关键. 本文先对中文分词方法进行概述,然后简单介绍结巴分词背后的原理. 1. 中文分词概述 中文分词根据实 ...

  4. jieba结巴分词--关键词抽取_结巴中文分词原理分析2

    作者:白宁超,工学硕士,现工作于四川省计算机研究院,著有<自然语言处理理论与实战>一书,作者公众号:机器学习和自然语言处理(公众号ID:datathinks) 结巴分词详解1中文分词介绍 ...

  5. 结巴分词关键词相似度_jieba+gensim 实现相似度

    相似度 自然语言处理(NLP) : 大概意思就是 让计算机明白一句话要表达的意思,NLP就相当于计算机在思考你说的话,让计算机知道"你是谁","你叫啥",&qu ...

  6. 结巴分词python安装_“结巴”分词:做最好的Python分词组件

    python 结巴分词学习 https://www.toutiao.com/a6643201326710784520/ 2019-01-06 10:14:00 结巴分词(自然语言处理之中文分词器) j ...

  7. mysql使用结巴语句_结巴分词 java 高性能实现,是 huaban jieba 速度的 2倍

    Segment Segment 是基于结巴分词词库实现的更加灵活,高性能的 java 分词实现. 创作目的 分词是做 NLP 相关工作,非常基础的一项功能. jieba-analysis 作为一款非常 ...

  8. 学习笔记(2)Python——结巴分词

    结巴分词模块的简单应用 张华平NShort中文分词算法是目前大规模中文分词的主流算法,下面将介绍以其为核心的结巴分词算法.该模块在Python中使用机及其简单.不需要及其繁琐的安装步骤. 结巴分词支持 ...

  9. 对Python中文分词模块结巴分词算法过程的理解和分析

    结巴分词是国内程序员用python开发的一个中文分词模块, 源码已托管在github, 地址在: https://github.com/fxsjy/jieba 作者的文档写的不是很全, 只写了怎么用, ...

最新文章

  1. fopen 中 按文本读写与按二进制读写 实例
  2. socket connect阻塞和非阻塞处理
  3. php用重写算出圆柱体的体积,圆柱的体积
  4. 计网 --- 域名服务系统:因特网的目录服务
  5. 将JacpFX客户端与JSR 356 WebSockets一起使用
  6. 【第十六章】模板实参推断
  7. MySQL命令行导出数据库
  8. 织梦首页去掉inde.html,dedecms 首页删除index.html路径的方法
  9. crawl spider
  10. Unity-MRTK开发(一)环境配置
  11. n个物品,Vi的价值,Ti有n个,求所有的可能的价值:
  12. 树莓派4支持多大tf卡_树莓派raspberry4B入坑指南 part-0
  13. 怎么更改计算机的搜索设置,电脑浏览器默认搜索引擎的设置不了怎么办
  14. JAVA JSP javaweb餐厅点餐系统源码(点餐系统)点餐系统网上订餐系统在线订餐系统
  15. python中fbncc_PythonBNCCorpusReader不能处理完整的bnc语料库
  16. cesium雷达图_Cesium专栏-气象雷达动图(附源码下载)
  17. 计算机中心pdca,信息中心日常运维工作PDCA持续改进.docx
  18. 16. Segmentation
  19. C语言实现之数字中的最大数字组合
  20. EKL日志分析平台-kibana数据可视化

热门文章

  1. Play框架拾遗之五:其他知识点
  2. Lync2013 恢复-整残之后如何重新安装
  3. [推荐]最强最全的电脑硬件知识
  4. 给你的开源项目加一个绶带吧
  5. Unity3D-RayMarch-几何图元0
  6. 2017年智能家居将从概念走进现实
  7. win 下squid的配置
  8. 从算法+数据结构到MVC
  9. 实战经验:MySQL 构建高并发网站性能优化
  10. SRM 397(1-250pt)