文本数据分析(二)

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

训练集上正负样本的长度散点分布

验证集上正负样本的长度散点分布:

分析:

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

2.获取不同词汇总数统计

3. 获取训练集高频形容词词

思路分析:

1 获得训练集上正样本 p_train_data

eg: 先使用逻辑==操作检索符合正样本 train_data[train_data['label'] == 1]

2 获取正样本的每个句子的形容词 p_a_train_vocab = chain(*map(a,b))

3 调用绘制词云函数

代码片段:

python 复制代码
# 使用jieba中的词性标注功能
import jieba.posseg as pseg
from wordcloud import WordCloud

# 每句话产生形容词列表
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):
    # 实例化词云生成器对象
    wordcloud = WordCloud(font_path="./SimHei.ttf", max_words=100, background_color='white')
    # 准备数据
    keywords_string = " ".join (keywords_list)
    # 产生词云
    wordcloud.generate(keywords_string)

    # 画图
    plt.figure()
    plt.imshow(wordcloud, interpolation="bilinear")
    plt.axis('off')
    plt.show()

训练集正样本形容词词云:

训练集负样本形容词词云:

4 获取验证集形容词词云

python 复制代码
# 获得验证集上正样本
# 这部分获取的数据有问题,根据自己的路径更改
valid_data = pd.read_csv(filepath_or_buffer='./cn_data/train.tsv', sep='\t')     
p_valid_data = valid_data[valid_data["label"]==1]["sentence"]

# 对正样本的每个句子的形容词
valid_p_a_vocab = chain(*map(lambda x: get_a_list(x), p_valid_data))
#print(train_p_n_vocab)

# 获得验证集上负样本
n_valid_data = valid_data[valid_data["label"]==0]["sentence"]

# 获取负样本的每个句子的形容词
valid_n_a_vocab = chain(*map(lambda x: get_a_list(x), n_valid_data))

# 调用绘制词云函数
get_word_cloud(valid_p_a_vocab)
get_word_cloud(valid_n_a_vocab)

验证集正样本形容词词云

验证集负样本形容词词云:

分析:

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

5.小结

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

学习了常用的几种文本数据分析方法: * 标签数量分布 * 句子长度分布 * 词频统计与关键词词云

学习了基于真实的中文酒店评论语料进行几种文本数据分析方法. * 获得训练集和验证集的标签数量分布 * 获取训练集和验证集的句子长度分布 * 获取训练集和验证集的正负样本长度散点分布 * 获得训练集与验证集不同词汇总数统计 * 获得训练集上正负的样本的高频形容词词云

相关推荐
怒放吧德德1 小时前
Python3基础:基础实战巩固,从“会用”到“活用”
后端·python
aiguangyuan1 小时前
基于BERT的中文命名实体识别实战解析
人工智能·python·nlp
喵手1 小时前
Python爬虫实战:知识挖掘机 - 知乎问答与专栏文章的深度分页采集系统(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集知乎问答与专栏文章·采集知乎数据·采集知乎数据存储sqlite
铉铉这波能秀1 小时前
LeetCode Hot100数据结构背景知识之元组(Tuple)Python2026新版
数据结构·python·算法·leetcode·元组·tuple
kali-Myon1 小时前
2025春秋杯网络安全联赛冬季赛-day2
python·安全·web安全·ai·php·pwn·ctf
Olamyh2 小时前
【 超越 ReAct:手搓 Plan-and-Execute (Planner) Agent】
python·ai
deepxuan2 小时前
Day7--python
开发语言·python
曲幽2 小时前
FastAPI不止于API:手把手教你用Jinja2打造动态Web页面
python·fastapi·backend·jinja2·full stack·template engine·web development
禹凕2 小时前
Python编程——进阶知识(多线程)
开发语言·爬虫·python
Faker66363aaa2 小时前
基于YOLOv8-GhostHGNetV2的绝缘子破损状态检测与分类系统实现
yolo·分类·数据挖掘