使用 Keras 对 Quora 中的重复问题进行分类

在这篇文章中,我们将使用 Keras 对 Quora 中的重复问题进行分类。我们的实现灵感来自 Siamese 循环架构,并对相似度度量和嵌入层进行了修改(原始论文使用预训练的词向量)

来源:RStudio AI博客

简介

在本文中,我们将使用 Keras 对 Quora 中的重复问题进行分类。该数据集首次出现在 Kaggle 竞赛 Quora 问题对中,包含大约 400,000 对问题以及一列,指示问题对是否被视为重复。

Quora 问题对

我们的实现灵感来自 Siamese 循环架构,对相似度测量和嵌入层进行了修改(原始论文使用预训练的词向量)。使用这种架构可以追溯到 2005 年 Le Cun 等人,并且对于验证任务很有用。这个想法是学习一个将输入模式映射到目标空间的函数,使得目标空间中的相似度测量近似于输入空间中的“语义”距离。

孪生循环架构 Le Cun 等人

比赛结束后,Quora 也在这篇博文中描述了他们解决这个问题的方法。

博客文章

下载数据

可以从 Kaggle 数据集网页或 Quora 的数据集发布中下载数据:

数据集网页 数据集发布
library(keras)quora_data <- get_file( "quora_duplicate_questions.tsv", "https://qim.ec.quoracdn.net/quora_duplicate_questions.tsv")
library(keras)quora_data <- get_file( "quora_duplicate_questions.tsv", "https://qim.ec.quoracdn.net/quora_duplicate_questions.tsv") library(keras) ( keras keras ) quora_data <- get_file( quora_data <- get_file ( "quora_duplicate_questions.tsv", > "quora_duplicate_questions.tsv" "https://qim.ec.quoracdn.net/quora_duplicate_questions.tsv" "https://qim.ec.quoracdn.net/quora_duplicate_questions.tsv" ) )

我们使用 Keras get_file() 函数,以便缓存文件下载。

get_file()

读取和预处理

我们首先将数据加载到 R 中并进行一些预处理,以便更容易将其包含在模型中。下载数据后,您可以使用 readr read_tsv() 函数读取它。

read_tsv() tokenizer tokenizer <- text_tokenizer(num_words = 50000) tokenizer <- text_tokenizer (