中文文本清洗和结巴分析,写一个详细python案例

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 你可以根据你的需要添加、删除或修改其中的词语。通常,停用词表会根据特定的任务和数据进行调整。

中文文本清洗和结巴分析在自然语言处理中是非常常见的任务,本案例将演示如何用Python进行中文文本清洗和结巴分析。具体来说,我们将使用Python中的re、jieba和pandas库,对中文文本数据进行清洗,并将文本数据分词后存储为DataFrame。

首先,我们需要准备一些中文文本数据,本案例将使用一个示例数据集,该数据集包含了一些中文新闻文章的标题和正文。

1. 导入库和数据

首先,我们需要导入必要的库和数据:


import re
import jieba
import pandas as pd
# 读取数据
data = pd.read_csv('news_data.csv')

2. 文本清洗

在对中文文本进行分词前,我们需要对文本进行清洗,包括去除标点符号、数字和停用词等。具体步骤如下:

2.1 去除标点符号和数字

我们可以使用正则表达式去除中文文本中的标点符号和数字。下面的代码演示了如何去除标点符号和数字:


def clean_text(text):
    # 去除标点符号和数字
    text = re.sub(r'[^\u4e00-\u9fa5]+', '', text)
    return text

2.2 去除停用词

停用词是指在文本中经常出现但并不对文本主题有贡献的词语,例如“的”、“了”等。我们可以使用一个停用词表对文本进行去除停用词。下面的代码演示了如何去除停用词:

def remove_stopwords(text):
    # 加载停用词表
    stopwords = set(pd.read_csv('stopwords.txt', header=None)[0])
    # 去除停用词
    text = [word for word in text if word not in stopwords]
    return text

3. 分词和统计

在完成文本清洗后,我们可以对文本进行分词和统计。具体步骤如下:

3.1 分词

我们可以使用jieba库对文本进行分词。下面的代码演示了如何使用jieba库对文本进行分词:


def cut_words(text):
    # 分词
    words = jieba.cut(text)
    # 去除停用词
    words = remove_stopwords(words)
    # 返回分词结果
    return words

3.2 统计词频

我们可以使用Python的Counter类对分词结果进行统计。下面的代码演示了如何使用Python的Counter类对分词结果进行统计:


from collections import Counter
# 分词和统计词频
data['words'] = data['text'].apply(clean_text).apply(cut_words)
# 统计词频
word_count = Counter([word for words in data['words'] for word in words])

4. 存储分词结果

最后,我们可以将分词结果存储为DataFrame。下面的代码演示了如何将分词结果存储为DataFrame:


# 存储分词结果
df_word_count = pd.DataFrame.from_dict(word_count, orient='index', columns=['count'])
df_word_count.index.name = 'word'
df_word_count = df_word_count.reset_index()
df_word_count = df_word_count.sort_values('count', ascending=False)

完整代码

最终的代码如下所示:

import re
import jieba
import pandas as pd
from collections import Counter
# 读取数据
data = pd.read_csv('news_data.csv')
def clean_text(text):
    # 去除标点符号和数字
    text = re.sub(r'[^\u4e00-\u9fa5]+', '', text)
    return text
def remove_stopwords(text):
    # 加载停用词表
    stopwords = set(pd.read_csv('stopwords.txt', header=None)[0])
    # 去除停用词
    text = [word for word in text if word not in stopwords]
    return text
def cut_words(text):
    # 分词
    words = jieba.cut(text)
    # 去除停用词
    words = remove_stopwords(words)
    # 返回分词结果
    return words
# 分词和统计词频
data['words'] = data['text'].apply(clean_text).apply(cut_words)
word_count = Counter([word for words in data['words'] for word in words])
# 存储分词结果
df_word_count = pd.DataFrame.from_dict(word_count, orient='index', columns=['count'])
df_word_count.index.name = 'word'
df_word_count = df_word_count.reset_index()
df_word_count = df_word_count.sort_values('count', ascending=False)
print(df_word_count.head(20))

结果展示

最终的结果将输出分词结果中出现频率最高的20个词语以及它们的词频:

      word  count
16      美国    368
66      中国    291
114     市场    183
233     发展    161
30      公司    157
54      政府    142
34      企业    132
19      日本    128
12      国际    124
49      投资    114
147     经济    111
156    汽车产业    109
237    人工智能    107
307     技术    106
35      行业    103
123     人民币   100
25      互联网   100
5        金融    99
308  区块链技术    95
248     机会    94

以下是一个简单的示例 stopwords.txt 文件,包含了一些中文停用词:


你可以根据你的需要添加、删除或修改其中的词语。通常,停用词表会根据特定的任务和数据进行调整。

相关文章
|
9月前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
10月前
|
缓存 监控 算法
唯品会item_search - 按关键字搜索 VIP 商品接口深度分析及 Python 实现
唯品会item_search接口支持通过关键词、分类、价格等条件检索商品,广泛应用于电商数据分析、竞品监控与市场调研。结合Python可实现搜索、分析、可视化及数据导出,助力精准决策。
|
9月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
9月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
9月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
10月前
|
缓存 监控 算法
苏宁item_get - 获得商品详情接口深度# 深度分析及 Python 实现
苏宁易购item_get接口可实时获取商品价格、库存、促销等详情,支持电商数据分析与竞品监控。需认证接入,遵守调用限制,适用于价格监控、销售分析等场景,助力精准营销决策。(238字)
|
10月前
|
JSON 缓存 供应链
电子元件 item_search - 按关键字搜索商品接口深度分析及 Python 实现
本文深入解析电子元件item_search接口的设计逻辑与Python实现,涵盖参数化筛选、技术指标匹配、供应链属性过滤及替代型号推荐等核心功能,助力高效精准的电子元器件搜索与采购决策。

推荐镜像

更多