自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 GRU简介

循环神经网络的隐含层变量梯度可能出现衰减或爆炸,虽然梯度裁剪可以应对梯度爆炸,但无法解决梯度衰减的问题。门控循环神经网络(gated recurrent neural network)是为了更好地捕捉时序数据中间隔较大的依赖关系,门控循环单元(gated recurrent unit, GRU)是一种常用的门控循环神经网络。GRU(Gate Recurrent Unit)是循环神经网络的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而

2021-04-28 20:30:59 68463 6

原创 Latex的各种小细节

1.LaTeX默认的图表为英文table和figure,修改为中文需添加以下语句:\renewcommand{\tablename}{表}\caption{表名}\renewcommand{\figurename}{图}\caption{图名}2.图表默认的脚注都是fig1:xxx,而期刊格式需要修改为fig1.xxx.修改方法如下:在开头调用工具包的地方,加\usepackage{caption}。表格:在\begin{document}前,加一句\captionsetup[fi

2021-03-07 20:28:58 1088

原创 Transformer

Transformer特别的地方是在seq2seq上大量用到了self-attention传统的seq2seq,内部是RNN,输入是一个序列,输出是一个序列,在输出序列b1-b4均考虑了a1-a4,因此不能被平行化。使用CNN来处理,每一个filter的输入是sequence中的一小段,然后使用sequence扫过整个sequence当我们使用多个filter扫过这个sequence,可以得到和RNN相同的输入和输出,但是CNN只能考虑部分输入。解决:叠很多层CNN就可以考虑全部输入。CNN

2021-03-05 20:25:43 417

原创 attack and defense

深度神经网络在图像分类领域尽管有很高的正确率,但是非常容易受到对抗样本的攻击的。这些对抗样本仅有很轻微的扰动,人类视觉甚至系统无法察觉这种扰动(图片看起来几乎一样)。这样的攻击会导致神经网络完全改变它对图片的分类。此外,同样的图片扰动可以欺骗好多网络分类器。因此,机器光有强度还不够,还需要能够应对来自人类的恶意。Attract(攻击)1.什么是attract在训练好的network中,给一个input,会得到一个正确的 output (输入一个猫的图片得到猫的分类)。Attack 是在 in

2021-01-24 15:28:28 1155 1

原创 4.1 TF-IDF抽取文本关键词

TF-IDF原理:https://blog.csdn.net/liusisi_/article/details/107028905TF-IDF代码实现(Python):https://blog.csdn.net/liusisi_/article/details/107030094每篇新闻提取十个关键词

2020-12-20 15:15:15 125

原创 4.2 词频统计提取关键词

流程:1.通过jieba分词将评论进行分词,获取所有的词语列表2.计算词语列表中出现的词语及其对应的频次,存储为字典;3.删除字典中一些停用词的键值对;4.对字典里的词语按照频次进行排序;5.输出词语及其频次;6.结果;7.提取词频较高的即可作为关键词...

2020-12-20 15:14:41 1164

原创 3.4 StanfordCoreNLP分词命名实体提取

https://bbs.51cto.com/thread-1567549-1.html

2020-12-20 15:14:21 688 1

原创 4.3 textrank提取关键词

textrank介绍:https://blog.csdn.net/pit3369/article/details/95594728代码:f = open('../data/good.txt', mode='r', encoding='utf-8') tr4w = TextRank4Keyword(stop_words_file='../data/stopwords.data') # 导入停止词 text = f.read() f.close() tr4w = Text

2020-12-20 15:13:23 262

原创 5.1 使用word2vector表示词向量

读取分词后的评论,将分词的结果放在list中,每条评论为一个list,所有的评论放入list_all中。from gensim.models import Word2Vecimport mathstopwords = Nonewith open('../data/stopwords.data', 'r', encoding='utf-8') as fr: stopwords = fr.readlines()list_all = []list_temp = []with open('.

2020-12-20 15:13:07 131

原创 5.2 词向量之间的计算(欧氏距离和余弦距离)

欧式距离:https://blog.csdn.net/liusisi_/article/details/107370747vec1 = X[0] # 取一个词向量vec2 = X[1]# 欧式距离distance_o = 0sum = 0for i in range(len(vec1)): a = vec1[i]-vec2[i] pow_a = math.pow(a, 2) sum += pow_adistance_o = math.sqrt(sum)print(d

2020-12-20 15:12:57 2638

原创 3.3 采用HMM算法进行分词

HMM简介:https://blog.csdn.net/liusisi_/article/details/108350944HMM分词:https://blog.csdn.net/liusisi_/article/details/108352173分词结果:

2020-12-20 15:12:04 181

原创 3.2 采用最大最小匹配进行分词

前向最大、后向最大匹配的原理见:https://blog.csdn.net/liusisi_/article/details/107184294与最大匹配相反,最小匹配的原理就是在进行分词时每次都选择词典中出现的长度最短的词作为分隔点。最大匹配得到的结果粒度很粗,如果我们想要切分出很细粒度的词就需要使用最小匹配算法,使用正向最小匹配算法。正向最大匹配算法: (使用jieba分词的结果来建立词典,之后将之前获取的评论重新进行分词)1.建立词典2.正向最大匹配算法 (后向最大匹配算法需要将tryWo

2020-12-20 15:11:52 569

原创 3.1jieba分词并存储

支持三种分词模式:精确模式,试图将句子最精确地切开,适合文本分析;全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。# encoding=utf-8import jiebaseg_list = jieba.cut("我来到北京清华大学", cut_all=True)print("Full Mode: " + "/ ".join(seg_list)) # 全模式seg_lis

2020-12-20 15:11:38 1146

原创 2.爬取百度百科的infobox内容

代码:结果(三元组用###分开):

2020-12-20 15:11:28 297

原创 1.scrapy爬虫

1.创建工程:在控制台模式下进入你要建立工程的文件夹执行如下命令创建工程:scrapy startproject hellospider2.打开该工程查看目录结构:scrapy.cfg: 项目的配置文件commentspider/: 该项目的python模块。之后您将在此加入代码。commentspider/items.py:需要提取的数据结构定义文件。commentspider/pipelines.py: 用来对items里面提取的数据做进一步处理,如保存等。commentspider

2020-12-20 15:11:14 158 1

原创 6.1 文本表示(one-hot)

one-hot原理:https://blog.csdn.net/liusisi_/article/details/107149750代码:import jiebaimport numpy as npfrom collections import Counterstopwords = [line.strip() for line in open('../data/stopwords.data', 'r', encoding='utf-8').readlines()]sentence1 = '小

2020-12-20 15:10:57 213

原创 6.2 用词向量表示文本(分布式表示)

代码:import jiebaimport gensimfrom gensim.models.doc2vec import Doc2Vec, LabeledSentenceTaggededDocument = gensim.models.doc2vec.TaggedDocumenttag_list = []cut_list = []with open('a.txt', 'r', encoding='utf-8') as f: docs = f.readlines() for

2020-12-20 15:10:34 504

原创 分词算法的评估标准:P、R、F1

准确率Precision = 正确切分出的词的数目/切分出的词的总数召回率Recall = 正确切分出的词的数目/应切分出的词的总数F1 = 2PrecisitonRecall/(Precision+Recall)

2020-12-20 15:10:06 1134

原创 动手学数据分析-01数据载入及初步观察

数据集下载 https://www.kaggle.com/c/titanic/overview使用相对路径:使用绝对路径:read_csv和read_table都是是加载带分隔符的数据,每一个分隔符作为一个数据的标志,但二者读出来的数据格式还是不一样的,read_table是以制表符 \t 作为数据的标志,也就是以行为单位进行存储。#写入代码df=pd.read_csv('train.csv',names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','堂兄

2020-12-20 15:09:46 92

原创 半监督学习

半监督学习监督学习是什么?训练集的每一个数据已经有特征和标签(我们在进行文本分类的时候,训练数据为已经分好类别的语料)有输入数据和输出数据通过学习训练集中输入数据和输出数据的关系,生成合适的函数,将输入映射到合适的输出。比如分类、回归。半监督学习是什么?在label data上面有另外一组unlabel data(只有input没有output)训练集中一部分数据有特征和标签,另一部分只有特征(只有输入没有输出),综合两类数据来生成合适的函数。【通常无标签的数据要多于有标签的数据】

2020-12-16 17:30:59 11000 2

原创 HMM(隐马尔可夫)在中文分词中的应用

中文分词,就是给一个汉语句子作为输入,以“BEMS”组成的序列串作为输出,然后再进行切词,进而得到输入句子的划分。其中,B代表该字是词语中的起始字,M代表是词语中的中间字,E代表是词语中的结束字,S则代表是单字成词。HMM简介给定一个句子:小明昨天去游泳馆学游泳了得到BEMS组成的序列为BEBESBMESBES因为句尾只可能是E或者S,所以得到切词方式为BE/BE/S/BME/S/BE/S小明/昨天/去/游泳馆/学/游泳/了五元组:状态集合Q={B,E,M,S}观测集

2020-09-01 23:08:12 751

原创 HMM(隐马尔可夫)简介

通过一个简单的例子来介绍马尔可夫链:假设天气有三种状态(晴天、多云、雨天),三种状态之间的转换关系如图:我们想要通过今天的天气来推测明天的天气和后天的天气,可以直接根据状态转换关系来推测,这种可以直接观测到的状态转换(晴天—>雨天—>多云)就称作马尔可夫链。如果我们不知道今天的天气只知道水藻的干湿状态,只通过水藻的状态来推测天气:这种想推测的东西不能直接观测到,而是根据另一种我们可见的这种观测的东西去推算我们想知道的信息就需要用到隐马尔可夫模型。隐马尔可夫模型(HMM):是

2020-09-01 22:26:22 33975 3

原创 相似度计算(欧式距离和余弦距离)

相似度:即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似度。欧式距离(考虑向量之间的距离):通过向量之间的距离来判断相似程度,距离越近就代表越相似。C=|b-a|例:余弦距离(考虑向量之间的方向):通过向量夹角的大小,来判断向量的

2020-07-15 21:52:11 6726

原创 中文分词——考虑语义

考虑语义的分词步骤:当按照步骤一:生成所有可能的分割;步骤二:选择其中最好的。这种分开的方法时效率比较低,这里引入viterbi算法来解决效率问题。例:待分词语句:“经常有意见分歧”词典:[“经常”,“经”,“有”,“有意见”,“意见”,“分歧”,“见”,“意”,“见分歧”,“分”]概率:[0.1, 0.05, 0.1, 0.1, 0.2, 0.2, 0.05, 0.05, 0.05, 0.1]-log(x):

2020-07-08 21:50:05 596

原创 机器学习算法的类型

按照训练样本提供的信息以及反馈方式的不同,将机器学习算法分为监督学习(每个样本都有标签)、无监督学习(不包含目标标签)、强化学习(通过交互来学习)。1.监督学习定义:如果机器学习的目标是通过建模样本的特征 x 和标签 y 之间的关系:y = f(x, θ)或p(y|x, θ),并且训练集中每个样本都有标签,那么这类机器学习称为监督学习(Supervised Learning)。根据标签类型的不同,监督学习又可以分为回归问题和分类问题和结构化学习问题。回归(Regression)问题中的标签y 是

2020-07-08 16:54:10 1533

原创 中文分词— 前向最大匹配、后向最大匹配(流程)

前向最大匹配法:首先定义MAX_LENGTH的大小(一般为词典中最长的单词的长度),之后将待分词子串从前往后扫描取出MAX_LENGTH的长度,然后在词典中进行匹配,尽可能地选择与词典中最长单词匹配的词作为目标分词,然后进行下一次匹配。算法流程:假设词典中最长的单词为 5 个(MAX_LENGTH),那么最大匹配的起始子串字数也为 5 个(1)从待分词子串中从前往后取出5个字,然后扫描分词字典,测试该5个字的子串是否在字典中(2)如果存在,则从待分词子串中删除掉该5个字的子串,重新按照规则取子串,

2020-07-07 16:57:55 3487

原创 p,np,np-hard,np-complete问题

p问题: polynomial problem,就是多项式问题。说的是某些问题可以用一组多项式来表示。np问题: Non-deterministic Polynomial problem,不确定性问题,例:一个路径规划问题,有5个地:A,B,C,D,E,一个地去另外一个地距离不一样,花费也不一样,问遍历完这5个地最低花销的方案是怎么样。这个问题你能知道,我花多点时间一个一个枚举可以得出结果的,但是呢,我猜一个,然后那个就是最低花销的,我运气特别好,总能在一定时间内猜到最佳方案,这就是np问题。**np.

2020-07-06 16:25:30 430

原创 python使用结巴分词导入自己的分词词典

1.创建分词字典:创建一个TXT文件,文件一行为一个词(文档编码必须为UTF-8)dict.txt青藏铁路责任编辑西藏自治区导入:import jiebajieba.load_userdict("./dict.txt") #导入自己的分词词典word_list = jieba.cut(content) #对文本进行分词print("|".join(word_list))2.使用add_word和suggest_freq:import jiebajieba.suggest_

2020-07-06 11:56:50 2106 1

原创 分类和聚类

分类:根据某些特征给对象贴一个“标签”。例:在马路上遇到一个人,判断他/她是不是学生。聚类:事先不知道标签,根据对象之间的相似情况进行成团分析。例:去大教室上自习,发现大家三三两两扎堆地做,你发现坐在一起的都是一个班的。...

2020-07-06 10:16:56 753

原创 文本表示方法

文本表示就是将文本转化成数学上的向量表示,怎么把字符串转化为向量,就是文本表示的核心问题。离散表示1.One-hot这种编码格式首先建立一个全局的完备的词典,该词典包含所有文本中的词,因此该方式表示后的形式为一个很大的vector,vector中只在该词出现的位置设置为1,表示该词出现,其余全部为0。例:小明喜欢看电影,小红喜欢听歌。小张喜欢打篮球。这两个句子中包含的词去重后构建一个词典,(需要进行文本的预处理-分词,去停用词){“小明”:1,“喜欢”:2,“看电影”:3,“小红”:4

2020-07-06 10:02:29 1776 1

原创 斐波那契数列递归算法的时间复杂度计算

斐波那契数列:前两项是1,后面的每项是其前两项之和。比如:1 1 2 3 5 8 13…递归实现:def Fab(n): if n==0 or n==1: return 1 # 递归:函数的自身调用 return Fab(n-1) + Fab(n-2)递归算法时间复杂度为(二叉树的节点个数):O()=(2h)-1=2n。空间复杂度为树的高度:h即o(n)....

2020-07-05 17:30:26 14586 8

原创 信息的度量和作用

1.信息熵:一条信息的信息量与其不确定性有着直接的关系。(变量的不确定性越大,熵也就越大)2.信息的作用:信息是消除系统不确定性的唯一办法(在没有获得任何信息前,一个系统就像是一个黑盒子,引入信息,就可以了解黑盒子系统的内部结构),信息和信号处理的应用都是一个消除不确定性的过程(知道的信息越多,随机事件的不确定性就越小)3.互信息(相关性):互信息为两个随机事件“相关性”的量化度量4.相对熵(1)对于两个完全相同的函数,它们的相对熵为零(2)相对熵越大,两个函数差异越大;反之,相对熵越小,两个

2020-07-05 12:21:51 954

原创 Python读取数据库写入TXT中(一条数据写入一个TXT文本)

import osimport pymysqlconn = pymysql.connect( host='localhost', user='root', password='123456', db='news', charset='utf8', # autocommit=True, # 如果插入数据,, 是否自动提交? 和conn.commit()功能一致。)def selecttable():# ***************

2020-07-01 16:52:54 1584

原创 Python利用TF-IDF实现文章的关键词提取

利用jieba分词对文章进行分词(这里是遍历了一个文件夹里的所有文件)def segment(): """word segment""" for txt in os.listdir(base_path): whole_base = os.path.join(base_path, txt) whole_seg = os.path.join(seg_path, txt) with codecs.open(whole_base, 'r', 'utf

2020-07-01 16:12:48 4011 3

原创 pycharm安装pandas

在控制台输入pip install pandas 后出现Requirement already satisfied之后按照下面的步骤安装就可以了。安装完成后import pandas 就不会报错了。

2020-07-01 16:00:47 5636 2

原创 Python连接数据库

Python连接数据库需要先导入pymysql模块:import pymysql连接数据库步骤:1、连接数据库;2、创建游标对象;3、对数据库进行增删改查;4、关闭游标;5、关闭连接。DBUtil.py# 1. 连接数据库,import pymysqlconn = pymysql.connect( host='localhost', user='root', password='123456', db='sensitivedata', charset='u

2020-06-30 14:24:28 102

原创 TF-IDF实现Python

https://www.cnblogs.com/wang2825/articles/8974494.htmlimport osimport codecsimport mathimport operatordef fun(filepath): # 遍历文件夹中的所有文件,返回文件list arr = [] for root, dirs, files in os.walk(filepath): for fn in files: arr.ap

2020-06-29 22:37:31 2662 1

原创 TF-IDF原理

TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率),是一种统计方法,可以用来评估一个词对于一个文件集来说的重要程度,也可以评估一个语料库中的其中一份文件的重要程度。词语的重要性与它在文本中出现的次数成正比,与它在语料库中出现的频率成反比。(某词在文本中出现的次数越多,在语料库中出现的次数越少越能代表该文章)词频 (term frequency, TF) 指的是该词在文本中出现的次数。这个数字通常会被归一化(一般是词频除以文章总词数),

2020-06-29 22:06:14 639

原创 java连接数据库

连接数据库:DBUtil.javapackage sensitiveword_test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBUtil { private static String driver; private static String url; private static String userna

2020-06-29 17:51:38 94 1

原创 MySQL使用命令行来导入SQL文件

创建数据库:create database name;选择数据库:use name;导入mysql文件:source C:\Users\liu\Desktop\name.sql

2020-06-29 17:14:11 232

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除