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

青岛网站建设系统推广网站有效的方法

青岛网站建设系统,推广网站有效的方法,如何能去医疗网站做编辑,学软件工程可以从事什么工作文本数据分析 1.背景 文本数据分析,也称为文本挖掘或文本分析,是指**从非结构化的文本数据中提取有价值的信息、模式和见解的过程。**随着互联网和社交媒体的快速发展,文本数据变得越来越丰富,掌握文本数据分析技术对于许多领域…

文本数据分析

1.背景

文本数据分析,也称为文本挖掘或文本分析,是指**从非结构化的文本数据中提取有价值的信息、模式和见解的过程。**随着互联网和社交媒体的快速发展,文本数据变得越来越丰富,掌握文本数据分析技术对于许多领域都至关重要。


2.常用的文本数据分析方法

  • 数据标签分布
  • 句子长度分布
  • 词频统计
  • 关键词词云
语料数据介绍
数据来源:中文酒店评论语料
结构:sentence,label- sentence:用户评论- label:1对应积极情绪,0代表消极情绪
=========================================================
目的:使用以上数据,介绍常用的几种文本数据分析方法
部分数据展示
sentencelabel
早餐不好,服务不到位,晚餐无西餐,早餐晚餐相同,房间条件不好,餐厅不分吸烟区.房间不分有无烟房.0
去的时候 ,酒店大厅和餐厅在装修,感觉大厅有点挤.由于餐厅装修本来该享受的早饭,也没有享受(他们是8点开始每个房间送,但是我时间来不及了)不过前台服务员态度好!1
有很长时间没有在西藏大厦住了,以前去北京在这里住的较多。这次住进来发现换了液晶电视,但网络不是很好,他们自己说是收费的原因造成的。其它还好。1

1.数据标签分布

应用于分类问题,用来查看各类别对应的样本数量的分布,查看是否存在样本类别不均衡问题

  • 作用

    • 了解数据集中各类别的平衡性
    • 指导模型训练
    • 选择合适的评估指标
    • 指导数据增强或重采样
  • 用到的技术栈

    ​ 使用sns.countplot()统计label标签的0,1分布数量

    • sns.countplot()介绍

      seaborn.countplot() 是 seaborn 库中用于可视化类别型变量分布的常用函数,它可以快速绘制每个类别的观测数量
      核心功能

      • 自动计数:自动统计每个类别的样本数量,无需手动计算
      • 分类展示:直观展示离散型变量(如性别、国家、产品类别)的分布
      • 横向/纵向:支持水平 (orient=‘h’) 或垂直 (orient=‘v’) 显示
      • 多级分类:可通过 hue 参数添加次级分类维度

      参数列表

      sns.countplot(x=None,          # 指定x轴变量(垂直条形图)y=None,          # 指定y轴变量(水平条形图)hue=None,        # 次级分类变量data=None,       # 输入数据(DataFrame或数组)order=None,      # 控制主分类顺序hue_order=None,  # 控制次级分类顺序palette=None,    # 颜色方案ax=None,         # matplotlib轴对象**kwargs         # 其他matplotlib参数
      )
      
  • 实现代码

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt# todo:1- 获取标签数量分布
def dm_label_sns_count_plot():# 1. 设置显示风格plt.style.use('fivethirtyeight')# 2. 读取训练集,验证集数据train_data = pd.read_csv(filepath_or_buffer='./data/train.tsv', sep='\t')dev_data = pd.read_csv(filepath_or_buffer='./data/dev.tsv', sep='\t')# 3.统计label标签的0,1分组数量sns.countplot(data=train_data, x='label')plt.title('train_label')plt.show()# 4.统计验证集上标签数量分布sns.countplot(data=dev_data, x='label')plt.title('dev_label')plt.show()
  • 部分效果展示

在这里插入图片描述


2.句子长度分布

概念:指数据集中各个句子的长度(通常以词语数量来衡量)的分布情况,了解句子的长短特征

  • 作用

    • 了解文本数据的特征
    • 指导模型输入长度设置
    • 指导预处理
    • **发现异常值:**某些极短或极长的句子可能是异常值,需要进行处理。
  • 思路分析

    • 获取句子长度分布

    什么是句子长度分布? 求长度为50的有多少个 长度51的有多少个 长度为52的有多少个

    • 设置显示风格: plt.style.use('fivethirtyeight')
    • 读取数据集: pd.read_csv
    • 新增数据长度列: train_data['sentence_length']
    • 绘制数据长度分布柱状图 : sns.countplot
def dm_len_sns_countplot_distplot():# 1 设置显示风格plt.style.use('fivethirtyeight')plt.style.use('fivethirtyeight')# 2 pd.read_csv 读训练集 验证集数据train_data = pd.read_csv(filepath_or_buffer='data/train.tsv', sep='\t')dev_data = pd.read_csv(filepath_or_buffer='data/dev.tsv', sep='\t')# 3 求数据长度列 然后求数据长度的分布# map(func, *iterables): 对可迭代对象中的每个元素应用到指定的函数上, 返回一个迭代器对象# list(map(lambda x: len(x), train_data['sentence'])): 获取每个句子的长度# [len(value) for value in train_data['sentence'].values]: 也可以用此行代码实现获取每个句子的长度train_data['sentence_length'] = list(map(lambda x: len(x), train_data['sentence']))# 4 绘制数据长度分布图-柱状图sns.countplot(x='sentence_length', data=train_data)# sns.countplot(x=train_data['sentence_length'])plt.xticks([]) # x轴上不要提示信息# plt.title('sentence_length countplot')plt.show()# 5 绘制数据长度分布图-曲线图sns.displot(x='sentence_length', data=train_data, kde=True)# sns.displot(x=train_data['sentence_length'])plt.yticks([]) # y轴上不要提示信息plt.show()# 验证集# 3 求数据长度列 然后求数据长度的分布dev_data['sentence_length'] = list(map(lambda x: len(x), dev_data['sentence']))# 4 绘制数据长度分布图-柱状图sns.countplot(x='sentence_length', data=dev_data)# sns.countplot(x=dev_data['sentence_length'])plt.xticks([])  # x轴上不要提示信息# plt.title('sentence_length countplot')plt.show()# 5 绘制数据长度分布图-曲线图sns.displot(x='sentence_length', data=dev_data, kde=True)# sns.displot(x=dev_data['sentence_length'])plt.yticks([])  # y轴上不要提示信息plt.show()
  • 效果展示

在这里插入图片描述

在这里插入图片描述

3.词频统计

指统计文本数据集中每个词语出现的频率。

  • 作用

    • 了解文本数据的关键词
    • 过滤停用词
    • 选择特征(词频可以作为一种特征,用于文本分类、信息检索等任务。)
    • 可视化关键词
  • 实现代码

# 导入jieba用于分词
# 导入chain方法用于扁平化列表
import jieba
from itertools import chaindef dm_word_count():#设置显示风格plt.style.use('fivethirtyeight')plt.style.use('fivethirtyeight')# 读训练集 验证集数据train_data = pd.read_csv(filepath_or_buffer='data/train.tsv', sep='\t')dev_data = pd.read_csv(filepath_or_buffer='data/dev.tsv', sep='\t')# 进行训练集的句子进行分词, 并统计出不同词汇的总数# chain(*iterables): 将多个可迭代对象合并为一个可迭代对象# *:拆解嵌套的列表/元组等 *[[1,2],[3,4]]->[1,2],[3,4]# *[jieba.lcut(value) for value in train_data["sentence"].values] -> 也可以用此代码替换train_vocab = set(chain(*map(lambda x: jieba.lcut(x), train_data["sentence"])))print("训练集共包含不同词汇总数为:", len(train_vocab))# 进行验证集的句子进行分词, 并统计出不同词汇的总数dev_vocab = set(chain(*map(lambda x: jieba.lcut(x), dev_data["sentence"])))print("训练集共包含不同词汇总数为:", len(dev_vocab))
  • 实现效果
训练集共包含不同词汇总数为: 12162
训练集共包含不同词汇总数为: 6857

4.关键词词云

一种可视化技术,以图形化的方式展示文本中词语的频率,通常频率越高的词语显示得越大。

  • 作用

    • 直观展示关键词
    • 帮助理解文本主题
    • 信息传递
  • 获取训练集高频词词云

    • 思路分析
      • 获得训练集上正样本

      • 获取正样本的每个句子的形容词

# 使用jieba中的词性标注功能
import jieba.posseg as pseg
from wordcloud import WordCloud
# pip install wordcloud -i https://mirrors.aliyun.com/pypi/simple/# 每句话产生形容词列表
def get_a_list(text):r = []# 使用jieba的词性标注方法切分文本 找到形容词存入到列表中返回for g in pseg.lcut(text):if g.flag == "a":r.append(g.word)return r# 根据词云列表产生词云
def get_word_cloud(keywords_list):# 实例化词云生成器对象# font_path: 字体文件路径# max_words: 词云图上最多显示的词数# background_color: 词云图背景颜色, 默认black黑色wordcloud = WordCloud(font_path="data/SimHei.ttf", max_words=100, background_color='white')# 准备数据keywords_string = " ".join (keywords_list)# 产生词云wordcloud.generate(keywords_string)# 画图plt.figure()# 显示词云# nterpolation="bilinear":指定图像的插值方式,使图像在显示时更加平滑。plt.imshow(wordcloud, interpolation="bilinear")plt.axis('off')plt.show()def dm_train_word_cloud():# 1 获得训练集上正样本p_train_data#   eg: 先使用逻辑==操作检索符合正样本 train_data[train_data['label'] == 1]train_data = pd.read_csv(filepath_or_buffer='data/train.tsv', sep='\t')p_train_data = train_data[train_data['label'] == 1 ]['sentence']# 2 获取正样本的每个句子的形容词 p_a_train_vocab = chain(*map(a,b))p_a_train_vocab = chain(*map(lambda x: get_a_list(x) , p_train_data))# print(p_a_train_vocab)# print(list(p_a_train_vocab))# 3 调用绘制词云函数get_word_cloud(p_a_train_vocab)print('*' * 60 )# 训练集负样本词云n_train_data = train_data[train_data['label'] == 0 ]['sentence']# 2 获取正样本的每个句子的形容词 p_a_train_vocab = chain(*map(a,b))n_a_train_vocab = chain(*map(lambda x: get_a_list(x) , n_train_data))# print(n_a_dev_vocab)# print(list(n_a_dev_vocab))# 3 调用绘制词云函数get_word_cloud(n_a_train_vocab)
  • 效果展示

ain_data[train_data[‘label’] == 0 ][‘sentence’]

# 2 获取正样本的每个句子的形容词 p_a_train_vocab = chain(*map(a,b))
n_a_train_vocab = chain(*map(lambda x: get_a_list(x) , n_train_data))
# print(n_a_dev_vocab)
# print(list(n_a_dev_vocab))# 3 调用绘制词云函数
get_word_cloud(n_a_train_vocab)

- 效果展示![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a4f5bc265c334246a8215f268338d7de.png#pic_center)
http://www.dtcms.com/wzjs/150089.html

相关文章:

  • 一个网站用多少数据库表google网页版入口
  • 重庆品牌网站建设网站建设排名优化
  • 佛山专业网站建设团队百度链接提交工具
  • 做网站步骤南宁推广公司
  • bing翻译插件 WordPress天津百度快速排名优化
  • 广州市番禺区住房和建设局网站昆明seo
  • 网站模板怎么上传网站推广找客户
  • 做it的兼职网站有哪些软文发稿网站
  • 购买qq空间访客的网站疫情放开最新消息今天
  • 江西省建设工程学校网站2022适合小学生的简短新闻
  • 学校网站开发图片素材个人网站网页首页
  • 柔造网站定制今日小说搜索风云榜
  • 好的php网站武汉全网推广
  • wordpress 优化seo研究协会
  • 义乌网站制作怎么做网络平台
  • WordPress网站自媒体模板国内搜索引擎排行榜
  • 网站建设过程中遇到的问题上海百度推广电话
  • 常见网站漏洞西安百度推广公司
  • 网站要怎么做才能让360收录广告推广平台网站
  • 有代源码怎么做自己网站seo排名优化的方法
  • 免费合作加工厂优化大师官方
  • 什么网站可以做锦鲤活动广东vs北京首钢
  • 建设厅培训中心网站中国十大关键词
  • 大良营销网站建设效果友情链接购买网站
  • 工程公司名字优化网站推广网站
  • 新闻网站建设条件百度学术搜索入口
  • 网站制作一般需要多少钱?怎么样做免费的百度seo
  • 百度 网站地图怎么做论坛平台
  • 网站开发用什么系统比较好新闻软文怎么写
  • 推广网站优化seo教程上排名东莞做网站哪个公司好