文本相似度匹配-task1

### 背景介绍

文本语义匹配是自然语言处理中一个重要的基础问题,NLP 领域的很多任务都可以抽象为文本匹配任务。例如,信息检索可以归结为查询项和文档的匹配,问答系统可以归结为问题和候选答案的匹配,对话系统可以归结为对话和回复的匹配。语义匹配在搜索优化、推荐系统、快速检索排序、智能客服上都有广泛的应用。如何提升文本匹配的准确度,是自然语言处理领域的一个重要挑战。

  • 信息检索:在信息检索领域的很多应用中,都需要根据原文本来检索与其相似的其他文本,使用场景非常普遍。
  • 新闻推荐:通过用户刚刚浏览过的新闻标题,自动检索出其他的相似新闻,个性化地为用户做推荐,从而增强用户粘性,提升产品体验。
  • 智能客服:用户输入一个问题后,自动为用户检索出相似的问题和答案,节约人工客服的成本,提高效率。

让我们来看一个简单的例子,比较各候选句子哪句和原句语义更相近:

  • 原句:“车头如何放置车牌”
  • 比较句1:“前牌照怎么装”
  • 比较句2:“如何办理北京车牌”
  • 比较句3:“后牌照怎么装”

比较结果:

  • 比较句1与原句,虽然句式和语序等存在较大差异,但是所表述的含义几乎相同
  • 比较句2与原句,虽然存在“如何” 、“车牌”等共现词,但是所表述的含义完全不同
  • 比较句3与原句,二者讨论的都是如何放置车牌的问题,只不过一个是前牌照,另一个是后牌照。二者间存在一定的语义相关性
  • 所以语义相关性,句1大于句3,句3大于句2,这就是语义匹配。

### 数据说明

LCQMC数据集比释义语料库更通用,因为它侧重于意图匹配而不是释义。LCQMC数据集包含 260,068 个带有人工标注的问题对。

  • 包含 238,766 个问题对的训练集
  • 包含 8,802 个问题对的开发集
  • 包含 12,500 个问题对的测试集

### 评估方式

使用准确率Accuracy来评估,即:

准确率(Accuracy)=预测正确的条目数/预测总条目数准确率

也可以使用文本相似度与标签的皮尔逊系数进行评估,不匹配的文本相似度应该更低。

  • 任务1:数据集读取

自然语言处理(Natural Language Processing, NLP)是计算机科学、人工智能和语言学的交叉领域,其目标是使计算机能够理解、生成和处理人类语言。常见的 NLP 技术包括语音识别、文本分析、机器翻译等。这些技术都是基于人工智能和机器学习的算法来实现的。

文本匹配是自然语言处理中的一种常见任务。它可以用来判断两个文本之间的相似度或相关性。常见的文本匹配任务包括:文本相似性匹配、问答匹配、查询-文档匹配等。这些任务的具体实现可以使用机器学习技术,例如使用神经网络模型进行文本嵌入,然后使用余弦相似度或其他相似度度量来计算文本之间的相似度。

LCQMC(Large-scale Chinese Question Matching Corpus)是一个大规模的中文文本匹配数据集。它包含超过 400,000 个标记为重复或非重复的问题对。该数据集由中国科学院自动化研究所(CASIA)深度学习技术与应用国家工程实验室(NEL-DLT)创建。

LCQMC 数据集中的问题涵盖广泛的主题,并以口语化的中文编写,使其成为文本匹配模型具有挑战性的数据集。该数据集通常用于训练和评估各种中文文本匹配模型的性能,例如基于神经网络的模型。它还用于中文自然语言处理的研究,例如文本匹配、文本分类和其他 NLP 任务。该数据集为研究人员提供了一个基准,用于评估其模型的性能并将其与最先进的方法进行比较。

import pandas as pd

def load_lcqmc():

'''

LCQMC文本匹配数据集

下载到本地

'''

# train = pd.read_csv('https://mirror.coggle.club/dataset/LCQMC.train.data.zip',

# sep='\t', names=['query1', 'query2', 'label'])

train = pd.read_csv('./dataset/LCQMC.train.data.zip',

sep='\t', names=['query1', 'query2', 'label'])

# valid = pd.read_csv('https://mirror.coggle.club/dataset/LCQMC.valid.data.zip',

# sep='\t', names=['query1', 'query2', 'label'])

valid = pd.read_csv('./dataset/LCQMC.valid.data.zip',

sep='\t', names=['query1', 'query2', 'label'])

# test = pd.read_csv('https://mirror.coggle.club/dataset/LCQMC.test.data.zip',

# sep='\t', names=['query1', 'query2', 'label'])

test = pd.read_csv('./dataset/LCQMC.test.data.zip',

sep='\t', names=['query1', 'query2', 'label'])

return train, valid, test

train, valid, test = load_lcqmc()

# 查看前2行

print(train[:2])

print(valid[:2])

print(test[:2])

输出:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值