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 ...
随机推荐
- [转]Redis几个认识误区
转自timyang:http://timyang.net/data/redis-misunderstanding/ 前几天微博发生了一起大的系统故障,很多技术的朋友都比较关心,其中的原因不会超出Jam ...
- FreeSWITCH在会议室中持续播放音频文件
最近遇到一个客户需求,希望在会议室建立起来后,自动播放一段指定的声音. 已知会议室命令,假设建立起一个会议室号码3000,很容易实现以下功能: 一.播放一个声音文件一次 conference 3000 ...
- Intellij idea 配置热部署
1. 采用外部tomcat的配置 1)打开右上角Run的Edit Configuration进入Tomcat配置选项页面 2)将On frame deactivation选项更改为 Update ...
- sublime 技巧与快捷键篇
技巧大全:https://www.zhihu.com/question/24896283 项目排除文件夹,更便于ctrl + p的搜索,比如可恶的node_modules "folder ...
- A标签实现文件下载功能
<a>可直接下载xls,doc,rar,zip,exe,js文件(图片跟txt文件是直接打开的) <a href="wKioJlJolKeCIzkCADd3Wf7OPI42 ...
- CentOS下配置redis允许远程连接
1. 目的 因为想要学习redis,因此在虚拟机中安装了redis,为了实现在物理机可以访问redis,弄了好久:因此记录下来,以免忘记. 2. 环境 虚拟机:CentOS Linux release ...
- unity, dll is not allowed to be included or could not be found
player settings change to Net 2.0 ref: http://answers.unity3d.com/questions/485085/dll-is-not-allowe ...
- SVN配置钩子文件限制提交文件时必须填写更新日志
进入相应SVN仓库hooks目录,编辑文件pre-commit #!/bin/sh REPOS="$1"TXN="$2" SVNLOOK=/usr/bin/sv ...
- MySql(十八):MySql架构设计——高可用设计之 MySQL 监控
前言: 一个经过高可用可扩展设计的 MySQL 数据库集群,如果没有一个足够精细足够强大的监控系统,同样可能会让之前在高可用设计方面所做的努力功亏一篑.一个系统,无论如何设计如何维护,都无法完全避免出 ...
- tomcat重启步骤
tomcat重启步骤1.切换到tomcat目录cd /home/tomcat-home/tomcat-erp/bin2.关闭tomcatsh shutdown.sh3.启动tomcatsh start ...