python自然语言处理-读书笔记4

本文探讨了如何从网络和本地资源获取文本数据,包括电子书、新闻网站、RSS订阅等,介绍了使用Python的nltk库进行文本处理的方法,如分词、去除HTML标签、文本切片等操作。并通过实例展示了从不同来源读取、处理和分析文本的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding:utf-8 -*-
# __author__ = 'lipzhang'
import nltk, re, pprint
#从网络和硬盘访问文本
#电子书
from urllib.request import urlopen
from bs4 import BeautifulSoup
# url = r'https://www.gutenberg.org/files/2554/2554-0.txt'#从网络上阅读小说罪与罚
# proxies = {'http': 'http://www.someproxy.com:3128'}
# raw =urlopen(url).read()
# raw=raw.decode('utf-8')
# print(len(raw))
# print(raw[:75])
# tokens = nltk.word_tokenize(raw)
# text = nltk.Text(tokens)
# print(text)
# print(raw.find("PART I"))
# print(raw.rfind("End of Project Gutenberg's Crime"))
# raw = raw[5303:-1]
#print(raw)

#处理HTML
# url = "http://news.bbc.co.uk/2/hi/health/2284783.stm"
# html = urlopen(url).read()
# print(html[:60])
# raw = BeautifulSoup(html,'html').get_text()
# print(raw)
# tokens = nltk.word_tokenize(raw)
# print(tokens)
# tokens = tokens[96:399]
# text = nltk.Text(tokens)
# print(text)
# print(text.concordance('gene'))


#处理搜索引擎的结果

#处理 RSS 订阅
# import feedparser
# llog = feedparser.parse("http://languagelog.ldc.upenn.edu/nll/?feed=atom")
# print(llog['feed']['title'])
# post = llog.entries[2]
# print(post.title)
# content = post.content[0].value
# print(content[:70])
#
# content=nltk.word_tokenize(BeautifulSoup(content,'html').get_text())#去除html标签
# print(content[:70])
#
# st=nltk.word_tokenize(BeautifulSoup(llog.entries[2].content[0].value,'html').get_text())
# print(st)


#读取本地文件和语料库文件名
path = nltk.data.find('corpora/gutenberg/melville-moby_dick.txt')
raw = open(path, 'rU').read()#'r'意味着以只读方式打开文件(默认),'U'表示“通用”,它让我们忽略不同的换 行约定。
print(raw)

#从PDF 、MS Word及其他二进制格式中提取文本
#使用pypdf2
#捕获用户输入
s = input("Enter some text: ")
print("You typed", len(nltk.word_tokenize(s)), "words." )

#NLP处理一般流程 处理流程 :打开一个 URL, 读里面 HTML 格式的内容 , 去除标记 , 并选择字符 的 切 片 ,然后分词 ,是否转换为 nltk.Text 对象是可选择的 。我们也可以将所有词汇小写并提取 词汇表

 

### 自然语言处理的学习资源汇总 #### 关于自然语言处理的基础概念 自然语言处理(Natural Language Processing, NLP)是一个跨学科领域,涉及计算机科学、人工智能和语言学等多个方面。其核心目标是使计算机能够理解、解释并生成人类语言。为了实现这一目标,特征工程扮演了重要角色,它是将文本数据转换为机器学习模型可接受格式的关键步骤[^1]。 #### 数学基础的重要性 对于初学者而言,扎实的数学基础尤为重要。许多人在NLP学习过程中遇到困难的原因之一是对线性代数、概率论和统计学的理解不足。这些基础知识不仅用于构建算法理论框架,还直接影响到实际应用中的性能优化[^2]。 #### 开发环境搭建建议 Python因其易用性和强大的社区支持成为首选编程语言,在NLP项目中尤为突出。通过Anaconda这样的集成平台可以快速配置所需的开发环境,其中包括众多预装的数据分析与机器学习库,极大地方便了开发者的工作流程[^3]。 #### 进阶技术探讨 随着研究深入,深度学习方法逐渐占据主导地位。例如,在训练神经网络时会运用到梯度下降法来最小化损失函数;而在PyTorch等框架下,则可以通过自动微分机制高效完成参数更新过程[^4]。 ```python import torch from torch import nn, optim # 定义简单的线性回归模型 model = nn.Linear(1, 1) criterion = nn.MSELoss() optimizer = optim.SGD(model.parameters(), lr=0.01) inputs = torch.tensor([[1.], [2.], [3.]]) targets = torch.tensor([[2.], [4.], [6.]]) for epoch in range(100): optimizer.zero_grad() # 清除之前的梯度信息 outputs = model(inputs) # 前向传播计算预测值 loss = criterion(outputs, targets) # 计算误差 loss.backward() # 反向传播累积梯度 optimizer.step() # 更新权重参数 print(f'Final Loss: {loss.item()}') ``` 上述代码片段展示了如何利用 PyTorch 实现基本的监督学习任务——即基于给定输入估计对应输出的关系表达式 y=wx+b 的求解过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值