简单易学的文本分析2——词频分析

1. 导入必要的库

import pandas as pd
import jieba.posseg as pseg
from collections import Counter
import os
  • pandas:用于数据处理和分析,特别是处理表格数据。
  • jieba.possegjieba是一个中文分词库,posseg模块用于分词并同时获取词性标注。
  • collections.Counter:用于统计元素出现的次数,是一个非常方便的计数器工具。
  • os:用于与操作系统交互,这里虽然导入了这个库,但实际代码中并未使用它。

2. 读取文本文件内容

text = open("gpt4_system2_80%.txt", encoding="utf-8").read()
  • 这行代码读取一个名为 gpt4_system2_80%.txt 的文本文件,并将其内容全部读取为一个字符串 text
  • encoding="utf-8" 指定了读取文件时使用 UTF-8 编码,这在处理中文文本时很常见。

3. 使用 jieba 进行分词和词性标注

words = pseg.cut(text)
  • 使用 jieba.posseg.cut 方法对文本进行分词,同时获取每个词的词性。words 是一个生成器,生成 (word, flag) 的元组,其中 word 是词,flag 是词性标注。

4. 根据词的长度和词性提取词汇

report_words = []
for word, flag in words:
    if len(word) >= 2 and flag.startswith(('n', 'v', 'a')):
        report_words.append((word, flag))
  • 这段代码遍历所有的 (word, flag) 元素,只保留长度不小于 2 的词,并且词性以 n(名词)、v(动词)或 a(形容词)开头的词。
  • 满足条件的 (word, flag) 元素被添加到 report_words 列表中。

5. 统计高频词汇

word_counts = Counter([word for word, flag in report_words])
most_common_words = word_counts.most_common(100)
  • 使用 Counterreport_words 中的词进行计数,得到一个词频的字典 word_counts
  • word_counts.most_common(100) 获取出现频率最高的 100 个词。

6. 构建包含词频和词性的数据

data = []
for word, freq in most_common_words:
    for w, flag in report_words:
        if w == word:
            data.append([word, freq, flag])
            break
  • 创建一个 data 列表来存储最终的数据,每一行包含词、词频和词性。
  • 对于每一个在 most_common_words 中的词,遍历 report_words 找到该词的词性,将其与词频一起添加到 data 中。

7. 创建 DataFrame 并保存为 Excel 文件

df = pd.DataFrame(data, columns=['词语', '词频', '词性'])
df.insert(0, 'model', 'gpt4_system2_80%')
df.to_excel("gpt4_system2_80%.xlsx", index=False)
  • 使用 pandas 创建一个 DataFrame,其中包含三列:词语词频词性
  • df.insert(0, 'model', 'gpt4_system2_80%')DataFrame 的最前面插入一列 model,其值为 gpt4_system2_80%,表示这个数据集的来源或处理模型。
  • 最后,将 DataFrame 保存为名为 gpt4_system2_80%.xlsx 的 Excel 文件。

总结

这段代码的主要功能是从文本中提取出特定词性和长度的高频词汇,并将这些词的词频和词性信息保存到一个 Excel 文件中,便于进一步分析或使用。


最总结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱做科研的桶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值