Skip to content
This repository has been archived by the owner on May 15, 2024. It is now read-only.

Latest commit

 

History

History
111 lines (88 loc) · 4.1 KB

README.md

File metadata and controls

111 lines (88 loc) · 4.1 KB

KdConv

KdConv is a Chinese multi-domain Knowledge-driven Conversionsation dataset, grounding the topics in multi-turn conversations to knowledge graphs. KdConv contains 4.5K conversations from three domains (film, music, and travel), and 86K utterances with an average turn number of 19.0. These conversations contain in-depth discussions on related topics and natural transition between multiple topics, while the corpus can also used for exploration of transfer learning and domain adaptation.

We provide several benchmark models to facilitate the following research on this corpus.

Our paper on arXiv and ACL Anthology. If the corpus is helpful to your research, please kindly cite our paper:

@inproceedings{zhou-etal-2020-kdconv,
    title = "{K}d{C}onv: A {C}hinese Multi-domain Dialogue Dataset Towards Multi-turn Knowledge-driven Conversation",
    author = "Zhou, Hao  and
      Zheng, Chujie  and
      Huang, Kaili  and
      Huang, Minlie  and
      Zhu, Xiaoyan",
    booktitle = "ACL",
    year = "2020"
}

Example

An example of the conversation with annotations in our corpus:

example

Each utterance in the conversation is annotated with referred knowledge graph triplets. As the discussion deepens, the conversation will also transition between multiple topics.

Data

(You may need need the Tencent Pretrained Word Embedding we used in experiments.)

The data files are in the ./data folder. It contains three domains film/music/travel, and each domain folder includes split sets train/dev/test.json and the corresponding knowledge base file kb_DOMAIN.json that was used to collect and construct the corpus.

We take the music domain for instance. After loading train.json, you will get a list of conversations. Each conversation looks like the following:

{
  "messages": [
    {
      "message": "对《我喜欢上你时的内心活动》这首歌有了解吗?"
    },
    {
      "attrs": [
        {
          "attrname": "Information",
          "attrvalue": "《我喜欢上你时的内心活动》是由韩寒填词,陈光荣作曲,陈绮贞演唱的歌曲,作为电影《喜欢你》的主题曲于2017年4月10日首发。2018年,该曲先后提名第37届香港电影金像奖最佳原创电影歌曲奖、第7届阿比鹿音乐奖流行单曲奖。",
          "name": "我喜欢上你时的内心活动"
        }
      ],
      "message": "有些了解,是电影《喜欢你》的主题曲。"
    },
    ...
    {
      "attrs": [
        {
          "attrname": "代表作品",
          "attrvalue": "旅行的意义",
          "name": "陈绮贞"
        },
        {
          "attrname": "代表作品",
          "attrvalue": "时间的歌",
          "name": "陈绮贞"
        }
      ],
      "message": "我还知道《旅行的意义》与《时间的歌》,都算是她的代表作。"
    },
    {
      "message": "好,有时间我找出来听听。"
    }
  ],
  "name": "我喜欢上你时的内心活动"
}
  • name is the starting topic (entity) of the conversation

  • messages is a list of all the turns in the dialogue. For each turn:

    • message is the utterance

    • attrs is a list of knowledge graph triplets referred by the utterance. For each triplet:

      • name is the head entity
      • attrname is the relation
      • attrvalue is the tail entity

      Note that the triplets where attrname is 'information' are the unstructured knowledge about the head entity.

After loading kb_music.json, you will get a dictionary. Each item looks like the following:

"忽然之间": [
  [
    "忽然之间",
    "Information",
    "《忽然之间》是歌手 莫文蔚演唱的歌曲,由 周耀辉, 李卓雄填词, 林健华谱曲,收录在莫文蔚1999年发行专辑《 就是莫文蔚》里。"
  ],
  [
    "忽然之间",
    "谱曲",
    "林健华"
  ]
  ...
]

The key is a head entity, and the value is a list of corresponding triplets.