---
title: CN-Law-Query-Retrieval-Dataset
canonical_url: "https://www.modelscope.cn/datasets/ByronLeeee/CN-Law-Query-Retrieval-Dataset"
md_url: "https://www.modelscope.cn/datasets/ByronLeeee/CN-Law-Query-Retrieval-Dataset.md"
repository: ByronLeeee/CN-Law-Query-Retrieval-Dataset
chinese_name: "中文法律条文检索数据集"
last_updated: 2025-12-06
license: "Apache License 2.0"
storage_size: "64 MB"
downloads: 334
stars: 5
---

# CN-Law-Query-Retrieval-Dataset

> CN-Law-Query-Retrieval-Dataset - ByronLeeee 在 ModelScope 开源的数据集。CN-Law-Query-Retrieval-Dataset

ByronLeeee/CN-Law-Query-Retrieval-Dataset 是 ModelScope 魔搭社区上的数据集，存储大小 64 MB，采用 Apache License 2.0 许可。

- **Repository**: ByronLeeee/CN-Law-Query-Retrieval-Dataset
- **License**: Apache License 2.0
- **Storage size**: 64 MB
- **Downloads**: 334
- **Stars**: 5
- **Last updated**: 2025-12-06

Source: https://www.modelscope.cn/datasets/ByronLeeee/CN-Law-Query-Retrieval-Dataset

---

# CN-Law-Query-Retrieval-Dataset

## 📖 数据集简介 (Introduction)

**CN-Law-Query-Retrieval-Dataset** 是一个专为**中文法律 RAG (检索增强生成)** 场景设计的高质量微调数据集。

该数据集旨在解决通用向量模型在法律领域遇到的核心痛点：无法准确区分**用户口语化提问**与**专业法条**之间的语义联系，以及容易混淆**国家法律**与**地方法规/行政规章**中相似条款的问题。

本数据集包含约 **60k** 条 `(Anchor, Positive, Negative)` 三元组，适用于微调 BERT、RoBERTa、BGE、Gemma 等 Embedding 模型，尤其适合微调EmbeddingGemma-300M。

### 💡 核心特性 (Features)
1.  **口语化 Query (Colloquial Queries)**：Anchor（查询）由 LLM (DeepSeek/Gemma) 基于真实法条生成，模拟了普通用户在咨询法律问题时的口语、模糊描述和场景化提问，弥补了“法言法语”与日常用语的鸿沟。
2.  **高难度负例 (Hard Negatives)**：Negative（负例）并非随机抽取，而是通过EmbeddingGemma-300M模型向量检索挖掘出的“Top-K 难负例”。
    *   *同源过滤*：严格排除了与正例来自同一部法律的条款，迫使模型学会区分法律层级（如《专利法》vs《陕西省专利条例》）。
3.  **覆盖广泛**：数据源覆盖中国主要成文法（宪法、民商法、刑法、行政法等）。

## 📂 数据格式 (Data Format)

数据集采用 JSONL 格式，每一行包含一个三元组：

*   **anchor**: 用户查询 (Query)
*   **positive**: 正确的法律条文 (Target Document)
*   **negative**: 容易混淆的错误法条 (Hard Negative Document)

```json
{
  "anchor": "负责专利执法的部门查处假冒行为时能扣押产品吗？",
  "positive": "title: 中华人民共和国专利法 第六十九条 | text: 负责专利执法的部门根据已经取得的证据...可以查封或者扣押。",
  "negative": "title: 陕西省专利条例 第二十四条 | text: 负责专利执法的部门根据已经取得的证据...可以查封或者扣押。"
}
```

## 🛠️ 构建方法 (Construction Method)

1.  **数据清洗**：从全量法律数据库中提取“国家法律”层级的条文作为正例源。
2.  **Query 生成**：使用 DeepSeek-V3 等模型，利用 Prompt Engineering 生成对应的口语化问题。
3.  **负例挖掘**：
    *   使用通用 Embedding 模型对 Query 进行检索。
    *   选取排名靠前（Top-K）但非正确答案的法条作为负例。
    *   *策略优化*：优先保留文本相似度高但属于不同法律文件的条目（如地方法规），以增强模型的细粒度判别能力。

## 🚀 使用方法 (Usage)

### 使用 Hugging Face `datasets` 加载

```python
from datasets import load_dataset

dataset = load_dataset("ByronLeeee/CN-Law-Query-Retrieval-Dataset")

# 查看第一条数据
print(dataset['train'][0])
```

### 配合 Sentence-Transformers 训练

```python
from sentence_transformers import InputExample, losses, SentenceTransformer
from torch.utils.data import DataLoader

# 1. 加载数据转换格式
train_examples = []
for row in dataset['train']:
    train_examples.append(InputExample(texts=[row['anchor'], row['positive'], row['negative']]))

# 2. 定义 Dataloader
train_dataloader = DataLoader(train_examples, shuffle=True, batch_size=16)

# 3. 定义损失函数 (推荐使用 MNRLoss)
model = SentenceTransformer('google/embeddinggemma-300m')
train_loss = losses.MultipleNegativesRankingLoss(model=model)

# 4. 开始微调...
```
