Python Gensim文本分析——从文本预处理到TFIDF、LDA建模分析

Petra ·
更新时间:2024-11-13
· 936 次阅读

基于Gensim的Python的文本分析方法:TFIDF LDA1、简介2、中文文本预处理3、Gensim文本挖掘3.1 TFIDF文本分析3.2 LDA文本分析4、总结 1、简介

文本数据的挖掘在当今互发达的联网环境下显得越来越具有价值,数据分析师Seth Grimes曾指出“80%的商业信息来自非结构化数据。本文以中文文本数据作为分析对象,针对中文文本存在的特征进行文本预处理,并调用Gensim工具包实现对文本的TFIDF建模已经LDA建模,从文本中抽取出的特征进行表征文本信息,可用于后续文本相似度、个性化推荐等研究。

2、中文文本预处理

首先,观察如下一条用户在网上所发表的评论:
在这里插入图片描述
不难发现,该用户发表的内容中不仅包含文字,还包括标点符号、emoji表情符号以及url网页链接,是一条十分具有代表性的现在文本数。诸如此类的文本数据,在进行文本挖掘之前,需要进行数据清洗,去除上述干扰信息从而避免影响文本分析的准确性。此外,文本分析的基本单位是词,需要对句子进行分词处理,去除没有实际意义的停用词。
本文通过Pyhon进行文本数据预处理,利用了中文停用词表去除停用词,调用了jieba分词,(注:中文停用词版本较多,可自行下载,这里提供一个版本: 停用词,提取码: h8xn),处理代码如下:

# coding=utf-8 import jieba, re # 去除原始字符串中的url def remove_urls(raw_sentence): # 正则表达式 url_reg = r'[a-z]*[:.]+\S+' result = re.sub(url_reg, '', raw_sentence) return result # 去除原始字符串中的emoji字符 def remove_emoji(raw_sentence): try: co = re.compile(u'[\U00010000-\U0010ffff]') except re.error: co = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]') return co.sub('', raw_sentence) return result # 创建停用词表 def stopwordslist(): stopwords = [line.strip() for line in open('data/stopWords.txt', encoding='UTF-8').readlines()] return stopwords # 利用jieba分词对文档进行中文分词 def seg_depart(raw_sentence): sentence_depart = jieba.cut(raw_sentence.strip()) stopwords = stopwordslist() outstr = '' for word in sentence_depart: if word not in stopwords: outstr += word outstr += " " return outstr #测试 sentence = "大众、奥迪现在几乎全部的最新电子科技都用在奥迪身上了,A4L的配置新科技应用很明显…



lda gensim Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号