NLTK学习记录3:处理原始文本

作者: hitsunbo | 来源:发表于2016-11-28 15:07 被阅读114次

读入web原始文本

from urllib import request
url = "http://www.gutenberg.org/files/2554/2554.txt"
response = request.urlopen(url)
raw = response.read().decode('utf8')
type(raw)  #<class 'str'>

读取本地原始文本

f = open('document.txt')
raw = f.read()

path = nltk.data.find('corpora/gutenberg/melville-moby_dick.txt')
raw = open(path, 'rU').read()

获取用户输入

s = input("Enter some text: ")
print("You typed", len(word_tokenize(s)), "words.")

原始文本本身为字符串格式,可以用字符串的函数处理

raw.find("PART I")
raw = raw[5338:1157743]

从原始文本中提取出词,并封装至text

tokens = word_tokenize(raw)
type(tokens)  #<class 'list'>
text = nltk.Text(tokens)
type(text)  #<class 'nltk.text.Text'>

用正则表达式进行文本模式匹配

import re
[w for w in wordlist if re.search('ed$', w)]
[w for w in wordlist if re.search('^..j..t..$', w)]
[w for w in wordlist if re.search('^[ghi][mno][jlk][def]$', w)]
Operator  Behavior
.  #Wildcard, matches any character
^abc  #Matches some pattern abc at the start of a string
abc$  #Matches some pattern abc at the end of a string
[abc]  #Matches one of a set of characters
[A-Z0-9]  #Matches one of a range of characters
ed|ing|s  #Matches one of the specified strings (disjunction)
*   #Zero or more of previous item, e.g. a*, [a-z]* (also known as *Kleene Closure*)
+  #One or more of previous item, e.g. a+, [a-z]+
?  #Zero or one of the previous item (i.e. optional), e.g. a?, [a-z]?
{n}   #Exactly n repeats where n is a non-negative integer
{n,}  #At least n repeats
{,n}  #No more than n repeats
{m,n}  #At least m and no more than n repeats
a(b|c)+  #Parentheses that indicate the scope of the operators

规则化文本

porter = nltk.PorterStemmer()
lancaster = nltk.LancasterStemmer()
[porter.stem(t) for t in tokens]  #better
[lancaster.stem(t) for t in tokens]

分割句子

text = nltk.corpus.gutenberg.raw('chesterton-thursday.txt')
sents = nltk.sent_tokenize(text)
pprint.pprint(sents[79:89])

相关文章

  • NLTK学习记录3:处理原始文本

    读入web原始文本 读取本地原始文本 获取用户输入 原始文本本身为字符串格式,可以用字符串的函数处理 从原始文本中...

  • NLTK文本预处理与文本分析

    本文主要介绍Python中NLTK文本分析的内容,咱先来看看文本分析的整个流程: 原始文本 - 分词 - 词性标注...

  • Python NLTK结合stanford NLP工具包进行文本

    Python NLTK结合stanford NLP工具包进行文本处理 本文在主要介绍NLTK 中提供 Stanfo...

  • NLP基本步骤及原理

    本文目录第一章:文本预处理(Preprocess)1.1NLTK自然语言处理库1.1.1 NLTK自带语料库第二章...

  • 英语文本处理工具库2 — spaCy

    网易云课堂AI工程师(自然语言处理)学习笔记,接上一篇《英文文本处理工具库1 — NLTK》。 1. spaCy简...

  • NLTK手动下载语料

    NLTK是一个非常流行的NLP开源工具包,可以实现分词、词性标注、命名实体识别等基本的文本处理操作。在使用NLTK...

  • python自然语言处理工具包

    [NLTK]http://www.nltk.org/:NLTK 在用 Python 处理自然语言的工具中处于领先的...

  • 文本分类器

    文本分类器 python分类器环境安装 安装NLTK 下载地址:http://www.nltk.org/ 分类器介...

  • 2、机器学习系统搭建流程

    一、机器学习系统搭建流程 原始数据文本图像语音 数据预处理 特征工程 (向量/矩阵) 建模 预测 备注: 机器学习...

  • NLP | 文本匹配算法

    01 贪婪策略 今天我们调用python中的一个自然语言处理包nltk,来实现一个MaxMatch文本匹配算法。 ...

网友评论

    本文标题:NLTK学习记录3:处理原始文本

    本文链接:https://www.haomeiwen.com/subject/mpropttx.html