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 ...
随机推荐
- Android Studio每日小技巧
一般的什么快捷键,技巧的文章也有很多.我也看过很多.下面这些事我在来自国外大神发布的:Android Studio Tips of the Day查看到的,而且对于我来说有帮助的及没用过的. Andr ...
- CGRectMake 延伸
判断给定的点是否被一个CGRect包含,可以用CGRectContainsPoint函数 BOOLcontains=CGRectContainsPoint(CGRectrect,CGPointpoin ...
- 【Algorithm】选择排序
一. 算法描述 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1 ...
- aaronyang的百度地图API之LBS云与.NET开发 Javascript API 2.0【基本地图的操作】
为了更简单的演示,我们创建个.NET的ASP.NET MVC4项目 好了,上面都是后话,POI说白了,就是你的用户的数据,很多数据,不过没关系,因为你的数据如果存在百度的LBS云上,那么大数据你就不用 ...
- 实现超级简单的bug管理系统
大家可以试着去实现一个超级简单的bug管理系统 不需要鉴权,也就是不需要登陆 有tag管理功能,缺陷上可以加tag,通过tag区分bug的状态和类型 bug的增删改查功能 bug描述支持markdow ...
- appium简明教程(11)——使用resource id定位(仅支持安卓4.3以上系统)
上一节乙醇带大家了解了appium的定位策略.实际上appium的控件定位方式是完全遵守webdriver的mobile扩展协议的. 这一节将分享一下如何使用resource id来定位android ...
- OPENSSL编程起步
原文链接: http://blog.csdn.net/itmes/article/details/7711076 WINDOWS平台下OPENSSL的编译和安装使用 OPENSSL是开放源代码的,可以 ...
- linux卸载自带jdk
centos 6.5系统 java -version: rpm -qa | grep jdk rpm -qa | grep gcj: 使用: yum -y remove java-1.5.0-gcj- ...
- 【转载整理】Hibernater的锁机制
转载原文:http://www.cnblogs.com/otomedaybreak/archive/2012/01/27/2330008.html 概要:数据库事务,事务并发,hibernate悲观锁 ...
- xbox360 双65厚机自制系统无硬盘 U盘玩游戏方法
因为没有硬盘,又没有光盘.所以想把游戏放在U盘里面.用U盘来做为硬盘玩游戏. 现有的自制系统主要是FSD,但是FSD要用硬盘才能安装,理论上U盘也可以,但是我没有尝试了. 这里介绍的是玩xex格式的游 ...