这篇博客根据中文自然语言预处理的步骤分成几个板块。以做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做中文自然语言预处理的更多相关文章

  1. 用Python做自然语言处理必知的八个工具【转载】

    Python以其清晰简洁的语法.易用和可扩展性以及丰富庞大的库深受广大开发者喜爱.其内置的非常强大的机器学习代码库和数学库,使Python理所当然成为自然语言处理的开发利器. 那么使用Python进行 ...

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

    手记实用系列文章: 1 结巴分词和自然语言处理HanLP处理手记 2 Python中文语料批量预处理手记 3 自然语言处理手记 4 Python中调用自然语言处理工具HanLP手记 5 Python中 ...

  3. 中文自然语言处理工具HanLP源码包的下载使用记录

    中文自然语言处理工具HanLP源码包的下载使用记录 这篇文章主要分享的是hanlp自然语言处理源码的下载,数据集的下载,以及将让源代码中的demo能够跑通.Hanlp安装包的下载以及安装其实之前就已经 ...

  4. python处理中文

    python 清洗中文文件 需要用到的两个链接: 1,unicode编码转换器 http://www.bangnishouji.com/tools/chtounicode.html 2,Python匹 ...

  5. python与中文的那点事

    目录 python与中文的那点事 1. utf-8/gbk/unicode/ASCII 2.各种编码之间的转换 3. 统计字符串中数字,字母,汉字的个数 python与中文的那点事 在学习python ...

  6. hanlp中文自然语言处理的几种分词方法

    自然语言处理在大数据以及近年来大火的人工智能方面都有着非同寻常的意义.那么,什么是自然语言处理呢?在没有接触到大数据这方面的时候,也只是以前在学习计算机方面知识时听说过自然语言处理.书本上对于自然语言 ...

  7. 用Python做图像处理

    转自:http://blog.csdn.net/gzlaiyonghao/article/details/1852726  最近在做一件比较 evil 的事情——验证码识别,以此来学习一些新的技能.因 ...

  8. 如何用Python做Web开发?——Django环境配置

    用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手.     概念 最近有个词儿很流行,叫做“全栈”(full stack ...

  9. 【HanLP】HanLP中文自然语言处理工具实例演练

    HanLP中文自然语言处理工具实例演练 作者:白宁超 2016年11月25日13:45:13 摘要:HanLP是hankcs个人完成一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环 ...

随机推荐

  1. 【Apache ZooKeeper】命令行zkCli.sh使用指南

    ZooKeeper命令行 原文                   http://blog.csdn.net/ganglia/article/details/11606807 ZooKeeper客户端 ...

  2. memcached内存分配及回收初探

    对memcached(后面简称mc) 的内存分配及回收机制进行了深度分析和测试,以下是一些学习的心得,和大家共同探讨一下,期望能抛砖引玉 mc简介: mc是由LiveJournal技术团队开发的一套分 ...

  3. Tomcat中Context的配置

    Tomcat直接ip地址访问不用加端口和项目名 当我们开发完一个WEB项目 然后部署到tomcat下,正常情况下应该是这样访问:http://localhost:端口号/项目名 如果我们想让用户仅仅输 ...

  4. EL表达式与三目运算符

    在页面实现常量替换,比如 entity.auditi 的值如果为0显示不需要否则显示需要 因为需求就这两个值 所以使用三目运算符比较简洁 如果值为很多个 可使用if  else进行判断 ${entit ...

  5. 解决中文乱码( jsp表单提交中文时出现乱码)

    有三种方法: 1.建立一个filter中文解决乱码 2.Struts2在struts.xml中修改默认的编码设定 3.用Spring解决中文乱码 4.直接在jsp中修改解决 1.建立一个filter解 ...

  6. 7z文件格式及其源码的分析

    7z文件格式及其源码的分析 本文是一个系列. 主要是分享我最近一年做7z文件开发的经验. 主要包括7z官方源码的结构分析, 以及7z文件格式的分析. 其中涉及到7z源码结构的各个细节, 以及7z文件格 ...

  7. easyui tree 的数据格式转换

    一般用来储存树数据的数据库表都含有两个整型字段:id pid,所以我们查询出来的List一般是这样的(约定pId为-1的节点为根节点): var serverList = [ {id : 2,pid ...

  8. vsftp FTP服务器外网访问设置

    引用: linux中VSFTP无法从外网访问问题! http://blog.csdn.net/zbulrush/article/details/841978 原文: FTP协议有两种工作方式:PORT ...

  9. MongoDB安装心得

    本人纯前端一枚,对于数据库安装各种纠结,出了不少错误,一一列出,方便遇到同样问题的人给以参考,也加深一下自己印象. 故事开始了...Node.js在前端界比较火,由于我也是小小前端,跟随大潮流开始步入 ...

  10. [每日一题] OCP1z0-047 :2013-07-22 group by 子句

    这道题就是考where group by having的顺序... 答案A不正确:where应该放在group by前面 答案B不正确:having子句是用多行函数(sum,avg,max,min,c ...