NLTK和jieba这两个python的自然语言包(HMM,rnn,sigmoid
HMM(Hidden Markov Model,隐马尔可夫模型) CRF(Conditional Random Field,条件随机场),
RNN深度学习算法(Recurrent Neural Networks,循环神经网络)。输入条件连续 LSTM(Long Short Term Memory)则绕开了这些问题依然可以从语料中学习到长期依赖关系,输入条件不连续是用, 核心是实现了 dL(t)dh(t)和 dL(t+1)ds(t)反向递归计算。
sigmoid函数,该函数输出0到1之间的值
NLTK和jieba这两个python的自然语言包,前者,我主要是对分词后的数据进行分析; 而后者,我主要用于对文章进行分词!
part.1 包的安装
pip install nltk pip install jieba
一条文本分析的漫漫长路就此开始!
part.2 怎么使用
从这里开始,我根据着自己写的类来对这两个包进行一些简单的讲解。
2.1 引用
# coding=utf-8 # -*- coding: cp936 -*- import jieba import jieba.posseg as pseg import codecs import re import os import time import string from nltk.probability import FreqDist open=codecs.open
2.2 自定义词典和停用词的引入
自定义词典是我们在分词的时候避免把我们需要的词组分成小词而导入的,而停用词,则是我们在分词过程中,将对我们分词过程中的干扰词排除在外的词典。
#jieba 分词可以将我们的自定义词典导入,格式 “词” “词性” “词频” jieba.load_userdict('data/userdict.txt')
#定义一个keyword类 class keyword(object): def Chinese_Stopwords(self): #导入停用词库 stopword=[] cfp=open('data/stopWord.txt','r+','utf-8') #停用词的txt文件 for line in cfp: for word in line.split(): stopword.append(word) cfp.close() return stopword
2.3 分词和挑选
先来讲讲分词,分词可以说是中文文章分析的第一步,中文不像英文,每个单词之间有空格隔开,我们首先需要对文章进行分词,也就是把长长的文本切割成单个的词,而后才能对这些词进行后续的操作。
def Word_cut_list(self,word_str): #利用正则表达式去掉一些一些标点符号之类的符号。 word_str = re.sub(r'\s+', ' ', word_str) # trans 多空格 to空格 word_str = re.sub(r'\n+', ' ', word_str) # trans 换行 to空格 word_str = re.sub(r'\t+', ' ', word_str) # trans Tab to空格 word_str = re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——;!,”。《》,。:“?、~@#¥%……&*()1234567①②③④)]+".\ decode("utf8"), "".decode("utf8"), word_str)
wordlist = list(jieba.cut(word_str))#jieba.cut 把字符串切割成词并添加至一个列表 wordlist_N = [] chinese_stopwords=self.Chinese_Stopwords() for word in wordlist: if word not in chinese_stopwords:#词语的清洗:去停用词 if word != '\r\n' and word!=' ' and word != '\u3000'.decode('unicode_escape') \ and word!='\xa0'.decode('unicode_escape'):#词语的清洗:去全角空格 wordlist_N.append(word) return wordlist_N
什么叫挑选呢? 其实在我们进行中文文本的分析时,不是每个词都有用的。那什么样的词就能表述出文章意思呢? 比如:名词! 那怎么把名词提取出来呢?
NLTK和jieba这两个python的自然语言包(HMM,rnn,sigmoid的更多相关文章
- NLTK和Stanford NLP两个工具的安装配置
这里安装的是两个自然语言处理工具,NLTK和Stanford NLP. 声明:笔者操作系统是Windows10,理论上Windows都可以: 版本号:NLTK 3.2 Stanford NLP 3.6 ...
- Mac OS10.9 下python开发环境(eclipse)以及自然语言包NLTK的安装与注意
折腾了大半天,终于把mbp上python自然语言开发环境搭建好了. 第一步,安装JDK1.7 for mac MacOS10.9是自带python2.7.5的,够用,具体的可以打开终端输入python ...
- 推荐《用Python进行自然语言处理》中文翻译-NLTK配套书
NLTK配套书<用Python进行自然语言处理>(Natural Language Processing with Python)已经出版好几年了,但是国内一直没有翻译的中文版,虽然读英文 ...
- 两个python安装模块后 ImportError: No module named
问题描述:我的电脑安装了默认的arcgis自带的python,还自己安装了anaconda,所以有两个位置的python2.7 我自己使用arcgis的程序的时候,调用默认的那些是可以用的,但想使用d ...
- Centos7下部署两套python版本并存
Centos7下部署两套python版本并存 需求说明:centos7.2系统的开发机器上已经自带了python2.7版本,但是开发的项目中用的是python3.5版本,为了保证Centos系统的 ...
- jieba分词-强大的Python 中文分词库
1. jieba的江湖地位 NLP(自然语言)领域现在可谓是群雄纷争,各种开源组件层出不穷,其中一支不可忽视的力量便是jieba分词,号称要做最好的 Python 中文分词组件. 很多人学习pytho ...
- 每天自学两小时Python,整理了最详细的学习路线和规
上次这篇文章每天自学两小时Python,三个月学通月入20K主要是给大家整理了学习资料视频和PDF书籍,很多需要的都关注私信领取了. 很多朋友领取之后都问我教程有了那么应该从哪去开始学习呢,私信太多我 ...
- Python黑帽编程1.3 Python运行时与包管理工具
Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...
- Python之扩展包安装
读者朋友,在比较新的版本(Python 2 >=2.7.9 or Python 3 >=3.4)中,pip或者easy_install 扩展包命令已经默认安装(可查看 你的安装目录\p ...
随机推荐
- 【MyBatis】解析MyBatis传入参数的问题
一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList&q ...
- MongoDB 2.6配置副本集,支持端口号修改和用户登录认证
mongoDB系列之(二):mongoDB 副本集 Mongodb2.6副本集验证部署和认证 副本集有以下特点: 1. 最小构成是:primary,secondary,arbiter,一般部署是:pr ...
- gtest测试代码编写思想
mockXXX类 . testXXX类 . mock method 1. mockXXX 类,通常使用继承测试目标类的方法,来方便针对目标类的测试提供部分扩展功能,比如为protected 成员添加g ...
- Java – How to add days to current date
1. Calendar.add Example to add 1 year, 1 month, 1 day, 1 hour, 1 minute and 1 second to the current ...
- nginx 配置支持URL HTML5 History 模式 与 设置代理
拾人牙慧:https://segmentfault.com/q/1010000007140360 nginx 配置支持URL HTML5 History 模式 location / { try_fil ...
- 针对MSHFlexGrid的一系列通用方法-项目中实践代码分享
1.给MSHFlexGrid填充数据通用方法 '自定义报表填充程序 fgrid Public Function ShowformfData(Resultset As ADODB.Recordset, ...
- wpf 添加滚动条 ScrollViewer
在WPF中有些控件没有滚动条,微软提供了控件ScrollViewer,这个控件是设置滚动条 <ScrollViewer Name="scrollViewer1" /> ...
- CentOS 6.5 搭建NFS文件服务器
环境介绍:服务器: 192.168.0.1客户机: 192.168.0.2安装软件包:服务器和客户机都要安装nfs 和 rpcbind 软件包:yum -y install nfs-utils rpc ...
- linux分享二:Linux如何修改字符集
问题: 当在项目中用到服务器端导出并且查询条件中包含汉字时,总是导出失败,Excel中出现null字样,如何解决方法呢? 解决方法: 把linux的字符集改变一下. 路径:etc/sysconfig/ ...
- 如何在Google Play商店发布多个版本apk
原文:http://android.eoe.cn/topic/android_sdk 多种apk的支持是一个特点在Google Play,它允许你发布不同的APKs为你的应用匹配不同尺寸的设备.每个A ...