python自然语言处理:(三)加工原料文本

都写在注释中了。主要是本章讲的比较基础,处理HTML和字符串、文件的读写、正则等,都略过了。

'''''''''

name:pikachu

title: python自然语言处理:(三)加工原料文本

version:1.0

date:20181229

'''

from__future__importdivision

importnltk,re,pprint

fromurllib.requestimporturlopen

'''3.1从网络和硬盘访问文本'''

'''3.1.1电子书'''

url="http://www.gutenberg.org/files/2554/2554.txt"

raw=urlopen(url).read()

print(raw)

'''3.1.2处理HTML'''

'''beautifulsoup会更好,参考本公众号第一篇python爬取当当网数据'''

url="http://essays.quotidiana.org/bacon/studies/"

html=urlopen(url).read()

raw=nltk.clean_html(html)

tokens=nltk.word_tokenize(raw)

print(tokens)

'''3.1.3处理搜索引擎的结果(nothing important)'''

'''3.1.4处理RSS订阅(install failed)'''

'''在一个叫做Universal Feed Parser的第三方Python库(可从http://feedparser.org/免费下载)的帮助下,我们可以访问一个博客的内容'''

'''3.1.5读取本地文件'''

path=nltk.data.find('corpora/gutenberg/melville-moby_dick.txt')

raw=open(path,'rU').read()

print(raw)

'''3.1.6从PDF MS word及其他二进制格式中提取文本'''

'''第三方函数库如pypdf和pywin32提供了对这些格式的访问'''

'''3.1.7捕获用户输入'''

'''3.1.8 NLP的流程'''

'''3.2字符串:最底层的文本处理(too basic)'''

'''3.3使用Unicode进行文字处理'''

'''如何使用Unicode处理使用非ASCII字符集的文本。'''

'''3.4使用正则表达式检测词组搭配'''

wordlist=[wforwinnltk.corpus.words.words('en')ifw.islower()]

word_ed=[wforwinwordlistifre.search('ed$', w)]

print(word_ed)

'''3.5正则表达式的应用'''

'''3.6规范化文本'''

'''词干提取器'''

porter=nltk.PorterStemmer()

lancaster=nltk.LancasterStemmer()

'''WordNet词形归并器'''

wnl=nltk.WordNetLemmatizer()

'''3.7使用正则表达式为文本分词'''

'''NLTK的正则表达式分词器'''

'''函数nltk.regexp_tokenize()与re.findall()类似(我们一直在使用它进行分词)。然而,nltk.regexp_tokenize()分词效率更高,且不需要特殊处理括号。'''

'''3.8分割'''

'''3.9格式化:从链表到字符串'''

silly=['We','called','him','Tortoise','because','he','taught','us','.']

silly2=' '.join(silly)

'''将结果写入文件'''

output_file=open('output.txt','w')

words=set(nltk.corpus.genesis.words('english-kjv.txt'))

forwordinsorted(words):

output_file.write(word+"\n")

NLP流程:

字符串操作:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181229G1HWYZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券