当前位置: 首页 > news >正文

建美食网站有哪些原因做小程序公司哪家好

建美食网站有哪些原因,做小程序公司哪家好,软件工程师资格证,郑州网站建设郑州文章目录 4 文本数据分析1 文件数据分析介绍2 数据集说明3 获取标签数量分布4 获取句子长度分布5 获取正负样本长度散点分布6 获取不同词汇总数统计7 获取训练集高频形容词词云8 小结 4 文本数据分析 学习目标 了解文本数据分析的作用.掌握常用的几种文本数据分析方法. 1 文…

文章目录

  • 4 文本数据分析
      • 1 文件数据分析介绍
      • 2 数据集说明
      • 3 获取标签数量分布
      • 4 获取句子长度分布
      • 5 获取正负样本长度散点分布
      • 6 获取不同词汇总数统计
      • 7 获取训练集高频形容词词云
      • 8 小结¶

4 文本数据分析

学习目标

  • 了解文本数据分析的作用.
  • 掌握常用的几种文本数据分析方法.

1 文件数据分析介绍

文本数据分析的作用:

  • 文本数据分析能够有效帮助我们理解数据语料, 快速检查出语料可能存在的问题, 并指导之后模型训练过程中一些超参数的选择.

常用的几种文本数据分析方法:

  • 标签数量分布
  • 句子长度分布
  • 词频统计与关键词词云

2 数据集说明

  • XNLI(Cross-lingual NLI - Natural Language Inference)数据集是一个用于评估自然语言推理(NLI)模型跨语言能力的基准。它基于Multi-NLI数据集,但扩展到了包括15种不同语言的文本,旨在测试和促进跨语言理解的研究。XNLI数据集中的任务是判断一对句子(前提和假设)之间的逻辑关系,标签分类共有三种可能的关系:

  • 蕴含(Entailment):如果根据前提句子的内容,可以推断出假设句子为真,则两者之间的关系为“蕴含”。例如,前提句:“一只猫坐在窗台上。” 假设句:“有一只动物在窗户旁边。” 这里,前提的信息足以支持假设句,因此这对句子的关系就是蕴含。

  • 中性(Neutral):当中前提句子既不提供足够的信息来证明假设句子为真,也不足以反驳它时,两者之间的关系被视为“中性”。例如,前提句:“一只猫坐在窗台上。” 假设句:“这只猫喜欢晒太阳。” 在这种情况下,前提并没有给出足够的信息来确定假设的真实性,所以它们的关系是中性的。

  • 矛盾(Contradiction):如果前提句子的内容与假设句子直接冲突或相互矛盾,则两者之间的关系为“矛盾”。例如,前提句:“一只猫坐在窗台上。” 假设句:“没有动物在窗台附近。” 这里,前提句明确指出有一个动物(即猫)在窗台上,这与假设句所述内容相矛盾。
    通过这些分类,XNLI数据集能够有效地评估和比较不同语言处理系统在理解和推理自然语言方面的性能,尤其是在跨语言环境下。这对于推动机器翻译、多语言文本分析和其他跨语言应用的发展非常重要。
    在这里插入图片描述

3 获取标签数量分布

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import jieba
from itertools import chain
import jieba.posseg as pseg  # 词性标注
from wordcloud import WordCloud# 1 获取数据集的标签数量分布
def label_countplot():# 01 设置显示风格plt.style.use('fivethirtyeight')# 02 读取数据# 读取训练集数据train_data = pd.read_csv('./hdata/xnli_zh/train.csv')print(train_data.head())test_data = pd.read_csv('./hdata/xnli_zh/test.csv')print(test_data.head())# 03 绘制条形图 训练集 测试集sns.countplot(x='label', data=train_data)plt.title('train_data')plt.show()sns.countplot(x='label', data=test_data)plt.title('test_data')plt.show()

运行结果

  • 训练集样本标签数量分布
    在这里插入图片描述
  • 测试集样本标签数量分布
    在这里插入图片描述
  • 分析:
    • 在深度学习模型评估中, 我们一般使用ACC作为评估指标, 若想将ACC的基线定义在50%左右, 则需要我们的正负样本比例维持在1:1左右, 否则就要进行必要的数据增强或数据删减. 上图中训练和验证集正负样本都稍有不均衡, 可以进行一些数据增强.

4 获取句子长度分布


# 2 获取句子长度分布
def len_countplot_displot():# 01 设置显示风格plt.style.use('ggplot')# 02 读取数据train_data = pd.read_csv('./hdata/xnli_zh/train.csv')test_data = pd.read_csv('./hdata/xnli_zh/test.csv')# 03 添加句子长度train_data['sentence_p_length'] = list(map(lambda x: len(x), train_data['premise']))train_data['sentence_h_length'] = list(map(lambda x: len(x), train_data['hypothesis']))test_data['sentence_p_length'] = list(map(lambda x: len(x), test_data['premise']))test_data['sentence_h_length'] = list(map(lambda x: len(x), test_data['hypothesis']))print(train_data.head())print(train_data['sentence_p_length'].max())print(train_data['sentence_h_length'].max())print(test_data['sentence_p_length'].max())print(test_data['sentence_h_length'].max())# 绘制柱状图 曲线图 for 训练集 测试集sns.countplot(x='sentence_p_length', data=train_data)plt.xticks([])plt.show()sns.displot(x='sentence_p_length', data=train_data, kde=True)plt.show()sns.countplot(x='sentence_h_length', data=train_data)plt.xticks([])plt.show()sns.displot(x='sentence_h_length', data=train_data, kde=True)plt.show()sns.countplot(x='sentence_p_length', data=test_data)plt.xticks([])plt.show()sns.displot(x='sentence_p_length', data=test_data, kde=True)plt.show()sns.countplot(x='sentence_h_length', data=test_data)plt.xticks([])plt.show()sns.displot(x='sentence_h_length', data=test_data, kde=True)plt.show()

运行结果
在这里插入图片描述

  • 分析:
    • 通过绘制句子长度分布图, 可以得知我们的语料中大部分句子长度的分布范围, 因为模型的输入要求为固定尺寸的张量,合理的长度范围对之后进行句子截断补齐(规范长度)起到关键的指导作用.

5 获取正负样本长度散点分布


# 3 获取正负样本的长度散点图def len_strip_plot():# 设置风格plt.style.use('Solarize_Light2')# 加载数据train_data = pd.read_csv('./hdata/xnli_zh/train.csv')test_data = pd.read_csv('./hdata/xnli_zh/test.csv')# 添加长度列train_data['sentence_p_length'] = list(map(lambda x: len(x), train_data['premise']))train_data['sentence_h_length'] = list(map(lambda x: len(x), train_data['hypothesis']))test_data['sentence_p_length'] = list(map(lambda x: len(x), test_data['premise']))test_data['sentence_h_length'] = list(map(lambda x: len(x), test_data['hypothesis']))# 绘制图像sns.stripplot(y='sentence_p_length', x='label', data=train_data, hue='label')plt.show()sns.stripplot(y='sentence_p_length', x='label', data=test_data, hue='label')plt.show()

运行结果
在这里插入图片描述
在这里插入图片描述

  • 分析:
    • 通过查看正负样本长度散点图, 可以有效定位异常点的出现位置, 帮助我们更准确进行人工语料审查. 上图中在训练集正样本中出现了异常点, 它的句子长度近250左右, 需要我们人工审查.

6 获取不同词汇总数统计


# 4 统计不同词汇的总数(词表大小)
def word_counts():# 01 读取数据train_data = pd.read_csv('./hdata/xnli_zh/train.csv')test_data = pd.read_csv('./hdata/xnli_zh/test.csv')# 02 获取训练集的词表大小# chain(*map()) 解析:# map返回一个迭代器对象 在这里是分析后的列表# * 解包 把迭代器中的每个元素作为一个独立的参数 传给chain# chain 把多个可迭代对象 合并成一个可迭代对象 可以用set list 直接返回所有元素 也可以循环遍历train_vocab = set(chain(*map(lambda x: jieba.lcut(x), train_data['premise'])))print(len(train_vocab))test_vocab = set(chain(*map(lambda x: jieba.lcut(x), test_data['premise'])))print(len(test_vocab))

运行结果
训练集词表大小 75660 测试集词表大小 7262

7 获取训练集高频形容词词云


# 5 绘制词云
# 5.1 绘制每个句子的形容词词云
def get_a_list(text):res = []for g in pseg.lcut(text):if g.flag == 'a':res.append(g.word)return res# 5.2 根据关键词列表生成词云
def get_word_cloud(keywords_list):# 实例化词云对象my_wordcloud = WordCloud(font_path='./cn_data/SimHei.ttf', max_words=200, background_color='white')# 准备数据a_str = ' '.join(keywords_list)# 生成词云my_wordcloud.generate(a_str)# 绘图展示plt.figure()plt.imshow(my_wordcloud, interpolation="bilinear")plt.axis('off')plt.show()def word_cloud():# 获取数据train_data = pd.read_csv('./hdata/xnli_zh/train.csv')# 获取正样本p_train_data = train_data[train_data['label'] == 0]['premise']# 获取形容词列表p_a_words = list(chain(*map(lambda x: get_a_list(x), p_train_data)))# 绘制词云get_word_cloud(p_a_words)# 绘制负样本的词云n_train_data = train_data[train_data['label'] ==2]['premise']n_a_words = list(chain(*map(lambda x: get_a_list(x), n_train_data)))get_word_cloud(n_a_words)

运行结果
在这里插入图片描述
在这里插入图片描述

  • 分析:
  • 根据高频形容词词云显示, 我们可以对当前语料质量进行简单评估, 同时对违反语料标签含义的词汇进行人工审查和修正, 来保证绝大多数语料符合训练标准. 上图中的正样本大多数是褒义词, 而负样本大多数是贬义词, 基本符合要求, 但是负样本词云中也存在"好"这样的褒义词, 因此可以人工进行审查

8 小结¶

  • 文本数据分析的作用:

    • 文本数据分析能够有效帮助我们理解数据语料, 快速检查出语料可能存在的问题, 并指导之后模型训练过程中一些超参数的选择.
  • 常用的几种文本数据分析方法:

    • 标签数量分布
    • 句子长度分布
    • 词频统计与关键词词云
  • 基于XNLI中文语料进行几种文本数据分析方法.

    • 获得训练集和验证集的标签数量分布
    • 获取训练集和验证集的句子长度分布
    • 获取训练集和验证集的正负样本长度散点分布
    • 获得训练集与验证集不同词汇总数统计
    • 获得训练集上正负的样本的高频形容词词云
http://www.dinnco.com/news/68339.html

相关文章:

  • 我有网网站建设青岛百度网站排名优化
  • 17一起来做网站成都seo外包
  • 网站做的一样侵权吗青岛百度推广优化
  • 杭州网站建设培训班seo基础视频教程
  • 金融网站怎么做网站优化服务
  • 怎么做日本钓鱼网站吗永久免费自动建站
  • 给博彩网站做优化搜索引擎seo如何赚钱
  • 深圳海外医疗网站建设福建seo优化
  • 一般多少钱做一个网站哪里可以学seo课程
  • 建设银行插入网银盾网站打不开编程培训
  • 2015做哪个网站能致富seo公司怎样找客户
  • 南昌网站维护淘宝关键词优化推广排名
  • 天猫是b2b电子商务网站吗最有效的推广方式
  • 做海关授权的网站网络推广团队
  • 怎样申请免费网站网络营销推广方法十种
  • 美国做空机构浑水网站营销策划方案案例
  • 备案期间网站能用吗营销方式有哪几种
  • ps网站交互设计站长之家下载
  • 如何设置个人网站百度搜索引擎的使用方法
  • 小程序软件开发制作西安网站seo排名优化
  • 网站没有备案可以做百度推广吗重庆seo网站推广费用
  • 怎么查wordpress主题个人博客seo
  • 免费b2b网站大全黄页88无锡网站建设
  • 总结 设网站免费建站系统哪个好用吗
  • 做赌博网站会被判多久seo工作内容有哪些
  • 杭州网站推广公司网站建设的技术支持
  • 政府网站的模块结构下载班级优化大师
  • 网站怎么做订单磁力猫
  • 网站目录改版如何301跳转呀百度数据库
  • 邢台123式的网站怎么做和业务多一样的平台