<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[OceanOcean123的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/OceanOcean123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; OceanOcean123]]></copyright><item><title><![CDATA[无监督关键短语的生成问题博客13--Segmentation.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/121719556</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/121719556</guid><author>OceanOcean123</author><pubDate>Sat, 04 Dec 2021 19:52:14 +0800</pubDate><description><![CDATA[2021SC@SDUSC

在上一篇博客中，我们分析了TextRank4Keyword类中的函数，但实际上TextRank中词图的构建和文本预处理是由Segmentation.py和utils.py实现的，本篇博客中，我们将分析Segmentation.py和util.py两个文件，并对此次的课题进行总结。



一、util.py的分析

util.py的主要函数如下：



图1:util.py的主要函数

combine:构造在window下的单词组合，用来构造单词之间的边
	get_simil...]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客12--TextRank4ZH的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/121716871</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/121716871</guid><author>OceanOcean123</author><pubDate>Sat, 04 Dec 2021 17:01:09 +0800</pubDate><description><![CDATA[2021SC@SDUSC

上一篇博客中，我们分析了基于tfidf实现的关键词抽取的方法，在本篇论文中，作者的实验部分有用该方法和其他对比方法进行对比，这里我们将分析对比方法textrank方法，该方法是无监督的以图为基础的关键词抽取方法，我们将结合该方法的原理分析方法的实现。

首先本篇论文采用的数据集如下：



有监督的copyRNN采用了文档-关键词的标签和validation set，其他方法都采用了kp20k训练集的原始文档作为输入，关于kp20k训练集的处理已在前面博客中说明。

作者的实验.]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客11--tfidf.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/121687328</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/121687328</guid><author>OceanOcean123</author><pubDate>Thu, 02 Dec 2021 22:52:34 +0800</pubDate><description><![CDATA[2021SC@SDUSC

上一篇博客中，我们完成了对项目中utils.py的分析，在本篇博客中，我们将分析pke中的tfidf.py文件，首先我们将结合论文分析tf-idf指标的计算方法，接着结合实例的使用和tf-idf源码进行分析。



一、tf-idf的计算方法

我们知道，关键短语生成问题实际上是为一系列短语提供排名，所以我们需要一些方法去为候选的短语进行排名，我们注意到词汇和语意的相似性对关键短语的排名是非常重要的，因此本项目结合了两种相似性进行排名，以得到sliver labels.

首..]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客10--utils.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/121666705</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/121666705</guid><author>OceanOcean123</author><pubDate>Thu, 02 Dec 2021 20:49:57 +0800</pubDate><description><![CDATA[2021SC@SDUSC

上一篇博客我们分析了utils.py中初步提取关键短语的函数，最后介绍了混淆矩阵的概念，接下来将会用到混淆矩阵的指标计算precision和recall及F1分数，再复习一下，recall就是分类后的正例占样本中标记为正例的所以样本的比例，precision就是实际正例占分类结果为正例的样本的比例。

本篇博客我们将首先分析utils.py中的get_fscore函数，再分析pke中的有监督的神经网络为基础的seq2seq模型，其实现了输入文本的序列化。（结合之前我们分析的v]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客09--utils.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/121453375</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/121453375</guid><author>OceanOcean123</author><pubDate>Sun, 21 Nov 2021 15:33:11 +0800</pubDate><description><![CDATA[2021SC@SDUSC

utils.py写的函数主要被extract.py文件调用，主要有对关键词的初步提取（通过构造语法树，利用正则表达式等方法，之后将介绍），评价召回率、精确度等score分数等函数，此篇博客中将仔细分析。首先来看utils.py的几个函数



本篇博客中我们将分析extract_candidates函数和get_ngram函数。



一、词块划分与语法树的构建

首先来看第一个函数，提取候选关键短语，这里我们先来介绍nltk的句子分割器、分词器和词性标注.]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客08--train_model.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/121440702</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/121440702</guid><author>OceanOcean123</author><pubDate>Sat, 20 Nov 2021 17:23:18 +0800</pubDate><description><![CDATA[2021SC@SDUSC

我们将继续03篇博客之后，分析doc2vec模型里train_model.py的代码，分析doc2vec模型具体的构建过程。该代码也适用于有预先训练好的词嵌入的训练，且代码的实现基于genism。



一、train_model.py的代码分析


import gensim.models as g
import logging

#doc2vec参数
vector_size = 256 
window_size = 15 
min_count = 1 
sampling..]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客07--create_vocabulary.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/121410727</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/121410727</guid><author>OceanOcean123</author><pubDate>Thu, 18 Nov 2021 22:37:22 +0800</pubDate><description><![CDATA[2021SC@SDUSC

本文我们将分析create_vocabulary.py文件，该文件主要的功能是创立了一个词典，统计了文本的所有词和词出现的次数，以便后续的指标的计算和处理，将得到的结果保存到vocab_kp20k.npy文件中。首先我们来看一下该文件的结构。



一、create_vocabulary.py结构



图1:create_vocabulary.py的第一部分和相关资源的下载

首先是一些包的引入，Counter基于可迭代对象实现计数，我们将依次对每个词计数，依旧是引入了...]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客06--model.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/121105968</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/121105968</guid><author>OceanOcean123</author><pubDate>Mon, 08 Nov 2021 20:37:54 +0800</pubDate><description><![CDATA[2021SC@SDUSC

在上一篇博客中，我们分析了model.py中的Decoder类，并对LSTM作了简要的介绍，以实例来说明了构建模型时的各个参数，以及引入了嵌入层。本篇博客我们将从RNN模型的分类入手，分析Seq2Seq模型的框架并分析本篇论文中的Seq2Seq代码。

Encoder-Decoder框架是一个End-to-End学习的算法。简单来说，Seq2Seq（即Sequence to Sequence）以一个Encoder来编码输入的Sequence，再以一个Decoder来输出Seque]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客05--model.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/121087659</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/121087659</guid><author>OceanOcean123</author><pubDate>Mon, 01 Nov 2021 22:39:43 +0800</pubDate><description><![CDATA[2021SC@SDUSC

在上一篇博客中，我们介绍了RNN模型和代码中的Encoder类，Encoder-Decoder并不是一个具体的模型，而是一类框架。Encoder和Decoder部分可以是任意的文字，语音，图像，视频数据，模型可以采用CNN，RNN，BiRNN、LSTM、GRU等等。所以基于Encoder-Decoder，可以设计出各种各样的应用算法。我们研究的论文基于LSTM实现了编码-解码模型，并以Encoder-Decoder框架为基础实现了Seq2Seq。

一、LSTM框架

我们首先分]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客04--model.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/120835004</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/120835004</guid><author>OceanOcean123</author><pubDate>Mon, 18 Oct 2021 21:16:36 +0800</pubDate><description><![CDATA[2021SC@SDUSC

在前两篇博客中，我们分析了extract.py文件，从本篇博客开始，我们将讨论本篇论文的核心文件model.py，并结合nlp中的经典Encoder-Decoder模型进行分析。model.py主要由三个类，Encoder类编码，Decoder类解码，Seq2Seq模型生成序列。对于此类的序列编码模型，实际上就是对经典的RNN神经网络的一个变形，我们将在下文详细分析。



图1:model.py的主要类与函数

我们先看第一个类Encoder，其定义了两个函数__init__函]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客03--extract.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/120834981</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/120834981</guid><author>OceanOcean123</author><pubDate>Mon, 18 Oct 2021 21:15:46 +0800</pubDate><description><![CDATA[​
2021SC@SDUSC

经过分工之后，extract.py文件的分析由小组中的其他成员实现，在论文中提到了嵌入相似性的评价指标需要用doc2vec模型将文本转化为向量后计算余弦相似度，在extract.py文件只是使用了预先训练好的doc2vec模型，却并没有附相应的bin文件，我负责用wiki训练doc2vec模型以便进行后续的推进。我们先从word2vec模型入手，分析文本向量化。

一、关于文本的张量表示
将一段文本使用张量表示，其中一般将词汇表示成向量，称作词向量，再由各个词向量按顺序组成矩]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题博客02--extract.py的分析]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/120834091</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/120834091</guid><author>OceanOcean123</author><pubDate>Mon, 18 Oct 2021 20:30:45 +0800</pubDate><description><![CDATA[​
2021SC@SDUSC

在上一篇博客中，我们小组各位成员阅读了《Unsupervised Deep Keyphrase Generation》这篇论文，了解了这一关键词抽取模型的任务与主要实现，并对该模型的各个步骤进行了简要的说明。之后，我们确定了小组分工，初步配置了环境。

一、项目总览
该项目的代码文件如下：




其中，utils.py是该项目其他文件需要调用的工具文件，里面有很多封装好的函数，其他文件可以直接调用。 Extract.py实验了论文的step1&2，实验了phrase ban]]></description><category></category></item><item><title><![CDATA[无监督关键短语的生成问题01--综述]]></title><link>https://blog.youkuaiyun.com/OceanOcean123/article/details/120609187</link><guid>https://blog.youkuaiyun.com/OceanOcean123/article/details/120609187</guid><author>OceanOcean123</author><pubDate>Mon, 04 Oct 2021 23:39:22 +0800</pubDate><description><![CDATA[2021SC@SDUSC 

一、问题背景
关键短语提取(Keyphrase generation)可以得到一个能够总结输入的长文档的短语列表，被广泛应用于信息检索、文本总结、文本分类等领域。研究表明，对于科学领域的相关文档，大约有50%的关键短语并没有在原文中出现。随着深度神经网络的发展，近来有研究表明可以根据关键短语和文档的语义相关性生成文档的关键短语(无论它们是否出现在原文中)。但这些方法都是有监督的，并且需要大量的文档--关键短语对训练。

本课题提出了一个无监督的关键短语提取方法，该方法不利用人工]]></description><category></category></item></channel></rss>