当前位置: 首页 > news >正文

邢台市地图全图高清版小红书seo软件

邢台市地图全图高清版,小红书seo软件,哪些网站是单页面,怎样开网店卖别人的东西目录 一.案例准备 1.数据准备 2.思路 二.案例实施 1.打开红楼梦文件进行分卷 2.获取每个分卷的地址和内容 3.对每个分卷的内容进行jieba分词和删除停用词 4.导入TF-IDF和相关库 5.创建模型,将内容列表传入模型训练 6.得到所有文本关键词并得到关键词在对应…

目录

一.案例准备

1.数据准备

2.思路

二.案例实施

1.打开红楼梦文件进行分卷

2.获取每个分卷的地址和内容

3.对每个分卷的内容进行jieba分词和删除停用词

4.导入TF-IDF和相关库

5.创建模型,将内容列表传入模型训练

6.得到所有文本关键词并得到关键词在对应文章中的TF-IDF值的表格

7.打印每一分卷中的前十个重要的关键词

8.完整代码


一.案例准备

1.数据准备

首先我们有红楼梦.txt文件,里面写的是红楼梦前120章的内容

部分内容如下

.....

2.思路

①首先我们需要将这120卷的内容一卷一卷的分开来保存,方便我们后面对每一卷分词

②根据每个分卷的保存地址打开文件读取内容并对每一篇的内容进行分词

③对每篇文章分词后的结果进行检查(如果存在停用词即一些无用的词就去除)并写入分词汇总文件中,注意每一篇的分词内容值占一行

④最后对标准格式的分词汇总文件计算TF-IDF值

二.案例实施

1.打开红楼梦文件进行分卷

通过open()方法打开文件,并创建一个红楼梦介绍文件,这里的i为后面文件名做准备

import os.path
file=open('红楼梦.txt','r')
file_out=open('./红楼梦介绍.txt','w')
i=1

使用for循环一行一行的遍历文件内容,在没有遇到章节标题前读取的每一行内容都会写入创建的红楼梦需要注意 介绍文件中,然后遇到标题像‘上卷 第一回.....’我们就以该章节名作为文件名新创建一个文件,然后将后面的内容写入该文件中,如果读取到了下一章‘上卷 第二回...’则继续重新创建该章节的文件,反复此流程,直至将120章内容读完

注意我们还需要判断是不是空白行或者无用的介绍如下图,如果是的话就跳过不将该行内容写入

# 分卷
for line in file:stripped_line=line.strip()if not stripped_line:continueif '手机电子书·大学生小说网' in line:continueif '卷 第' in line:title_name='0_{}'.format(i)+line.strip()+'.txt'i+=1file_name=os.path.join('分卷',title_name)file_out = open(file_name, 'w')continue#不将标题写入file_out.write(line)
file_out.close()

保存后的文件如下:

2.获取每个分卷的地址和内容

通过os.walk方法获取./分卷路径下的根目录,文件夹名,和文件名

在对文件名列表进行遍历,通过os.path.join方法获得每个文件的地址,再通过这个地址打开文件获取每个文件的内容,分别写入一个列表中储存起来

最后通过pandas库将两个列表存储的信息转换成表格数据类型,加快计算速率

import os
import pandas as pd
filePaths=[]
fileContents=[]
for root,dir,files in os.walk(r'./分卷'):for file in files:filePath=os.path.join(root,file)filePaths.append(filePath)f=open(filePath,'r')fileContent=f.read()fileContents.append(fileContent)f.close()
corporas=pd.DataFrame({'filePath':filePaths,'fileContent':fileContents
})

3.对每个分卷的内容进行jieba分词和删除停用词

我们事先准备了红楼梦词库.txt文件,将红楼梦的专属词库通过jieba.load_userdict()导入jieba中对内容分词,顺便将StopwordsCN.txt中的全部停用词读取出来

再创建一个分词后汇总的文件

import jieba
jieba.load_userdict('./红楼梦词库.txt')
stopwords=pd.read_table('StopwordsCN.txt')
f=open('分词后汇总.txt','w')

遍历我们之前存储分卷信息的表格数据,row是每一行存储的filePath和fileContent信息

将每一行的fieContent即分卷内容进行jieba分词,得到分词后的列表,再对该列表遍历检查有无停用词或空格,将剩下的符合条件的列表元素写入juan_ci中用空格分隔开每一个分词元素

遍历完一行内容的所有分词后,将juan_ci写入分词后汇总文件中,要加换行,保证TF-IDF使用的标准格式

for index,row in corporas.iterrows():juan_ci=''filePath=row['filePath']fileContent=row['fileContent']segs=jieba.lcut(fileContent)for seg in segs:if seg not in stopwords.stopword.values and len(seg.strip())>0:juan_ci+=seg+' 'f.write(juan_ci+'\n')
f.close()

4.导入TF-IDF和相关库

读取分词后汇总文件,返回一行内容作为一个元素的列表

from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd
file=open('分词后汇总.txt','r')
corpus=file.readlines()

5.创建模型,将内容列表传入模型训练

vectorizer=TfidfVectorizer()
tf=vectorizer.fit_transform(corpus)

6.得到所有文本关键词并得到关键词在对应文章中的TF-IDF值的表格

wordlist=vectorizer.get_feature_names()
df=pd.DataFrame(tf.T.todense(),index=wordlist)

索引是每个文本关键字,列名是对用的120章分卷,表格数据是关键词在对应文章中的TF-IDF值

         

7.打印每一分卷中的前十个重要的关键词

利用pandas库的sortvalues()方法对每一列数据进行从大到小排序,再打印

for i in range(len(corpus)):feature=df.sort_values(by=i,ascending=False)# 打印前十个关键词print('{}关键词有:\n{}'.format(corporas.iloc[i,0].split('卷 ')[1].strip('.txt'),feature.iloc[:10,i]))

8.完整代码

# import os.path
# file=open('红楼梦.txt','r')
# file_out=open('./红楼梦介绍.txt','w')
# i=1
# # 分卷
# for line in file:
#     stripped_line=line.strip()
#     if not stripped_line:
#         continue
#     if '手机电子书·大学生小说网' in line:
#         continue
#     if '卷 第' in line:
#         title_name='0_{}'.format(i)+line.strip()+'.txt'
#         i+=1
#         file_name=os.path.join('分卷',title_name)
#         file_out = open(file_name, 'w')
#         continue#不将标题写入
#     file_out.write(line)
# file_out.close()# 分词 卷词
import os
import pandas as pd
filePaths=[]
fileContents=[]
for root,dir,files in os.walk(r'./分卷'):for file in files:filePath=os.path.join(root,file)filePaths.append(filePath)f=open(filePath,'r')fileContent=f.read()fileContents.append(fileContent)f.close()
corporas=pd.DataFrame({'filePath':filePaths,'fileContent':fileContents
})# import jieba
# jieba.load_userdict('./红楼梦词库.txt')
# stopwords=pd.read_table('StopwordsCN.txt')
# f=open('分词后汇总.txt','w')
# for index,row in corporas.iterrows():
#     juan_ci=''
#     filePath=row['filePath']
#     fileContent=row['fileContent']
#     segs=jieba.lcut(fileContent)
#     for seg in segs:
#         if seg not in stopwords.stopword.values and len(seg.strip())>0:
#             juan_ci+=seg+' '
#     f.write(juan_ci+'\n')
# f.close()#计算TF-ITF值
from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd
file=open('分词后汇总.txt','r')
corpus=file.readlines()vectorizer=TfidfVectorizer()
tf=vectorizer.fit_transform(corpus)
wordlist=vectorizer.get_feature_names()
df=pd.DataFrame(tf.T.todense(),index=wordlist)
for i in range(len(corpus)):feature=df.sort_values(by=i,ascending=False)# 打印前十个关键词print('{}关键词有:\n{}'.format(corporas.iloc[i,0].split('卷 ')[1].strip('.txt'),feature.iloc[:10,i]))
print('========================')

http://www.dtcms.com/a/540883.html

相关文章:

  • 网安面试题收集(5)
  • 台州新农村建设网站沈阳工程信息交易网
  • 全国酒店网站建设金融网站欣赏
  • WebForms TextBox:深入解析与最佳实践
  • 北京商城网站开发如何进行域名注册
  • 基于三维点云图的路径规划
  • 机器学习中的数学——矩阵与向量基础
  • 华升建设集团有限公司网站wordpress清空post表
  • 合肥网站建设 卫来科技珠海企业营销型网站建设公司
  • AS32S601型MCU芯片在商业卫星电源系统伺服控制器中的性能分析与应用解析
  • Mountainsmap V11.0/Mountainslab V11.0三维表面形貌分析软件
  • LDPC码译码算法--概率域BP译码算法和对数域BP译码算法
  • 什么是状态机编程和模块化编程
  • net网站开发 兼职网站在线咨询系统
  • SAP SD系统发票明细同步到航信金税分享
  • 广东一站式网站建设推荐购物网站数据分析
  • Vue Router页面跳转指南:告别a标签,拥抱组件化无刷新跳转
  • Kotlin Multiplatform 跨平台方案解析以及热门框架对比
  • Kotlin 协程最佳实践:用 CoroutineScope + SupervisorJob 替代 Timer,实现优雅周期任务调度
  • kotlin基于MVVM架构构建项目
  • 自适应网站设计稿上海建设网站是国家级吗
  • Vue 3 的<script setup> 和 Vue 2 的 Options API的关系
  • Flink 2.1.0内存管理详
  • 建游戏网站网站虚拟主机过期
  • 安卓进阶——Material Design库
  • 网站域名备案需要资料欧派装修公司
  • 【音视频】 RTP 与 RTMP 协议异同对比
  • 温州网站建设外包wordpress自定义字段使用
  • FPGA基础知识(九):时序约束常见问题与解决方案深度解析
  • 【中间件】如何设计主分片