语言模型和词向量

学习目标

  1. 简要了解自然语言处理

  2. 利用TF-IDF实现一个推荐系统

  3. 了解语言模型和神经网络语言模型

  4. 使用word2vec & Fasttext编写项目代码


自然语言处理(NLP)

名如其意,就是利用我们的计算机对人类语言等等进行处理,满足我们的需求。

核心的任务分类(研究方向):

  1. 自然语言理解(NLU)
    关键技术:句法分析,语义分析,意图识别,情感分析,上下⽂处理
    典型应用:智能客服(意图识别),语音助手(语义分析),搜索引擎(语义分析)

  2. 自然语言生成(NLG)
    关键技术:模板⽣成,统计⽣成,逻辑到⽂本转换,⻛格控制,上下⽂处理
    典型应用:新闻稿⾃动⽣成(统计⽣成),个性化推荐⽂案:(⻛格控制),聊天机器⼈回复(上下⽂处理)

发展趋势

预训练模型的影响:如 GPT-4、BERT 等⼤模型的发展,同时推动了 NLU 和 NLG⽅向的进步,⼤模型通过 “理解 + ⽣成” 能⼒实现多轮对话、⻓⽂本⽣成等功能。
多模态融合:结合图像、语⾳等信息提升理解与⽣成的准确性(如根据图⽚⽣成描述)。

低资源场景:针对⼩语种或特定领域(如法律、医疗)的 NLP 需求,开发更⾼效的模型。

通过 NLU 和 NLG 的结合,计算机正逐步实现与⼈类⾃然、流畅的交流,未来将在智能助⼿、⾃动化写作、数据分析等领域发挥更⼤作⽤。


TF-IDF实现推荐系统

IDF(Inverse Document Frequency)是一种在信息检索和文本挖掘中常用的权重因子,用于衡量一个词在文档集合中的重要性。IDF的值越高,表明这个词在文档集合中的出现频率越低,通常是更重要的关键词。

在实际应用中,IDF 通常与词频(TF,Term Frequency)结合使用,形成 TF-IDF(Term Frequency-Inverse Document Frequency)权重,用于评估一个词在文档中的相对重要性。

数据来源:北京大学开放研究数据平台

豆瓣Top250图书评论:
https://opendata.pku.edu.cn/dataset.xhtmlpersistentId=doi:10.18170/DVN/X20PS1

第一步:数据清洗

# 修复后的文件内容
fixed_txt = open('./doubanbook_top250_comments_fixed.txt',
                 mode='w', encoding='utf-8')

# 修复前文件内容
lines = [line for line in open(file='./doubanbook_top250_comments.txt',
                               mode='r', encoding='utf-8')]
print(len(lines), type(lines[0]), lines[0])
# 提取书名和评论(comments)
for index, line in enumerate(lines):
    # 保存标题栏
    if index == 0:
        fixed_txt.write(line)
        prev_line = ''
        continue
    # 分词
    terms = line.split('\t')

    # 当前行的书名等于上一行的书名
    if terms[0] == prev_line.split('\t')[0]:
        # 上一行是有效评论
        if len(prev_line.split('\t')) == 6:
            # 保存上一行记录
            fixed_txt.write(prev_line+'\n')
            prev_line = line.strip()  # 保存当前行记录
        else:
            # 上一行不是有效评论,则当前行是有效评论
            prev_line = ''
    else:
        # 当前行的书名不等于上一行的书名
        # 上一行是新书的有效评论
        if len(terms) == 6:
            # 保存当前行记录
            prev_line = line.strip()
        else:
            # 合并当前行与上一行
            prev_line = prev_line + line.strip()
fixed_txt.close()
print('修复完成')

第二步:系统构建

import csv
import pickle
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值