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的更多相关文章

  1. NLTK和Stanford NLP两个工具的安装配置

    这里安装的是两个自然语言处理工具,NLTK和Stanford NLP. 声明:笔者操作系统是Windows10,理论上Windows都可以: 版本号:NLTK 3.2 Stanford NLP 3.6 ...

  2. Mac OS10.9 下python开发环境(eclipse)以及自然语言包NLTK的安装与注意

    折腾了大半天,终于把mbp上python自然语言开发环境搭建好了. 第一步,安装JDK1.7 for mac MacOS10.9是自带python2.7.5的,够用,具体的可以打开终端输入python ...

  3. 推荐《用Python进行自然语言处理》中文翻译-NLTK配套书

    NLTK配套书<用Python进行自然语言处理>(Natural Language Processing with Python)已经出版好几年了,但是国内一直没有翻译的中文版,虽然读英文 ...

  4. 两个python安装模块后 ImportError: No module named

    问题描述:我的电脑安装了默认的arcgis自带的python,还自己安装了anaconda,所以有两个位置的python2.7 我自己使用arcgis的程序的时候,调用默认的那些是可以用的,但想使用d ...

  5. Centos7下部署两套python版本并存

    Centos7下部署两套python版本并存   需求说明:centos7.2系统的开发机器上已经自带了python2.7版本,但是开发的项目中用的是python3.5版本,为了保证Centos系统的 ...

  6. jieba分词-强大的Python 中文分词库

    1. jieba的江湖地位 NLP(自然语言)领域现在可谓是群雄纷争,各种开源组件层出不穷,其中一支不可忽视的力量便是jieba分词,号称要做最好的 Python 中文分词组件. 很多人学习pytho ...

  7. 每天自学两小时Python,整理了最详细的学习路线和规

    上次这篇文章每天自学两小时Python,三个月学通月入20K主要是给大家整理了学习资料视频和PDF书籍,很多需要的都关注私信领取了. 很多朋友领取之后都问我教程有了那么应该从哪去开始学习呢,私信太多我 ...

  8. Python黑帽编程1.3 Python运行时与包管理工具

    Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...

  9. Python之扩展包安装

    读者朋友,在比较新的版本(Python 2 >=2.7.9 or Python 3 >=3.4)中,pip或者easy_install 扩展包命令已经默认安装(可查看   你的安装目录\p ...

随机推荐

  1. GitHub Desktop 代码库管理工具

    1.GitHub Desktop 简介 GitHub Desktop 是用于 GitHub 项目版本控制软件. 官网下载地址 GitHub Desktop 其它下载地址 GitHub Desktop ...

  2. 自定义View之圆形水波扩散动效

    这个效果做出来以后,真的美极了!放在你的应用中,无疑增添了光彩! 效果图    其实,第一种效果,才是产品的需求要的效果.第三种效果,是不是很熟悉?支付宝的咻一咻!哈哈,无意中,我就写出来了. 实现步 ...

  3. 你应该学会使用的5个ruby方法

    今天看到了这篇文章--Five Ruby Methods You Should Be Using,感觉收获颇丰,先简单翻译一下先. 作者写这篇文章的契机是在Exercism上看到了很多ruby代码可以 ...

  4. C++中没有finally,那么应该在哪里关闭资源?

    这是一篇有趣的帖子 原文链接: http://bbs.csdn.net/topics/90070457 楼主: C++中没有finally,那么应该在哪里关闭资源? C++的try{}catch(){ ...

  5. 解决tomcat服务器下,只能通过localhost,而不能通过127.0.0.1或者本地ip地址访问的问题

    今天在tomcat上部署了一个web应用以后,发现用localhost的方式来访问应用是正常的,但是换成127.0.0.1或者是本地的ip地址来访问,确出现访问不了的情况.之前想是不是防火墙的问题,于 ...

  6. java File类中的mkdir()和mkdirs()有什么区别

    mkdir() 只能在已经存在的目录中创建创建文件夹. mkdirs() 可以在不存在的目录中创建文件夹.诸如:a\\b,既可以创建多级目录.

  7. 【转载并整理】mysql 1293错误 建表两个timestamp

    http://www.jb51.net/article/50878.htm 这里要使用到mysql的触发器

  8. [golang] Glide 包管理

    一.概述 golang的包管理工具有很多,本篇幅主要介绍glide进行包管理. 二.安装及命令介绍 go get github.com/Masterminds/glide glide create|i ...

  9. JavaScript权威指南第02章 词法结构

    词法结构 2.1字符集 JavaScript 是Unicode字符集编写,差点儿支持地球上全部的语言. 2.1.1区分大写和小写 javascript是区分大写和小写的语言. 2.1.2 空格.换行符 ...

  10. [CTCI] 最大子方阵

    最大子方阵 题目描述 有一个方阵,其中每个单元(像素)非黑即白(非0即1),请设计一个高效算法,找到四条边颜色相同的最大子方阵. 给定一个01方阵mat,同时给定方阵的边长n,请返回最大子方阵的边长. ...