用python做中文自然语言预处理
这篇博客根据中文自然语言预处理的步骤分成几个板块。以做LDA实验为例,在处理数据之前,会写一个类似于实验报告的东西,用来指导做实验,OK,举例:
一,实验数据预处理(python,结巴分词)
1.对于爬取的评论做分词和词性标注处理(mac-result.txt)
2.对于结果只用公版的停用词表去停用词,不进行人工筛选(mac-result1.txt)
3.保留:名词,名词短语(两者为评论描述主题)
形容词,动词,动词短语(对主题的描述)以及其他可能有实意的词
去除:副词,标点,拟声词等无实意词包括/x /zg /uj /ul /e /d /uz /y
结果为mac-result2.txt
4.标准化处理,合并空格,去除空白字符,处理后的文档变为“词,空格,词,空格。。。。”的形式。结果为:mac-result3.txt
5.复合词合成.分词结果不准确,有专有名词等,所以提取复合词 mac-result4.txt(提取的复合词表fuheci.txt)
6.做或者不做复合词提取,每十行合并(mac-result5.txt)直接做LDA实验,抽取主题。
标题是用Python做中文自然语言预处理,我将我所用的预处理全部贴到下面:
1,分词.词性标注以及去停用词。见上一篇博客:http://www.cnblogs.com/nlp-yekai/p/3711360.html
3,做词性筛选:
#coding utf-8
import os
import sys
import re f1=open("/home/alber/data_base/jd_content/app-mac/mac-result1.txt",'r')
txt=f1.readlines()
f1.close()
txtlist=[]
cixing=["/x","/zg","/uj","/ul","/e","/d","/uz","/y"]#词列表为自己定义要过滤掉的词性
for line in txt:
line_list2=re.split('[ ]', line)
line_list=line_list2[:]
for segs in line_list2:
for K in cixing:
if K in segs:
line_list.remove(segs)
break
else:
pass
txtlist.extend(line_list)
f2=open("/home/alber/data_base/jd_content/app-mac/mac-result2.txt",'a')
resultlist=txtlist[:]
for v in txtlist:
if "/" in v:
slope=v.index("/")
letter=v[0:slope]+" "
f2.write(letter)
else:
f2.write(v)
4.标准化处理,去除空行,空白字符等。
#coding=utf-8
import os
import sys
import re
import time f1=open("/home/alber/data_base/jd_content/app-mac/mac-result2.txt",'r+')
f2=open("/home/alber/data_base/jd_content/app-mac/mac-result3.txt","a")
txt=f1.readlines()
f1.close()
list1=[]
for line in txt:
if len(line)>=2:
line_clean=" ".join(line.split())
lines=line_clean+" "+"\n"
f2.write(lines)
else:
pass
f2.close()
后面的以后再写吧,处理到这基本上可以导入各种模型跑起来了。
用python做中文自然语言预处理的更多相关文章
- 用Python做自然语言处理必知的八个工具【转载】
Python以其清晰简洁的语法.易用和可扩展性以及丰富庞大的库深受广大开发者喜爱.其内置的非常强大的机器学习代码库和数学库,使Python理所当然成为自然语言处理的开发利器. 那么使用Python进行 ...
- Python中调用自然语言处理工具HanLP手记
手记实用系列文章: 1 结巴分词和自然语言处理HanLP处理手记 2 Python中文语料批量预处理手记 3 自然语言处理手记 4 Python中调用自然语言处理工具HanLP手记 5 Python中 ...
- 中文自然语言处理工具HanLP源码包的下载使用记录
中文自然语言处理工具HanLP源码包的下载使用记录 这篇文章主要分享的是hanlp自然语言处理源码的下载,数据集的下载,以及将让源代码中的demo能够跑通.Hanlp安装包的下载以及安装其实之前就已经 ...
- python处理中文
python 清洗中文文件 需要用到的两个链接: 1,unicode编码转换器 http://www.bangnishouji.com/tools/chtounicode.html 2,Python匹 ...
- python与中文的那点事
目录 python与中文的那点事 1. utf-8/gbk/unicode/ASCII 2.各种编码之间的转换 3. 统计字符串中数字,字母,汉字的个数 python与中文的那点事 在学习python ...
- hanlp中文自然语言处理的几种分词方法
自然语言处理在大数据以及近年来大火的人工智能方面都有着非同寻常的意义.那么,什么是自然语言处理呢?在没有接触到大数据这方面的时候,也只是以前在学习计算机方面知识时听说过自然语言处理.书本上对于自然语言 ...
- 用Python做图像处理
转自:http://blog.csdn.net/gzlaiyonghao/article/details/1852726 最近在做一件比较 evil 的事情——验证码识别,以此来学习一些新的技能.因 ...
- 如何用Python做Web开发?——Django环境配置
用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手. 概念 最近有个词儿很流行,叫做“全栈”(full stack ...
- 【HanLP】HanLP中文自然语言处理工具实例演练
HanLP中文自然语言处理工具实例演练 作者:白宁超 2016年11月25日13:45:13 摘要:HanLP是hankcs个人完成一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环 ...
随机推荐
- C# 获取Get请求返回
/// <summary> /// 远程获取页面数据 /// </summary> /// <param name="Url">地址</p ...
- 序列化json对象,通过ajax传入asp.net mvc后台
序列化json对象,通过ajax传入asp.net mvc后台 序列化json对象,通过ajax传入asp.net mvc后台 今天遇到一个问题,准备把组织好的json对象通过jquery.aja ...
- Modern 阅读笔记 一 PSR标准
一.标准 PSR php standards Recommendation PHP 推荐标准 PSR-1 基本代码风格 PSR-2 严格的代码风格 PSR-3 日志记录器接口 PSR-4 自动加载 ...
- 自定义html标签
自定义html标签 (觉得页面全是div 的解决办法 来个个性化) 办法一(来源于 让ie支持html5标签的方法): 在ie9以前如果要自定义要使用document.createElement的方法 ...
- mapreduce框架详解
hadoop 学习笔记:mapreduce框架详解 开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感 ...
- Arduino 各种模块篇 震动模块 vibrator
vibrator is a good thing. it has multi-funtionality . :) Now the vibrator we choose is the one whic ...
- 当我们在谈论kmeans(5)
本系列意在长期连载分享,内容上可能也会有所删改: 因此如果转载,请务必保留源地址,非常感谢! 博客园:http://www.cnblogs.com/data-miner/(暂时公式显示有问题) 其他: ...
- python基础4
内容概要: 一.递归 递归就是函数本身调用自己,直到满足指定条件之后一层层退出函数 递归特性: 必须有一个明确的结束条件 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 递归效率不高,递归层 ...
- python3.4 data type
#coding=utf-8 #Python 3.4 https://docs.python.org/3.4/library/ #IDE:Eclipse +PyDev Window10 import a ...
- 如何成为一名hacker?
很多人问我如何成为黑客,一般来说我总是会扯一大堆废话,告诉他们要时刻保持好奇心,要学会打破规则挑战权威之类的. 但这类话肯定不是提问者想听的.我揣摩了一下他们的心情,他们想问的应该是这个问题:如何学习 ...