/forum_dialogue_mnbvc

论坛对话语料清洗

MIT LicenseMIT

输出jsonl文件格式

  1. 每个jsonl文件,其大小略大于500MB。每行是一个以一个主题,论坛针对该主题进行回复的对话。
  2. 对于每一个论坛主题对话,其最高层次结构如下。
{
    "ID": 10000,
    "主题": "主题",
    "来源": "清华树洞",
    "回复": [],
    "元数据": {
        "发帖时间": "20200628 06:38:34",
        "回复数": 37,
        "扩展字段": ""
    }
}
  1. 其中回复是关于该语料的回复的相关评论的字典的列表,其结构如下所示。
{
    "楼ID": "abcdef",
    "回复": "",
    "扩展字段": "",
}
  1. 主题是楼主的话,由于楼主如果只发了链接由于会被过滤掉,所以主题有可能是空字符串。
  2. 扩展字段会以字符串的格式给出,格式不完全固定,原始数据里面有什么就当前的内部格式如下所示,可以通过json.loads来解析。

最高层次结构的扩展字段:

{
    "标签": "label", 
    "点赞数": 0, 
    "原文": "",
}

回复里面的扩展字段:

其中引用id代表回复的评论的那个的id,如果原始语料中只有回复某个人而没有具体回复哪条评论,引用ID置空,将只保留回复人。

(注:由于原始语料问题,引用人可能不能匹配在此回复之前的某个回复人)

{
    "回复人": "等站", 
    "回复时间": "", 
    "引用ID": "abcde",
    "引用人": "等战",
    "点赞数": 1,
    "点踩数": 1,
}
  1. label代表这个帖代表什么类型的讨论。
  2. 原文是该语料的完整来源,如果我们代码解析出错可以在原文中自行提取。

结果示例

{
    "ID": 275957,
    "主题": "出一张今晚七点贝多芬专场作品音乐会的票,一楼18排4座,原价60出。",
    "来源": "北大树洞",
    "回复": [
        {
            "楼ID": "1",
            "回复": "有意者可加洞主微信*",
            "扩展字段": "{\"回复人\": \"洞主\", \"引用人\": \"洞主\", \"回复时间\": \"20170924 13:54:21\"}"
        },
        {
            "楼ID": "2",
            "回复": "搭车转,楼主优先。有要的留言啊",
            "扩展字段": "{\"回复人\": \"Alice\", \"引用人\": \"Alice\", \"回复时间\": \"20170924 14:31:48\"}"
        },
        {
            "楼ID": "3",
            "回复": "已出",
            "扩展字段": "{\"回复人\": \"洞主\", \"引用人\": \"洞主\", \"回复时间\": \"20170924 17:17:50\"}"
        }
    ],
    "元数据": {
        "发帖时间": "20170924 13:53:31",
        "回复数": 3,
        "扩展字段": "{\"原文\": \"#p 275957 2017-09-24 13:53:31 1 3\\n出一张今晚七点贝多芬专场作品音乐会的票,一楼18排4座,原价60出。\\n\\n#c 1047150 2017-09-24 13:54:21\\n[洞主] 有意者可加洞主微信*\\n\\n#c 1047192 2017-09-24 14:31:48\\n[Alice] 搭车转,楼主优先。有要的留言啊\\n\\n#c 1047510 2017-09-24 17:17:50\\n[洞主] 已出\", \"点赞数\": 1}"
    }
}