深度学习与自然语言处理第一次作业

目录

一、问题描述

在参考文章的基础上,对给定语料库的信息熵进行计算,对信息熵的含义及计算方法进行切实体会与掌握。

二、语料预处理

在计算信息熵之前,首先对语料库进行一定的预处理,步骤如下:
1.读取所有语料并合并

def read_novel(path):  # 读取语料内容
    content = ''
    names = os.listdir(path)
    for name in names:
            novel_name = path + '\\' + name
            with open(novel_name, 'r', encoding='ANSI') as f:
                con = f.read()
                content += con
            f.close()
    return content, names

2.语料库简单处理,去除广告,空格,换行等符号

def content_deal(content):  # 语料预处理,进行断句,去除一些广告和无意义内容
    ad = ['本书来自www.cr173.com免费txt小说下载站\n更多更新免费电子书请关注www.cr173.com', '新语丝电子文库'
          '\u3000', '\n', '。', '?', '!', ',', ';', ':', '、',
          '『', '』', '(', ')', '…', '「', '」', '\ue41b', '<', '>', '+', '\x1a', '\ue42b']
    for a in ad:
        content = content.replace(a, '')
    return content

三、词频统计

在语料库预处理完成后,进行词频统计
在一元模型下,即将每个字出现在句中的概率视为独立,此时的词频统计代码如下:

frequency_one = {
   }
    for word in content:
        if '\u4e00' <= word <= '\u9fa5':  # 直接去掉不是中文的部分,包括标点符号和一些英文字母之类
            frequency_one[word] = frequency_one.get(word, 0) + 1
    if mode == 1:
        return frequency_one

这里通过判断'\u4e00' <= word <= '\u9fa5'直接判断了语料是否为中文,这是为了避免一些在预处理中未能被剔除的符号、英文字母等不是中文的内容。
在二元模型下,即认为每个字出现的概率只与它的前一个字有关,此时的词频统计代码如下:

    if mode == 2:
        frequency_two = {
   }
        for i in range(len(content) - 1):
            if '\u4e00' <= content[i] <= '\u9fa5' and '\u4e00' <= content[i+1] <= '\u9fa5':  # 直接去掉不是中文的部分,包括标点符号和一些英文字母之类
                frequency_two[(content[i], content[i + 1
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
深度学习进阶自然语言处理是指在深度学习的基础上,更加深入地应用于自然语言处理领域的技术和方法。它主要包括以下几个方面的内容: 1. 词向量表示:深度学习进阶自然语言处理中,常用的一种技术是将词语表示为向量形式,以便于计算机进行处理。常见的词向量表示方法有Word2Vec、GloVe等。 2. 语言模型:语言模型是自然语言处理中的一个重要任务,它用于预测下一个词语或者句子的概率。深度学习方法可以通过使用循环神经网络(RNN)或者Transformer等模型来建立语言模型。 3. 序列标注:序列标注是指给定一个输入序列,为每个输入元素打上相应的标签。在自然语言处理中,常见的序列标注任务包括命名实体识别、词性标注等。深度学习方法可以通过使用条件随机场(CRF)或者长短时记忆网络(LSTM)等模型来解决序列标注问题。 4. 文本分类:文本分类是指将文本划分到不同的类别中。在自然语言处理中,常见的文本分类任务包括情感分析、垃圾邮件过滤等。深度学习方法可以通过使用卷积神经网络(CNN)或者循环神经网络(RNN)等模型来进行文本分类。 5. 机器翻译:机器翻译是指将一种语言的文本转换为另一种语言的文本。深度学习方法可以通过使用编码-解码模型,如循环神经网络(RNN)或者Transformer等模型来进行机器翻译。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值