文本数据分析-(TF-IDF)(2)

2024-08-31 21:04
文章标签 tf 文本 数据分析 idf

本文主要是介绍文本数据分析-(TF-IDF)(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、TF-IDF与jieba库介绍
    • 1.TF-IDF概述
    • 2.jieba库概述
  • 二、TF-IDF与jieba库的结合
    • 1.结合
    • 2.提取步骤
  • 三,代码实现
    • 1.导入必要的库
    • 读取文件:
    • 3.将文件路径和内容存储到DataFrame
    • 4.加载自定义词典和停用词
    • 5.分词并去除停用词

TF-IDF(Term Frequency-Inverse Document Frequency)与jieba库在文本处理领域有着紧密的联系,尤其是在中文文本分析中。

一、TF-IDF与jieba库介绍

1.TF-IDF概述

TF-IDF是一种统计方法,用于评估一个词语对于一个文件集或一个语料库中的其中一份文件的重要程度。它通过结合词频(TF)和逆文档频率(IDF)两个因素来计算词语的权重。词频(TF)表示某个词在文档中出现的频率,逆文档频率(IDF)则度量了该词在整个文本集合中的重要性。TF-IDF值越高,表示该词在文档中的重要性越大,越能代表文档的主题。

2.jieba库概述

jieba库是一个流行的中文分词库,它支持三种分词模式:精确模式、全模式和搜索引擎模式。除了分词功能外,jieba库还提供了词性标注、关键词提取、添加自定义词典等丰富的功能。其中,关键词提取功能就是基于TF-IDF算法实现的。

二、TF-IDF与jieba库的结合

1.结合

在jieba库中,TF-IDF算法被用于关键词提取。jieba提供了jieba.analyse.extract_tags函数,该函数通过计算文本中每个词的TF-IDF值,并按降序排列,从而提取出最重要的关键词。用户可以通过设置参数来控制返回的关键词数量和是否返回关键词的权重值。
此外,jieba库还支持自定义IDF频率文件,允许用户根据自己的需求调整IDF的计算方式。这为用户提供了更大的灵活性,以适应不同的文本分析场景。

2.提取步骤

使用jieba库进行TF-IDF关键词提取的步骤
安装jieba库:在Python环境中使用pip安装jieba库,例如pip install jieba。
导入jieba库:在Python脚本中导入jieba库,例如import jieba.analyse。
准备文本:准备要提取关键词的文本。
提取关键词:使用jieba.analyse.extract_tags函数提取关键词。
输出结果:根据需求输出关键词列表或带权重的关键词列表。

三,代码实现

1.导入必要的库

import pandas as pd
import os
import jieba
  • pandas:用于数据处理和分析。
  • os:用于与操作系统交互,如遍历目录和文件。
  • jieba:一个流行的中文分词库。

读取文件:

filePaths = []
fileContents = []
for root, dirs, files in os.walk(r"./红楼梦/分卷"):for name in files:filePath = os.path.join(root, name)  # 获取每个分卷的路径print(filePath)filePaths.append(filePath)  # 卷文件路径添加刀列表filePaths中f = open(filePath, 'r', encoding='utf-8')fileContent = f.read() # 读取每一卷中文件的内容f.close()fileContents.append(fileContent)
  • 遍历列表:使用os.walk遍历指定目录下的所有文件和子目录。
  • 获取内容:对于每个文件,获取其完整路径(filePath),并读取文件内容(fileContent)。
  • 添加文件内容:将文件路径和内容分别添加到两个列表(filePaths和fileContents)中。

3.将文件路径和内容存储到DataFrame

corpos = pd.DataFrame({   # 将文件内容添加到DataFrame框架'filePath': filePaths,'fileContent': fileContents
})
  • 使用pandas.DataFrame创建一个新的DataFrame(corpos),其中包含两列:filePath和fileContent。这使得后续的数据处理(如分词和去除停用词)可以更方便地通过行迭代进行。

4.加载自定义词典和停用词

jieba.load_userdict(r"./红楼梦/红楼梦词库.txt")
stopwords = pd.read_csv(r"./红楼梦/StopwordsCN.txt",encoding='utf-8', engine='python', index_col=False)
  • 使用jieba.load_userdict加载自定义的《红楼梦》词库,以提高分词的准确性。
  • 使用pandas.read_csv读取停用词列表,并存储在stopwords中。注意,这里StopwordsCN.txt文件中有一个名为stopword的列,包含了所有的停用词。

5.分词并去除停用词

file_to_jieba = open(r"./红楼梦/分词后汇总.txt", 'w', encoding='utf-8')
for index, row in corpos.iterrows():juan_ci = ''filePath = row['filePath']fileContent = row['fileContent']segs = jieba.cut(fileContent) # 对文本内容进行分词,返回一个可遍历的迭代器for seg in segs:if seg not in stopwords.stopword.values and len(seg.strip()) > 0: # 剔除停用词和字符为0的内容juan_ci += seg + ' 'file_to_jieba.write(juan_ci + '\n')
file_to_jieba.close()
  • 分词:遍历corpos的每一行,对每行的fileContent进行分词。对于分词结果中的每个词,检查它是否不在停用词列表中,并且不是空字符串。如果满足条件,则将该词添加到juan_ci字符串中,并在词之间添加空格作为分隔符。
  • 保存结果:将每个文件处理后的文本写入到新的文件中,每个文件的处理结果占一行。

这篇关于文本数据分析-(TF-IDF)(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124989

相关文章

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学

Java实现将Markdown转换为纯文本

《Java实现将Markdown转换为纯文本》这篇文章主要为大家详细介绍了两种在Java中实现Markdown转纯文本的主流方法,文中的示例代码讲解详细,大家可以根据需求选择适合的方案... 目录方法一:使用正则表达式(轻量级方案)方法二:使用 Flexmark-Java 库(专业方案)1. 添加依赖(Ma

Linux使用cut进行文本提取的操作方法

《Linux使用cut进行文本提取的操作方法》Linux中的cut命令是一个命令行实用程序,用于从文件或标准输入中提取文本行的部分,本文给大家介绍了Linux使用cut进行文本提取的操作方法,文中有详... 目录简介基础语法常用选项范围选择示例用法-f:字段选择-d:分隔符-c:字符选择-b:字节选择--c

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与

python解析HTML并提取span标签中的文本

《python解析HTML并提取span标签中的文本》在网页开发和数据抓取过程中,我们经常需要从HTML页面中提取信息,尤其是span元素中的文本,span标签是一个行内元素,通常用于包装一小段文本或... 目录一、安装相关依赖二、html 页面结构三、使用 BeautifulSoup javascript

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

Level3 — PART 3 — 自然语言处理与文本分析

目录 自然语言处理概要 分词与词性标注 N-Gram 分词 分词及词性标注的难点 法则式分词法 全切分 FMM和BMM Bi-direction MM 优缺点 统计式分词法 N-Gram概率模型 HMM概率模型 词性标注(Part-of-Speech Tagging) HMM 文本挖掘概要 信息检索(Information Retrieval) 全文扫描 关键词