嗨,各位AI探索者!👋
还记得小时候玩的”密码本”游戏吗?A=1,B=2,C=3…把文字变成数字,然后传递”秘密消息”。没想到吧,这个童年游戏竟然是现代AI理解人类语言的基础!
今天我们就来揭秘:如何让冰冷的电脑读懂我们温暖的人话。
🤔 电脑的”阅读障碍”
想象一下,你是一台电脑,面对这样一条新闻:
“肯塔基州公司获得多肽研究资助”
你会想:这都是什么鬼?肯塔基不是炸鸡吗?多肽是啥?研究又是啥?
电脑就是这样,它只认识0和1,看到文字就像我们看天书一样懵逼。所以我们得想办法把文字”翻译”成电脑能理解的数字。
🎒 词袋模型:最朴素的”翻译官”
什么是词袋模型?
想象你有一个神奇的袋子,每次看到一个句子,就把里面的每个词都扔进袋子里,然后数数每个词出现了几次。
比如这句话:
“我爱吃苹果,苹果很甜,我很开心”
扔进袋子后变成:
-
我:2次 -
爱:1次 -
吃:1次 -
苹果:2次 -
很:2次 -
甜:1次 -
开心:1次
这就是词袋模型(Bag of Words, BoW)!
代码实战时间!
# 用Python实现一个简单的词袋模型
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
corpus = [
'我喜欢吃热狗',
'狗跑得很快',
'今天很热'
]
# 魔法时刻!文字变数字
vectorizer.fit_transform(corpus)
看!文字瞬间变成了数字矩阵,每个数字都代表对应词语的出现次数。
🔤 N-Grams:上下文的艺术
单词的”朋友圈”很重要
还记得”热狗”的例子吗?如果我们把”热”和”狗”分开理解,可能以为是”天气热的狗”,但实际上是”热狗”这种食物!
这就是为什么我们需要N-grams:
- 1-gram(单元语法)
:我、喜欢、吃、热狗 - 2-gram(二元语法)
:我喜欢、喜欢吃、吃热狗 - 3-gram(三元语法)
:我喜欢吃、喜欢吃热狗
实战演示
from sklearn.feature_extraction.text import CountVectorizer
# 神奇的2-gram向量化器
bigram_vectorizer = CountVectorizer(ngram_range=(1, 2))
corpus = [
'我喜欢吃热狗',
'狗跑得很快',
'今天很热'
]
# 看看词汇表变化
print(bigram_vectorizer.vocabulary_)
现在”热狗”作为一个整体被识别了!但是…词汇表爆炸了!😱
📊 TF-IDF:智能的”重要性评估师”
不是所有词都生而平等
在新闻分类中,“的”、“是”、”在”这些词到处都是,就像背景音乐,重要吗?不重要!
而”股票”、“涨停”、”跌停”这些词一出现,就知道这是财经新闻!
TF-IDF就是这样一个聪明的评估师:
- TF (Term Frequency)
:这个词在文档中出现多少次? - IDF (Inverse Document Frequency)
:这个词在整个语料库中有多稀有?
数学公式(别怕,很简单!)
翻译过来就是:
-
如果一个词在当前文档中出现很多次(高TF) -
但在整个语料库中很少见(高IDF) -
那这个词就很重要!
代码实战
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf_vectorizer = TfidfVectorizer()
corpus = [
'股票大涨,投资者狂欢',
'足球比赛精彩纷呈',
'新技术突破,科学家兴奋'
]
# TF-IDF魔法变换
tfidf_matrix = tfidf_vectorizer.fit_transform(corpus)
print(tfidf_matrix.toarray())
🎯 实战:新闻分类器
现在我们用学到的知识来做个真正的新闻分类器!
import torch
import torchtext
# 加载AG_NEWS数据集
train_dataset, test_dataset = torchtext.datasets.AG_NEWS(root='./data')
classes = ['世界', '体育', '商业', '科技']
# 构建词汇表
tokenizer = torchtext.data.utils.get_tokenizer('basic_english')
vocab = build_vocabulary(train_dataset, tokenizer)
# 定义简单的分类器
model = torch.nn.Sequential(
torch.nn.Linear(vocab_size, 4),
torch.nn.LogSoftmax(dim=1)
)
# 训练模型
train_model(model, train_loader)
🤓 技术小贴士
PyTorch环境配置
# 记住指定pymysql(根据你的偏好)
import pymysql
pymysql.install_as_MySQLdb()
阿里云服务器部署
如果要在你的阿里云Linux服务器(宝塔面板+Apache)上部署:
# 安装依赖
pip install torch torchtext scikit-learn
# 配置Apache代理(在宝塔面板中)
# 反向代理到你的Python应用端口
🎉 今日收获
- 词袋模型
:最简单粗暴的文本数字化方法 - N-grams
:考虑上下文的智能升级 - TF-IDF
:重要性加权的聪明算法 - 实战代码
:从理论到实践的完整流程
本篇文章来源于微信公众号: 上海php自学中心
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们第一时间更新。
![[AI趣事]让电脑读懂人话:文本变数字的魔法秘籍-冠昇产业](https://sr.lovedyt.cn/wp-content/uploads/2025/09/wxsync-2025-09-4f90564a24a6a024784e971b6f2409b3-800x340.jpeg)











暂无评论内容