2018-09-24 10:21:16 weixin_42472048 阅读数 3236
  • Python文本数据分析--实战视频教学

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 课程首先概述文本分析的基本概念,整个课程围绕案例进行:新闻分类任务。案例从零开始讲解如何使用Python库进行分析与建模的工作。案例中实例演示如何从杂乱的文本数据开始进行分词预处理到后应用贝叶斯算法进行分类预测。 专属会员卡更超值:http://edu.csdn.net/lecturer/1079

    4124 人正在学习 去看看 唐宇迪
数据库大文本数据处理
    目标:把 mp3文件保存到数据库中!
    在my.ini中添加如下配置: max_allowed_packet=10485760

1 什么是大文本数据
    所谓大文本数据,就是大的字节数据,或大的字符数据。标准SQL中提供了如下类型来保存大文本数据类型:

类型

长度

tinyblob

28--1B(256B)

blob

216-1B(64K)

mediumblob

224-1B(16M)

longblob

232-1B(4G)

tinyclob

28--1B256B

clob

216-1B64K

mediumclob

224-1B16M

longclob

232-1B4G

    但是,在mysql中没有提供tinyclob、clob、mediumclob、longclob四种类型,而是使用如下四种类型来处理大文本数据:

类型

长度

tinytext

28--1B(256B)

text

216-1B(64K)

mediumtext

224-1B(16M)

longtext

232-1B(4G)

    首先我们需要创建一张表,表中要有一个mediumblob(16M)类型的字段。
        CREATE TABLE tab_bin(
          id  INT    PRIMARY KEY AUTO_INCREMENT,
          filename   VARCHAR(100),
          data       MEDIUMBLOB
        );

  还有一种方法,就是把要存储的数据包装成Blob类型,然后调用PreparedStatement的setBlob()方法来设置数据
    代码如下:
        package cn.itcast.demo4;
        主要的包
        import java.sql.Blob;
        import javax.sql.rowset.serial.SerialBlob;
        import org.apache.commons.io.IOUtils;
        import cn.itcast.demo3.JdbcUtils;
    
        /**
        * 大文本数据
        */
        public class Demo4 {
    
            // 把mp3保存到数据库中。
            @Test
            public void fun1() throws Exception {
                /*
                * 1. 得到Connection
                * 2. 给出sql模板,创建pstmt
                * 3. 设置sql模板中的参数
                * 4. 调用pstmt的executeUpdate()执行
                */
                Connection con = JdbcUtils.getConnection();
                String sql = "insert into tab_bin values(?,?,?)";
                PreparedStatement pstmt = con.prepareStatement(sql);
            
                pstmt.setInt(1, 1);
                pstmt.setString(2, "流光飞舞.mp3");
                /**
                * 需要得到Blob
                * 1. 我们有的是文件,目标是Blob
                * 2. 先把文件变成byte[]
                * 3. 再使用byte[]创建Blob
                */
                // 把文件转换成byte[]
                byte[] bytes = IOUtils.toByteArray(new FileInputStream("F:/流光飞舞.mp3"));
                // 使用byte[]创建Blob
                Blob blob = new SerialBlob(bytes);
                // 设置参数
                pstmt.setBlob(3, blob);
            
                pstmt.executeUpdate();
            }
    
            /**
            * 从数据库读取mp3
            */
            @Test
            public void fun2() throws Exception {
                /*
                * 1. 创建Connection
                */
                Connection con = JdbcUtils.getConnection();
                /*
                * 2. 给出select语句模板,创建pstmt
                */
                String sql = "select * from tab_bin";
                PreparedStatement pstmt = con.prepareStatement(sql);
            
                /*
                * 3. pstmt执行查询,得到ResultSet
                */
                ResultSet rs = pstmt.executeQuery();
            
                /*
                * 4. 获取rs中名为data的列数据
                */
                if(rs.next()) {
                    Blob blob = rs.getBlob("data");
                    /*
                    * 把Blob变成硬盘上的文件!
                    */
                    /*
                    * 1. 通过Blob得到输入流对象
                    * 2. 自己创建输出流对象
                    * 3. 把输入流的数据写入到输出流中
                    */
                    InputStream in = blob.getBinaryStream();
                    OutputStream out = new FileOutputStream("c:/lgfw.mp3");
                    IOUtils.copy(in, out);
                }
            }
        }
2019-07-09 14:22:29 zhengzizhi 阅读数 842
  • Python文本数据分析--实战视频教学

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 课程首先概述文本分析的基本概念,整个课程围绕案例进行:新闻分类任务。案例从零开始讲解如何使用Python库进行分析与建模的工作。案例中实例演示如何从杂乱的文本数据开始进行分词预处理到后应用贝叶斯算法进行分类预测。 专属会员卡更超值:http://edu.csdn.net/lecturer/1079

    4124 人正在学习 去看看 唐宇迪

1. 如果你想按某个分割符号去把长长的一整列数据拆分成多列;

2. 如果你想导出拆分后数据,你希望勾选那一列就导出那一列数据,勾选多列就导出多列数据;

3. 如果你想让某列按日期范围导出数据,就能按某列的日期范围导出数据;

4. 如果你想按某列的数值大小范围导出数据,就能按某列的数值范围导出数据;

5. 如果你想按某列文本前缀包含什么内容,就能按设定的前缀条件导出数据;

6. 如果你想按某列文本后缀包含什么内容,就能按设定的后缀条件导出数据;

7. 如果你想按某列文本前缀包含什么内容,后缀同时必须包含什么内容 ,就能按设定的前缀和后缀条件导出数据;

8. 如果你想按某列文本前缀包含什么内容,中间偏后的部分包含什么内容 ,就能按设定的前缀和中间偏后的设定的条件导出数据;

9.如果你想按某列文本后缀包含什么内容,中间偏前的部分包含什么内容 ,就能按设定的后缀和中间偏前的设定的条件导出数据;

10. 如果你想按某列货币值的范围导出数据,就能按设定的货币范围导出数据;

11. 如果你想按某列等于或者不等于什么内容导出数据,就能按照你希望结果导出数据;

总结:我们可以每次导出一类数据,分多次导出,想想看,是不是就能实现从大数据里分类导出我想要的分类数据,

以上描述的功能这款 “大数据 - 文本文件数据提取工具” 都能帮你轻松完成!如果你想现在立刻就拥有它,赶快来联系我吧,

早一天拥有!你就早一天受益!请你先认真阅读一遍我的博客,看看是不是你一直在等待的大数据软件!

范例1 根据设置列数据的时间范围提取(导出)数据

支持的日期格式(包括时间格式)如下:

            "HH:mm",
            "HH:mm:ss",
            "yyyy/MM",
            "yyyy/MM/dd",
            "yyyy/MM/dd HH:mm",
            "yyyy/MM/dd HH:mm:ss",
            "yyyy-MM",
            "yyyy-MM-dd",
            "yyyy-MM-dd HH:mm",
            "yyyy-MM-dd HH:mm:ss",
            "yyyy.MM",
            "yyyy.MM.dd",
            "yyyy.MM.dd HH:mm",
            "yyyy.MM.dd HH:mm:ss",
            "yyyyMM",
            "yyyyMMdd",
            "yyyyMMddHHmm",
            "yyyyMMddHHmmss",
            "yyyy年MM月",
            "yyyy年MM月dd日",
            "yyyy年MM月dd日 HH时mm分",
            "yyyy年MM月dd日 HH时mm分ss秒"

 

范例2   根据货币值范围导出文本数据(支持全世界各国货币汇率换算)

范例3   根据百分比大小范围导出文本数据 

范例4   根据字符串前缀和后缀导出文本数据  

 

2019-08-08 13:24:41 zhengzizhi 阅读数 956
  • Python文本数据分析--实战视频教学

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 课程首先概述文本分析的基本概念,整个课程围绕案例进行:新闻分类任务。案例从零开始讲解如何使用Python库进行分析与建模的工作。案例中实例演示如何从杂乱的文本数据开始进行分词预处理到后应用贝叶斯算法进行分类预测。 专属会员卡更超值:http://edu.csdn.net/lecturer/1079

    4124 人正在学习 去看看 唐宇迪

支持文本格式:TXT和CSV(支持文本文件一切数据格式)         作者本人唯一客服QQ:24759362(无代理商)

运行环境:支持所有Linux系统,苹果操作系统,所有Windows 64位的操作系统

需要内存:至少16GB,本工具软件实际消耗的内存大约在4GB左右 = 9.6GB的最高内存消耗

-  操作系统本身消耗3.8GB的内存  -  视频录屏软件消耗的1.8GB

推荐使用固态硬盘(读写速度越高越好)

---------------------

测试过程中只录制了66% --- 100%部分的完整的视频(视频大小19.8M,时长12分钟)

链接:https://pan.baidu.com/s/1vSYb_09XftX-CWhUMb1Oxg
提取码:xhi2
复制这段内容后打开百度网盘手机App,操作更方便哦
---------------------
大数据 - 文本文件数据对比分离工具 如何求两个数千GB超大集合的交集和补集

本篇博文与上面链接这篇是同一款软件,差别是此篇博文测试数据量更大

 

 

 

 

 

 

 

 

2017-07-20 11:53:42 weixin_36612847 阅读数 3033
  • Python文本数据分析--实战视频教学

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 课程首先概述文本分析的基本概念,整个课程围绕案例进行:新闻分类任务。案例从零开始讲解如何使用Python库进行分析与建模的工作。案例中实例演示如何从杂乱的文本数据开始进行分词预处理到后应用贝叶斯算法进行分类预测。 专属会员卡更超值:http://edu.csdn.net/lecturer/1079

    4124 人正在学习 去看看 唐宇迪
  • 前言

之前做实验接触到的文本数据都是已经处理成csv直接使用即可的,最近做的比赛是给出的txt文件,要经过一些操作才可以被使用。在此总结出一些数据操作方法,以防忘记。


  • 大数据存储格式

对于文本文件,最常用的格式是.csv,.txt,.xls,在实践中,我发现.csv是最适合大数据文本存储的,它显示清晰,最大存储量大。而.txt,.xls文件都有各自的缺点,.txt没有显示格式,阅览不方便。.xls文件有最大行限制,貌似是2的16次方,从一定程度上,它根本算不上大数据的存储方式。


  • 数据互相转化方式

我们刚刚提到的三种数据格式实际上可以互相转换,这时候excel的数据导入功能就是一个神器了。

打开excel--数据--导入数据--选择数据源(直接打开数据文件)--选取某文件--选择分隔符号--选择导入具体内容--另存为其他格式。

这样即可轻松实现文件之间的转化,但问题是如果数据量非常巨大,excel是可能存在转换错误的问题的,因此以下part介绍如何直接使用matlab读入文档,实现数据处理功能。


  • matlab读取数据方式

1.数据量不是很大的情况,自带读取函数的应用

直接使用matlab自带的各文件读取函数:
file=xlsread(‘/../../…xls); %读取xls文件
file=csvread(‘/../../…xls); %读取csv文件
如果你想选择部分数据,uiimport(‘/../’)提供了一个交互界面,可以只读取部分数据。
但是数据量很大时,这种读取方式不仅速度慢,而且有可能出错。下面介绍的几种方法灵活性高。

2.datastore函数的应用

file_src=datastore(/../../); %缓存文件
file_src.Delimiter=’ ‘; %选取文件的分隔符
file_src.NumHeaderLines=0; %从文件的哪一行开始读入,0代表全部读入,1代表第一行不读。
data_table=readall(file_src); %读取缓存文件,格式是table
data_cell=table2cell(data_table); %将table变为cell
data_mat=cell2mat(data_cell); %将cell编程矩阵
data_num=str2num(data_mat); %将矩阵变成数字矩阵(有时编码问题变量不是按照数字存储,而是字符串存储)

3.readtable函数的应用

这个函数读入后是table模式,要将其转化为数字模式,转化参考datastore的转化方式。


  • matlab大数据处理的优越性

    1. 64 位计算。64 位版本的 MATLAB 可迅速增加内存中可保留的数据量——通常可达到任意 32 位程序的 2000 倍。32 位程序限制您只能使用 2 GB 的内存,而 64 位 MATLAB 的内存可以达到操作系统的物理内存限制。对于 Windows 8,台式机内存为 500 GB,Windows Server 内存为 4 TB。
    2. 内存映射的变量。 借助 MATLAB 中的memmapfile 函数,您可以将文件或文件的一部分映射到内存中的 MATLAB 变量。这样,您就可以高效访问磁盘上由于太大而无法保留在内存中或需要花太长时间而无法加载的大数据集。
    3. 磁盘变量。matfile 函数使您可以直接从磁盘上的 MAT 文件访问 MATLAB 变量(使用 MATLAB 索引命令),无需将全部变量加载到内存。这使您可以在大数据集上进行块处理,这些大数据集因为太大而无法保存在内存中。
    4. 内在的多核数学。MATLAB 中的许多内置数学函数,如fft、inv 和eig 都是多线程的。通过并行运行,这些函数充分利用计算机的多核,提供高性能的大数据集计算
    5. GPU 计算。如果您正在使用 GPU,Parallel Computing Toolbox 中的GPU 优化的数学函数可以为大数据集提供更高的性能。
    6. 并行计算。Parallel Computing Toolbox 提供 并行 for 循环 , 该循环在多核计算机上并行运行您的 MATLAB 代码和算法。如果您使用MATLAB Distributed Computing Server,则可以在机器群集上并行执行,这些机器可扩展到数千台计算机。
    7. 云计算。对于数百或数千台计算机的按需并行处理,您可以在Amazon Elastic Computing Cloud(亚马逊弹性计算云)(EC2) 上使用 MATLAB Distributed Computing Server 并行运行 MATLAB 计算。借助云计算,您无需购买或维护您自己的群集或数据中心就可以处理大数据。
    8. 分布式阵列。 使用 Parallel Computing Toolbox 和 MATLAB Distributed Computing Server,您可以处理分布在计算机群集内存中的矩阵和多维数组。使用此方法,您可以针对因太大而无法由单台计算机内存处理的大数据集,进行存储和执行计算。
    9. 流式算法。 使用系统对象,您可以对因太大或太快而无法保留在内存中的数据传入流执行流式处理。此外,您还可以使用MATLAB Coder 通过 MATLAB 算法生成嵌入式 C/C++ 代码,并针对高性能实时系统运行产生的代码。
    10. 图像块处理。使用Image Processing Toolbox中的blockproc函数,您可以处理特别大的图像,方法是每次以模块的形式高效处理它们。与 Parallel Computing Toolbox 一起使用时,在多核和 GPU 上并行运行计算。
    11. 机器学习。机器学习有助于通过大数据集提取见解和开发预测性模型。广泛的机器学习算法,包括Statistics and Machine Learning Toolbox 和Neural Network Toolbox 中提供的促进式 (boosted) 和袋装 (bagged) 决策树、K 均值和分层聚类、k-最近邻搜索、高斯混合、期望最大化算法、隐马尔可夫模型和神经网络。
2019-06-29 01:30:06 qq_41224370 阅读数 813
  • Python文本数据分析--实战视频教学

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 课程首先概述文本分析的基本概念,整个课程围绕案例进行:新闻分类任务。案例从零开始讲解如何使用Python库进行分析与建模的工作。案例中实例演示如何从杂乱的文本数据开始进行分词预处理到后应用贝叶斯算法进行分类预测。 专属会员卡更超值:http://edu.csdn.net/lecturer/1079

    4124 人正在学习 去看看 唐宇迪

实践课题报告: 大数据文本分析与应用

学 校:xxx

学 院:大数据与智能工程学院

专 业:信息工程(数据科学与大数据技术)

年 级:2017级

学 号:xxx

姓 名:xxx

指导老师:xxx

日 期:2019 年 6 月 27 日 至 29 日

实习要求:

使用Python,实现对英文小说的词频解析,并将每章的词频结果存入到Mysql数据库中。
开发简易信息系统,实现对某篇小说的词频查询。

环境配置

1.Python3.7 (数据处理及对数据库的操作)
2.MySQL5.7(存储分析结果)
3.Tomcat9(部署前端代码,实现客户端访问)

第一步:读取数据,并进行预处理

#获取数据并对其进行去空行,空白处理
def get_data( filename):
    data = ''
    with open(filename, "r") as f:
        for line in f.readlines():
            line = line.rstrip() #去掉列表右边的空白
            line = line.lstrip() #去掉列表左边的空白
            #全变为小写
            #line = line.lower()
            #将特殊字符替换为空格
            for ch in '!"#$%@~`^&*\'\“”’。,()_-+=/{\\}[|]?.><,/;':
                line = line.replace(ch, " ") 
            if line is not '':
                data = data+line+' '
    return data

```python

第二步:按章节进行分词和统计

#获取章节单词 ,key="CHAPTER",章节分割词
def get_chapter_word(key ,data):
    #分词
    words = data.split()
    chapters ={}
    j=0
    for word in words:
        if(word == key):
                j+=1
        if j == 0:
            chapters['book'] = chapters.get('book','')+word+" "
        else:
            keys = key+str(j)
            chapters[keys] = chapters.get(keys,'')+word+" "
    chapter_words = list(chapters.items())
    return chapter_words
#按按章节进行词频统计
def word_count(chapter_word):
     #全变为小写
    chapter_word = chapter_word.lower()
    words = chapter_word.split()
    #字典存储单词和数量
    counts ={}
    for word in words:
        counts[word] = counts.get(word,0) + 1
    items = list(counts.items())
    #大到小快速排序
    items.sort(key=lambda x:x[1], reverse=True)
    return items

第三步:数据库操作

import pymysql
#连接数据库
def connectdb():
    localhost = " localhost"
    username = "root"
    password = "123456"
    DBname = "test"
    #print('连接到mysql服务器...')
    # 打开数据库连接
    db = pymysql.connect(localhost,username,password,DBname)
    #print('连接上了!')
    return db
    
#存入数据库,书名,章节,单词,词频
def insert(db,bookname,chapter,word, counts):
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
    # SQL 插入语句
    sql = "INSERT INTO txtdata(bookname, \
       chapter, word, counts) \
       VALUES ('%s', '%s', '%s',  %s)" % \
       (bookname, chapter,word, counts)
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 执行sql语句
        db.commit()
    except:
        # 发生错误时回滚
        db.rollback()

#查询数据库
def select(sql):
    #连接数据库
    db= connectdb()
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
    try:
        #记录总的次数
        count = 0
        # 执行SQL语句
        cursor.execute(sql)
        # 获取所有记录列表
        results = cursor.fetchall()
        for row in results:
            bookname = row[0]
            chapter = row[1]
            counts = row[2]
            count += counts
            # 打印结果
            print ("书名:%s \t 章节:%s \t 词频:%d" %(bookname,chapter,counts))
        print("总的出现频率为:%d"%(count))
    except:
        print ("词库无此单词!!!")
    # 关闭数据库连接
    db.close()  
    
#按单词查询所有的词频记录
def select_by_word(word):
    # SQL 查询语句
    sql = "SELECT bookname, chapter,counts FROM txtdata WHERE trim(replace(word,' ','')) = trim(replace('%s',' ',''))" % (word)
    #调用查询函数
    select(sql)
    
#查询指定书的查询指定单词的词频
def select_by_bookname(bookname,word):
    # SQL 查询语句
    sql = "SELECT bookname, chapter,counts FROM txtdata WHERE trim(replace(bookname,' ','')) =\
    trim(replace('%s',' ','')) and trim(replace(word,' ','')) = trim(replace('%s',' ',''))" % (bookname,word)
    #调用查询函数
    select(sql)

第四步:存储数据,查询词频

#存入数据库主函数
def insert_main(filename):
    #filename = 'Jane_Eyre.txt'
    #读取数据
    data=get_data(filename)
    #获取章节单词 ,key="CHAPTER",章节分割词库
    key="CHAPTER"
    #录入信息条数
    count = 0
    
     #连接数据库
    db= connectdb()

    chapter_words = get_chapter_word(key ,data)
    for i in range(len(chapter_words)):
        if i == 0:
            continue
        else:
            chapter,chapter_word = chapter_words[i]
            chapter_word = chapter_word.rstrip().lstrip()
            #按按章节进行词频统计
            items = word_count(chapter_word)
            for j in range(len(items)):
                word, counts= items[j]
                #print("{0:<10}{1:>5}".format(word, count))
                try:
                    #存入数据库,书名,章节,单词,词频
                    insert(db,chapter_words[0][1],chapter,word, counts)
                except:
                    continue
                count+=1
        print("已录入%d章节的数据》》》"%(i))
    # 关闭数据库连接
    db.close()  
    print("本次总共录入%d条数据"%(count))
#按单词查询主函数
def select_main():
    word = input("请输入你要查询的单词:")
    word = word.lower()
    print("\n查询结果:\n")
    select_by_word(word)
##查询指定书的查询指定单词的词频主函数
def select_by_bookname_main():
    bookname = input("请输入书名:")
    word = input("\n请输入你要查询的单词:")
    word = word.lower()
    print("\n查询结果:\n")
    select_by_bookname(bookname,word)

第五步:测试

存入数据库

# txt文件和当前脚本在同一目录下,所以不用写具体路径
filename_path = ['Two_Cities.txt','Jane_Eyre.txt']
for filename in filename_path:
    #存入数据库
   # insert_main(filename)
已录入1章节的数据》》》
已录入2章节的数据》》》
已录入3章节的数据》》》
已录入4章节的数据》》》
已录入5章节的数据》》》
已录入6章节的数据》》》
已录入7章节的数据》》》
已录入8章节的数据》》》
已录入9章节的数据》》》
已录入10章节的数据》》》
已录入11章节的数据》》》
已录入12章节的数据》》》
已录入13章节的数据》》》
已录入14章节的数据》》》
已录入15章节的数据》》》
已录入16章节的数据》》》
已录入17章节的数据》》》
已录入18章节的数据》》》
已录入19章节的数据》》》
已录入20章节的数据》》》
已录入21章节的数据》》》
已录入22章节的数据》》》
已录入23章节的数据》》》
已录入24章节的数据》》》
已录入25章节的数据》》》
已录入26章节的数据》》》
已录入27章节的数据》》》
已录入28章节的数据》》》
已录入29章节的数据》》》
已录入30章节的数据》》》
已录入31章节的数据》》》
已录入32章节的数据》》》
已录入33章节的数据》》》
已录入34章节的数据》》》
已录入35章节的数据》》》
已录入36章节的数据》》》
已录入37章节的数据》》》
已录入38章节的数据》》》
已录入39章节的数据》》》
已录入40章节的数据》》》
已录入41章节的数据》》》
已录入42章节的数据》》》
已录入43章节的数据》》》
已录入44章节的数据》》》
本次总共录入%d条数据
已录入1章节的数据》》》
已录入2章节的数据》》》
已录入3章节的数据》》》
已录入4章节的数据》》》
已录入5章节的数据》》》
已录入6章节的数据》》》
已录入7章节的数据》》》
已录入8章节的数据》》》
已录入9章节的数据》》》
已录入10章节的数据》》》
已录入11章节的数据》》》
已录入12章节的数据》》》
已录入13章节的数据》》》
本次总共录入%d条数据

数据库表

在这里插入图片描述

按单词查询所有

 #查询1
select_main()
请输入你要查询的单词:the

查询结果:

书名: Two Cities 	 章节:CHAPTER1 	 词频:79
书名: Two Cities 	 章节:CHAPTER2 	 词频:194
书名: Two Cities 	 章节:CHAPTER3 	 词频:123
书名: Two Cities 	 章节:CHAPTER4 	 词频:203
书名: Two Cities 	 章节:CHAPTER5 	 词频:284
书名: Two Cities 	 章节:CHAPTER6 	 词频:331
书名: Two Cities 	 章节:CHAPTER7 	 词频:171
书名: Two Cities 	 章节:CHAPTER8 	 词频:298
书名: Two Cities 	 章节:CHAPTER9 	 词频:89
书名: Two Cities 	 章节:CHAPTER10 	 词频:137
书名: Two Cities 	 章节:CHAPTER11 	 词频:228
书名: Two Cities 	 章节:CHAPTER12 	 词频:263
书名: Two Cities 	 章节:CHAPTER13 	 词频:166
书名: Two Cities 	 章节:CHAPTER14 	 词频:348
书名: Two Cities 	 章节:CHAPTER15 	 词频:94
书名: Two Cities 	 章节:CHAPTER16 	 词频:41
书名: Two Cities 	 章节:CHAPTER17 	 词频:102
书名: Two Cities 	 章节:CHAPTER18 	 词频:56
书名: Two Cities 	 章节:CHAPTER19 	 词频:212
书名: Two Cities 	 章节:CHAPTER20 	 词频:87
书名: Two Cities 	 章节:CHAPTER21 	 词频:284
书名: Two Cities 	 章节:CHAPTER22 	 词频:208
书名: Two Cities 	 章节:CHAPTER23 	 词频:118
书名: Two Cities 	 章节:CHAPTER24 	 词频:152
书名: Two Cities 	 章节:CHAPTER25 	 词频:34
书名: Two Cities 	 章节:CHAPTER26 	 词频:264
书名: Two Cities 	 章节:CHAPTER27 	 词频:145
书名: Two Cities 	 章节:CHAPTER28 	 词频:232
书名: Two Cities 	 章节:CHAPTER29 	 词频:252
书名: Two Cities 	 章节:CHAPTER30 	 词频:296
书名: Two Cities 	 章节:CHAPTER31 	 词频:167
书名: Two Cities 	 章节:CHAPTER32 	 词频:78
书名: Two Cities 	 章节:CHAPTER33 	 词频:178
书名: Two Cities 	 章节:CHAPTER34 	 词频:121
书名: Two Cities 	 章节:CHAPTER35 	 词频:191
书名: Two Cities 	 章节:CHAPTER36 	 词频:106
书名: Two Cities 	 章节:CHAPTER37 	 词频:227
书名: Two Cities 	 章节:CHAPTER38 	 词频:270
书名: Two Cities 	 章节:CHAPTER39 	 词频:352
书名: Two Cities 	 章节:CHAPTER40 	 词频:53
书名: Two Cities 	 章节:CHAPTER41 	 词频:146
书名: Two Cities 	 章节:CHAPTER42 	 词频:252
书名: Two Cities 	 章节:CHAPTER43 	 词频:204
书名: Two Cities 	 章节:CHAPTER44 	 词频:150
书名: Jane Eyre 	 章节:CHAPTER1 	 词频:86
书名: Jane Eyre 	 章节:CHAPTER2 	 词频:104
书名: Jane Eyre 	 章节:CHAPTER3 	 词频:118
书名: Jane Eyre 	 章节:CHAPTER4 	 词频:203
书名: Jane Eyre 	 章节:CHAPTER5 	 词频:264
书名: Jane Eyre 	 章节:CHAPTER6 	 词频:110
书名: Jane Eyre 	 章节:CHAPTER7 	 词频:178
书名: Jane Eyre 	 章节:CHAPTER8 	 词频:90
书名: Jane Eyre 	 章节:CHAPTER9 	 词频:128
书名: Jane Eyre 	 章节:CHAPTER10 	 词频:179
书名: Jane Eyre 	 章节:CHAPTER11 	 词频:250
书名: Jane Eyre 	 章节:CHAPTER12 	 词频:164
书名: Jane Eyre 	 章节:CHAPTER13 	 词频:160
总的出现频率为:10020

按指定书名查询指定单词的词频

 #查询2
select_by_bookname_main()
请输入书名:Jane Eyre

请输入你要查询的单词:the

查询结果:

书名: Jane Eyre 	 章节:CHAPTER1 	 词频:86
书名: Jane Eyre 	 章节:CHAPTER2 	 词频:104
书名: Jane Eyre 	 章节:CHAPTER3 	 词频:118
书名: Jane Eyre 	 章节:CHAPTER4 	 词频:203
书名: Jane Eyre 	 章节:CHAPTER5 	 词频:264
书名: Jane Eyre 	 章节:CHAPTER6 	 词频:110
书名: Jane Eyre 	 章节:CHAPTER7 	 词频:178
书名: Jane Eyre 	 章节:CHAPTER8 	 词频:90
书名: Jane Eyre 	 章节:CHAPTER9 	 词频:128
书名: Jane Eyre 	 章节:CHAPTER10 	 词频:179
书名: Jane Eyre 	 章节:CHAPTER11 	 词频:250
书名: Jane Eyre 	 章节:CHAPTER12 	 词频:164
书名: Jane Eyre 	 章节:CHAPTER13 	 词频:160
总的出现频率为:2034

六、前端页面效果

index.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% request.setCharacterEncoding("UTF-8"); %> 
<%@ page import="java.sql.*"%> 
<html>
<head>
<title>Python大数据文本分析</title>
<body >   

<div align="center"style="width: 80%;">
<br/><br/><br/>
<h1>Python大数据文本分析</h1><br/>
<p>目前已有书本:<a>Jane Eyre</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a>Two_Cities</a> <br/><br/>
<a href="word.jsp"><h3>按单词查询所有书本的词频</h3></a> <br><br>
<a href="book.jsp"><h3>查询指定书本中的指定单词词频</h3></a>
</div>
</body>   
</html> 

在这里插入图片描述

word.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% request.setCharacterEncoding("UTF-8"); %>
<%@ page import="java.sql.*"%> 
<html>
<head>
<title>查询</title>
<body >   
<div align="center"style="width: 80%;">
<br/><br/><br/>
<h3>查询指定书本中的指定单词词频</h3><br/><br/>
<p>目前已有书本:<a>Jane Eyre</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a>Two_Cities</a> <br/><br/><br/>
<form  action="select_word.jsp" method="post">
<p>请输入单词:<input type="text" name="word" /><br/>
<p><input type="submit" value="查询"/>
<p><a href="index.jsp">返回首页</a>
<div>
</body>   
</html> 

在这里插入图片描述

select_word.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% request.setCharacterEncoding("UTF-8"); %>
<%@ page import="java.sql.*"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

<html>   
<body > 
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8"
     user="root"  password="123456"/>
 
 <sql:query dataSource="${snapshot}" var="result">
 SELECT bookname,chapter,word,counts FROM txtdata WHERE trim(replace(word,' ','')) = trim(replace('${param.word}',' ',''))

</sql:query>
<div align="center" style="width: 80%;">
 <h1>Python大数据文本分析<h1><br/><br/>
<table align="center" border="1" width="70%">
<tr>
   <th>书名</th>
   <th>章节</th>
   <th>单词</th>
   <th>词频</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.bookname}"/></td>
   <td><c:out value="${row.chapter}"/></td>
   <td><c:out value="${row.word}"/></td>
   <td><c:out value="${row.counts}"/></td>
</tr>
</c:forEach>
</table>
<p><a href="index.jsp">返回首页</a>
</div>
</body>   
</html> 

在这里插入图片描述

book.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% request.setCharacterEncoding("UTF-8"); %>
<%@ page import="java.sql.*"%> 
<html>
<head>
<title>查询</title>
<body >   
<div align="center"style="width: 80%;">
<br/><br/><br/>
<h3>查询指定书本中的指定单词词频</h3><br/><br/>
<p>目前已有书本:<a>Jane Eyre</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a>Two_Cities</a> <br/><br/><br/>
<form  action="select_book.jsp" method="post">
<p>请输入书名:<input type="text" name="book" /><br/>
<p>请输入单词:<input type="text" name="word" /><br/>
<p><input type="submit" value="查询"/>
<p><a href="index.jsp">返回首页</a>
<div>
</body>   
</html> 

在这里插入图片描述

select_book.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% request.setCharacterEncoding("UTF-8"); %>
<%@ page import="java.sql.*"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

<html>   
<body > 

<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8"
     user="root"  password="123456"/>
 
 <sql:query dataSource="${snapshot}" var="result">
 SELECT bookname, chapter, word,counts FROM txtdata WHERE trim(replace(bookname,' ','')) =trim(replace('${param.book}',' ','')) and trim(replace(word,' ','')) = trim(replace('${param.word}',' ',''))

</sql:query>
<div align="center" style="width: 80%;">
 <h1>Python大数据文本分析<h1><br/><br/>
<table align="center" border="1" width="70%">
<tr>
   <th>书名</th>
   <th>章节</th>
   <th>单词</th>
   <th>词频</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.bookname}"/></td>
   <td><c:out value="${row.chapter}"/></td>
   <td><c:out value="${row.word}"/></td>
   <td><c:out value="${row.counts}"/></td>
</tr>
</c:forEach>
</table>
<p><a href="index.jsp">返回首页</a>
</div>
</body>   
</html> 

在这里插入图片描述

数据集及源码

没有更多推荐了,返回首页