探索 Python:发现有趣的库——第 3 章:玩转自然语言处理

代码侠和算法仙正在一间充满科技感的实验室里探讨自然语言处理(NLP)的奥秘。

代码侠: 嘿,算法仙,我最近在研究自然语言处理,但感觉有点复杂啊。

算法仙: 呵呵,别担心,我来带你入门。首先,我们得安装两个强大的库,NLTK 和 spaCy。

bash 复制代码
# 安装NLTK和spaCy
pip install nltk spacy

代码侠: 好的,我已经安装好了。接下来呢?

算法仙: 第一步是学会分词,也就是将文本拆分成单独的词或标记。

python 复制代码
import nltk
from nltk.tokenize import word_tokenize

nltk.download('punkt')
text = "Natural Language Processing is fascinating."
tokens = word_tokenize(text)
print(tokens)

代码侠: 输出是一串单词列表!真酷!

算法仙: 对。下一步,我们用 NLTK 做词性标注,这有助于识别每个词的语法角色。

python 复制代码
import nltk
from nltk.tokenize import word_tokenize

text = "Natural Language Processing is fascinating."
nltk.download('averaged_perceptron_tagger')
tokens = word_tokenize(text)
tagged = nltk.pos_tag(tokens)
print(tagged)

代码侠: 每个词后面都有一个奇怪的缩写。

算法仙: 这些是词性标签。比如,'NN' 代表名词,'VB' 代表动词。现在,让我们用 spaCy 做命名实体识别。

python 复制代码
import spacy

spacy.cli.download("en_core_web_sm")
nlp = spacy.load("en_core_web_sm")
doc = nlp("Apple is looking at buying U.K. startup for $1 billion")
for ent in doc.ents:
    print(ent.text, ent.label_)

代码侠: 'Apple', 'U.K.', 和 '$1 billion' 都被识别为实体!

算法仙: 精确地说。下面我们来做情感分析,判断文本的情绪倾向。

python 复制代码
import nltk
from nltk.sentiment import SentimentIntensityAnalyzer

nltk.download('vader_lexicon')

sia = SentimentIntensityAnalyzer()
sentiment = sia.polarity_scores("I love coding in Python!")
print(sentiment)

代码侠: 这个输出显示"积极"情绪的分数。

算法仙: 最后,让我们用这些技能来构建一个简单的聊天机器人。

python 复制代码
from nltk.chat.util import Chat, reflections

pairs = [
    [r"hello|hi", ["Hey there!"]],
    [r"(.*) in (.*)", ["%1 in %2? That's interesting!"]],
    [r"bye", ["Goodbye!"]],
]

chatbot = Chat(pairs, reflections)
chatbot.converse()

代码侠: 这太有趣了!我现在可以和机器人聊天了!

算法仙: 正是。记住,这只是自然语言处理的冰山一角。继续探索,你将发现更多惊喜。

这一章节通过对话形式,将学习自然语言处理的过程变得生动有趣,同时提供了实际的代码示例和库安装指南,使读者能够轻松跟随并理解 NLP 的基础概念。

相关推荐
灏瀚星空5 分钟前
PyTorch 入门与核心概念详解:从基础到实战问题解决
人工智能·pytorch·python·深度学习·算法·机器学习
Q_Q196328847515 分钟前
python小说网站管理系统-小说阅读系统
开发语言·spring boot·python·django·flask·node.js·php
hie9889426 分钟前
如何配置 Java 安全管理器来避免访问控制异常
java·python·安全
ValidationExpression1 小时前
设计模式-策略模式
python·设计模式·策略模式
love530love1 小时前
好消息!PyCharm 社区版现已支持直接选择 WSL 终端为默认终端
linux·ide·人工智能·windows·python·pycharm
西柚小萌新2 小时前
【Python从入门到精通】--‘@‘符号的作用
开发语言·python
moxiaoran57532 小时前
Python学习笔记--Django的安装和简单使用(一)
笔记·python·学习
David Bates2 小时前
代码随想录第39天:单调栈
python·算法·单调栈
zzlyx992 小时前
探讨关于智能体(Agent)结合 Dify、大语言模型(LLM)以及 Qwen-3 模型的项目或概念
人工智能·语言模型·自然语言处理
胖哥真不错3 小时前
Python基于Django和MySQL实现突发公共卫生事件舆情分析系统(有大屏功能)
python·mysql·django·突发公共卫生事件舆情分析系统·大屏功能