还在对着一堆用户评论发呆?学会文本分词,再乱也能抓重点!

目录

一、引言

二、文本分词是什么

三、实战案例

01、准备工具

02、文本分词

03、词频词性

四、分词结果

01、高频词告诉你大家在聊什么

02、词性标注帮你理清句子结构

五、代码展示

六、总结


一、引言

       当你爬取到大量用户评论时,想快速知道大家在关注什么?却不知道如何提炼重点?其实,只要掌握「文本分词」这招都能轻松解决。今天就用一个简单的案例,带大家看看文本分词是怎么把杂乱的文本 “变废为宝” 的 —— 从评论里,挖出核心话题、高频词、给每个词分词性!

图片

二、文本分词是什么

文本分词就是把一段连续的文本,拆分成一个个带有意义的词语。

比如:“我爱吃苹果”经过分词后会变成 “我 / 爱 / 吃 / 苹果”。

为啥中文需要分词?因为中文不像英文有空格分隔,“我爱吃苹果” 既可以是 “我 / 爱 / 吃 / 苹果”,也可能被误读为 “我 / 爱吃 / 苹果”,必须通过分词明确词语边界,才能进行后续分析。

三、实战案例

01、准备工具

分词不是瞎拆的,得有 “规则” 才行。这次用到了两个关键文件:

停用词表(cn_stopwords.txt):过滤掉 “的”、“是”、“在” 等这种没实际意义的虚词,避免干扰结果。

自定义词典(清华分词词典.txt):能提前定义专业术语(比如 “AIGC”、“智慧农业”),确保这些词不被拆错(比如 “AIGC” 不会被分成 “A/I/G/C”)。可以根据行业需要增加自定义词典里的词语。

02、文本分词

用 Python 的jieba库(中文分词神器)对每条评论进行处理:

比如评论 “中国 AI 医疗,2016 年就开始研发和投入了”,会被拆成 “中国”“AI”“医疗”“2016 年”“开始”“研发”“投入”。
(这里自动跳过了停用词,比如 “就”“和” 不会出现在结果里~)

03、词频词性

分词后还能做两件事:

(1)词频统计:算每个词出现的次数,找出热门话题

(2)词性标注:给每个词贴标签(比如 “AI” 是英文词,“研发” 是动词,“智能手机” 是名词)

四、分词结果

01、高频词告诉你大家在聊什么

“AI” 出现了 4 次,是绝对的核心话题

“研发”“人工”“智能手机”“食品工业” 各出现 2 次,说明讨论围绕 AI 的研发、应用场景(比如替代人工、和智能手机结合)展开

图片

02、词性标注帮你理清句子结构

名词(n)最多:“医疗”“行业”“劳动力” 等,都是讨论的内容;动词(v)其次:“投入”“打压”“取代” 等,体现了动作和趋势;还有英文词(eng):“AI”“AIGC”,说明这些概念是讨论的重点。

图片

五、代码展示

import jieba
import pandas as pd
import codecs  # Python编#解码器(codec)库
import jieba.posseg as psegfrom collections 
import Counter
# 读取 Excel 文件
data = pd.read_excel('测试.xlsx')#修改成文件所在路径!!!
a = data.head()
# print(a)
# 定义停用词文件路径
stop_words_file = 'cn_stopwords.txt'
# 定义自定义中文词典文件路径
custom_dict_file = '清华分词词典.txt'
# 读取停用词文件
with codecs.open(stop_words_file, 'r', 'utf-8') as f:
    stop_words = [line.strip()
                      for line in f.readlines()]
                          # print(stop_words)
# 读取自定义词典文件
with codecs.open(custom_dict_file, 'r', 'utf-8') as f:
    custom_dict = [line.strip()
                       for line in f.readlines()]
                           # print(custom_dict)
# 对文本列进行分词
text = data['评论'].valuesseg_list = []  
# 定义一个空列表# 加载自定义词典,只需加载一次jieba.load_userdict(custom_dict_file)
for text_item in text:
    # 将数据转换为字符串类型
    text_item = str(text_item)
    # 进行分词,并去除停用词
    seg = [word
    for word in jieba.cut(text_item)
    if word not in stop_words]
    seg_list.extend(seg)  # 将分词结果添加到列表中
# 输出分词结果
for word in seg_list:
    print(word)
seg_word = []
for word in seg_list:
    seg_word.append({'分词结果': word})
for word in seg_word:
    print(word)
df = pd.DataFrame(seg_word)
df.to_excel('分词结果.xlsx', index=False)  # 不导出索引列

六、总结

最后分享两个实用技巧,亲测能让分词更靠谱:

1.自定义词典要更新:如果涉及专业领域(比如 “智慧农业”),提前把术语放进词典,避免被拆错;

2.停用词表按需调整:比如分析情感时,“开心”“讨厌” 这类词不能当停用词删掉,但 “嗯”“哦” 可以去掉。

关注【小小科研】公众号,后台回复:文本分词

免费获取分词小工具!

图片

这是我们文本建模的第一期:“文本分词”。

关注公众号【小小科研】下一期我们将手把手教大家怎么用分词后的结果进行情感分析,敬请期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小小 科研

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

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

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

打赏作者

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

抵扣说明:

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

余额充值