[
  {
    "path": ".gitattributes",
    "content": "*.ipynb linguist-language=python;\n"
  },
  {
    "path": "README.md",
    "content": "# 项目目录\r\n```\r\n|—— models      # 存放模型目录 存放网页相关前端配置\r\n|—— modules     # 存放自己封装的encoder\r\n|—— out         \r\n|—— bert-base-chinese \r\n|—— |—— bert-base-chinese.tar.gz # bert预训练参数\r\n|—— |—— vocab.txt # bert词典库\r\n|—— data        # 存放数据\r\n|—— |—— Data.py\r\n|—— |—— small #自己合并了实体类型的数据\r\n|—— |——|—— json_data  \r\n|—— |——|—— npy_data  \r\n|—— |——|——|——train\r\n|—— |——|——|——dev\r\n|—— |——|——|——test1\r\n|—— |——|——|——test2\r\n|—— |——|—— origin_data  # 存放原始数据\r\n|—— analysis_result.ipynb  # 用来分析错误结果\r\n|—— checkpoints # 存放训练模型参数\r\n|—— config.py     \r\n|—— helpData.py # 数据预处理函数\r\n|—— mian.py     # 主函数\r\n|—— metrics.py  # 测评函数\r\n|—— README.md\r\n```\r\n# 项目环境(主要环境)\r\n- Ubuntu 16.04\r\n- Pytorch 1.x\r\n- Python 3.x\r\n# 运行方式\r\n- 克隆项目\r\n\r\n```\r\ngit clone https://github.com/Wangpeiyi9979/IE-Bert-CNN.git\r\n```\r\n- 准备数据\r\n    - 在这里[下载](https://pan.baidu.com/s/1DG1aVcDzbKG3ubkj8Q8nHQ)数据,提取码`59fg`。\r\n    - 解压数据，放在`data/small/origin_data/`文件夹下\r\n- 准备Bert预训练模型\r\n    - 在这里[下载](https://pan.baidu.com/s/1EGkPB628ewXJhqqgrHBfDw), 提取码`uolz`。将下载后的压缩文件放在`bert-base-chinese`文件夹下\r\n- 在data/small/目录下按项目结构中所示创建所需目录\r\n- 回到主目录，执行\r\n\r\n```\r\npython helpData.py\r\n```\r\n- 开始训练\r\n\r\n```\r\npython main train\r\n```\r\n- 预测\r\n    - 将config.py中的`ckpt_path`更改为训练后的模型地址.\r\n    执行：\r\n    ```\r\n    python main tofile --case=1\r\n    ```\r\n    预测结果存放在`out`文件夹下.\r\n\r\n- 结果： f1:0.81(线上结果),线下约在0.76的样子。\r\n"
  },
  {
    "path": "analysis_result.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Better speed can be achieved with apex installed from https://www.github.com/nvidia/apex.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import json\\n\",\n    \"golden_path = './data/small/origin_data/dev_data.json'\\n\",\n    \"predict_path = './out/pred_out'\\n\",\n    \"from config import opt\\n\",\n    \"from helpData import load_data\\n\",\n    \"from metrics import classification_report\\n\",\n    \"from pytorch_pretrained_bert import BertTokenizer\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_positions(data_list, map_str):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    返回实体在单词列表中的位置\\n\",\n    \"    sample:\\n\",\n    \"    >> input: ['球','星','姚'，'明', ...., ], '姚明'\\n\",\n    \"    >> return: (2, 3)\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    map_str = map_str.strip().replace(' ', '$')\\n\",\n    \"    map_str = tokenizer_n.tokenize(map_str)\\n\",\n    \"    map_str = [i.replace('#', '') for i in map_str]\\n\",\n    \"    map_str = ''.join(map_str)\\n\",\n    \"    data_list = [i.replace('#', '') for i in data_list]\\n\",\n    \"    # 如果只由一个词组成\\n\",\n    \"    for word in data_list:\\n\",\n    \"        if map_str.lower() in word.lower():\\n\",\n    \"            start_id = end_id = data_list.index(word)\\n\",\n    \"            return start_id, end_id\\n\",\n    \"\\n\",\n    \"    start_id = -1\\n\",\n    \"    end_id = -1\\n\",\n    \"    for idx, word in enumerate(data_list):\\n\",\n    \"        if start_id != - 1 and end_id != -1:\\n\",\n    \"            return start_id, end_id\\n\",\n    \"        if map_str.startswith(word):\\n\",\n    \"            start_id = end_id = idx\\n\",\n    \"            while end_id+1 < len(data_list) and data_list[end_id+1] in map_str:\\n\",\n    \"                if \\\"\\\".join(data_list[start_id:end_id+2]) == map_str:\\n\",\n    \"                    # print(\\\"\\\".join(data_list[start_id:end_id+3]))\\n\",\n    \"                    return start_id, end_id+1\\n\",\n    \"                end_id += 1\\n\",\n    \"            find_str = \\\"\\\"\\n\",\n    \"            for idx in range(start_id, end_id+1):\\n\",\n    \"                find_str = find_str + data_list[idx]\\n\",\n    \"            if find_str != map_str:\\n\",\n    \"                pre_extend = (data_list[start_id-1] if start_id > 0 else \\\"\\\") + find_str\\n\",\n    \"                last_extend = find_str + (data_list[end_id+1] if end_id < len(data_list)-1 else \\\"\\\")\\n\",\n    \"                pre_last_extend = (data_list[start_id-1] if start_id > 0 else \\\"\\\")+ find_str + (data_list[end_id+1] if end_id < len(data_list)-1 else \\\"\\\")\\n\",\n    \"                if map_str in pre_extend:\\n\",\n    \"                    start_id -= 1\\n\",\n    \"                elif map_str in last_extend:\\n\",\n    \"                    end_id += 1\\n\",\n    \"                elif map_str in pre_last_extend:\\n\",\n    \"                    start_id -= 1\\n\",\n    \"                    end_id += 1\\n\",\n    \"                else:\\n\",\n    \"                    start_id = -1\\n\",\n    \"                    end_id = -1\\n\",\n    \"    if start_id != -1 and end_id != -1:\\n\",\n    \"        return start_id, end_id\\n\",\n    \"    for idx, word in enumerate(data_list[:-1]):\\n\",\n    \"        if map_str in (word+data_list[idx+1]):\\n\",\n    \"            return idx,idx+1\\n\",\n    \"    # print(\\\"word_list{}  map_str {} loss\\\".format(data_list, map_str))\\n\",\n    \"    return start_id, end_id\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def load_data(path):\\n\",\n    \"    '''\\n\",\n    \"    加载数据，返回json数组.\\n\",\n    \"    '''\\n\",\n    \"    data = []\\n\",\n    \"    data_lines = open(path, encoding='utf-8').readlines()\\n\",\n    \"    for line in data_lines:\\n\",\n    \"        data.append(json.loads(line))\\n\",\n    \"    return data\\n\",\n    \"predict_data = load_data(predict_path)\\n\",\n    \"golden_data = load_data(golden_path)[:len(predict_data)]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_relation_num(datas):\\n\",\n    \"    r2num = {}\\n\",\n    \"    for data in datas:\\n\",\n    \"        spo_lists = data['spo_list']\\n\",\n    \"        for spo in spo_lists:\\n\",\n    \"            r = spo['predicate']\\n\",\n    \"            if not r in r2num.keys():\\n\",\n    \"                r2num[r] = 1\\n\",\n    \"            else:\\n\",\n    \"                r2num[r] += 1\\n\",\n    \"    return sorted(r2num.items(), key=lambda d:d[0])\\n\",\n    \"    return r2num\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_text2spo(datas):\\n\",\n    \"    text2spo = {}\\n\",\n    \"    for data in datas:\\n\",\n    \"        text2spo[data['text']] = data['spo_list']\\n\",\n    \"    return text2spo\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_right_relaiton_num(golden_data, predict_data):\\n\",\n    \"    golden_data = get_text2spo(golden_data)\\n\",\n    \"    predict_data = get_text2spo(predict_data)\\n\",\n    \"    print(len(golden_data))\\n\",\n    \"    rightr2num = {}\\n\",\n    \"    for text in golden_data.keys():\\n\",\n    \"        true_spos = golden_data[text]\\n\",\n    \"        pred_spos = predict_data.get(text, [])\\n\",\n    \"        all_true_predict = [predict['predicate'] for predict in true_spos]\\n\",\n    \"        for pred in pred_spos:\\n\",\n    \"            if pred['predicate'] in all_true_predict:\\n\",\n    \"                if not pred['predicate'] in rightr2num.keys():\\n\",\n    \"                    rightr2num[pred['predicate']] = 1\\n\",\n    \"                else:\\n\",\n    \"                    rightr2num[pred['predicate']] += 1\\n\",\n    \"    return sorted(rightr2num.items(), key=lambda d:d[0])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"21629\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"right_rnum = get_right_relaiton_num(golden_data, predict_data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"gloden relation num: [('丈夫', 680), ('上映时间', 463), ('专业代码', 3), ('主持人', 208), ('主演', 7411), ('主角', 39), ('人口数量', 45), ('作曲', 1123), ('作者', 4390), ('作词', 1119), ('修业年限', 2), ('出品公司', 851), ('出版社', 2270), ('出生地', 2370), ('出生日期', 2894), ('创始人', 81), ('制片人', 144), ('占地面积', 61), ('号', 197), ('嘉宾', 171), ('国籍', 1654), ('妻子', 680), ('字', 339), ('官方语言', 15), ('导演', 2697), ('总部地点', 310), ('成立日期', 1606), ('所在城市', 77), ('所属专辑', 1287), ('改编自', 71), ('朝代', 419), ('歌手', 3085), ('母亲', 425), ('毕业院校', 1433), ('民族', 1436), ('气候', 102), ('注册资本', 63), ('海拔', 43), ('父亲', 609), ('目', 1271), ('祖籍', 181), ('简称', 138), ('编剧', 866), ('董事长', 50), ('身高', 392), ('连载网站', 1657), ('邮政编码', 4), ('面积', 79), ('首都', 47)] \\n\",\n      \"\\n\",\n      \"predict relation num: [('丈夫', 942), ('上映时间', 378), ('专业代码', 1), ('主持人', 209), ('主演', 9253), ('主角', 30), ('人口数量', 49), ('作曲', 936), ('作者', 4737), ('作词', 1021), ('修业年限', 1), ('出品公司', 966), ('出版社', 2463), ('出生地', 2460), ('出生日期', 3079), ('创始人', 90), ('制片人', 167), ('占地面积', 65), ('号', 260), ('嘉宾', 284), ('国籍', 1783), ('妻子', 940), ('字', 415), ('官方语言', 14), ('导演', 2947), ('总部地点', 204), ('成立日期', 1651), ('所在城市', 81), ('所属专辑', 1396), ('改编自', 134), ('朝代', 479), ('歌手', 3257), ('母亲', 612), ('毕业院校', 1579), ('民族', 1532), ('气候', 103), ('注册资本', 78), ('海拔', 47), ('父亲', 875), ('目', 1137), ('祖籍', 212), ('简称', 127), ('编剧', 830), ('董事长', 58), ('身高', 426), ('连载网站', 1769), ('邮政编码', 4), ('面积', 84), ('首都', 48)] \\n\",\n      \"\\n\",\n      \"predict right num [('丈夫', 745), ('上映时间', 274), ('专业代码', 1), ('主持人', 200), ('主演', 8651), ('主角', 19), ('人口数量', 43), ('作曲', 812), ('作者', 4363), ('作词', 931), ('修业年限', 1), ('出品公司', 755), ('出版社', 2296), ('出生地', 2191), ('出生日期', 2865), ('创始人', 63), ('制片人', 110), ('占地面积', 54), ('号', 195), ('嘉宾', 198), ('国籍', 1258), ('妻子', 740), ('字', 314), ('官方语言', 14), ('导演', 2784), ('总部地点', 157), ('成立日期', 1577), ('所在城市', 70), ('所属专辑', 1262), ('改编自', 120), ('朝代', 403), ('歌手', 2987), ('母亲', 482), ('毕业院校', 1343), ('民族', 1352), ('气候', 101), ('注册资本', 49), ('海拔', 45), ('父亲', 664), ('目', 1137), ('祖籍', 163), ('简称', 112), ('编剧', 697), ('董事长', 41), ('身高', 386), ('连载网站', 1623), ('邮政编码', 4), ('面积', 73), ('首都', 44)]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"golden_rnum = get_relation_num(golden_data)\\n\",\n    \"predict_rnum = get_relation_num(predict_data)\\n\",\n    \"print(\\\"gloden relation num: {} \\\\n\\\".format(golden_rnum))\\n\",\n    \"print(\\\"predict relation num: {} \\\\n\\\".format(predict_rnum))\\n\",\n    \"print(\\\"predict right num {}\\\".format(right_rnum))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_case_ans(golden_data, predict_data):\\n\",\n    \"    predict_data = get_text2spo(predict_data)\\n\",\n    \"    golden_data = get_text2spo(golden_data)\\n\",\n    \"    case = {}\\n\",\n    \"    for text in golden_data.keys():\\n\",\n    \"        true_spos = golden_data[text]\\n\",\n    \"        for true in true_spos:\\n\",\n    \"            true['object_type'], true['subject_type'] = None, None\\n\",\n    \"            true['object'], true['subject'] = true['object'].lower(), true['subject'].lower()\\n\",\n    \"            \\n\",\n    \"        pred_spos = predict_data.get(text, [])\\n\",\n    \"        for pred in pred_spos:\\n\",\n    \"            pred['object_type'], pred['subject_type'] = None, None\\n\",\n    \"        unit = {'right':[], \\\"loss\\\":[], 'wrong':[]}\\n\",\n    \"        for true in true_spos:\\n\",\n    \"            if not true in pred_spos:\\n\",\n    \"                unit['loss'].append(true)\\n\",\n    \"            if true in pred_spos:\\n\",\n    \"                unit['right'].append(true)\\n\",\n    \"        for pred in pred_spos:\\n\",\n    \"            if not pred in true_spos:\\n\",\n    \"                unit['wrong'].append(pred)\\n\",\n    \"        if len(unit['loss']) == 0 and len(unit['wrong']) == 0:\\n\",\n    \"            continue\\n\",\n    \"        case[text] = unit\\n\",\n    \"    return case\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"case = get_case_ans(golden_data, predict_data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tokenizer_n = BertTokenizer.from_pretrained(opt.bert_vocab_unk, do_lower_case=True)\\n\",\n    \"tokenizer_o = BertTokenizer.from_pretrained(opt.bert_vocab_dir, do_lower_case=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"wrong_case = []\\n\",\n    \"for k in case.keys():\\n\",\n    \"    c = case[k]\\n\",\n    \"    if len(c['loss']) != 0 or len(c['wrong']) != 0:\\n\",\n    \"        wrong_case.append((k, c))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[('《别让我再见到你》是1999年陈洁仪演唱的一首歌曲，所属专辑是《炫耀》',\\n\",\n       \"  {'right': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '陈洁仪',\\n\",\n       \"     'subject': '别让我再见到你'},\\n\",\n       \"    {'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '炫耀',\\n\",\n       \"     'subject': '别让我再见到你'}],\\n\",\n       \"   'loss': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '陈洁仪',\\n\",\n       \"     'subject': '炫耀'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('长城汽车是长城汽车股份有限公司的简称，长城汽车的前身是长城工业公司，是一家集体所有制企业，成立于1984年，公司总部位于河北省保定市',\\n\",\n       \"  {'right': [{'predicate': '成立日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1984年',\\n\",\n       \"     'subject': '长城汽车'}],\\n\",\n       \"   'loss': [{'predicate': '总部地点',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '保定市',\\n\",\n       \"     'subject': '长城汽车'}],\\n\",\n       \"   'wrong': [{'object': '河北省保定市',\\n\",\n       \"     'subject': '长城汽车',\\n\",\n       \"     'predicate': '总部地点',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《节能省地型住宅和公共建筑标准规范汇编（上下）》是2005年中国建筑工业出版社出版的图书，作者是建设部标准定额研究所',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '出版社',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国建筑工业',\\n\",\n       \"     'subject': '节能省地型住宅和公共建筑标准规范汇编（上下）'},\\n\",\n       \"    {'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '建设部标准定额研',\\n\",\n       \"     'subject': '节能省地型住宅和公共建筑标准规范汇编（上下）'}],\\n\",\n       \"   'wrong': [{'object': '中国建筑工业出版社',\\n\",\n       \"     'subject': '节能省地型住宅和公共建筑标准规范汇编（上下）',\\n\",\n       \"     'predicate': '出版社',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '建设部标准定额研究所',\\n\",\n       \"     'subject': '节能省地型住宅和公共建筑标准规范汇编（上下）',\\n\",\n       \"     'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('弗朗西斯科·布鲁，男，1885-04-12出生在马德里(西班牙)，场上位置教练',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '马德里',\\n\",\n       \"     'subject': '弗朗西斯科·布鲁'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1885-04-12',\\n\",\n       \"     'subject': '弗朗西斯科·布鲁'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '西班牙',\\n\",\n       \"     'subject': '弗朗西斯科·布鲁',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('元朝开国皇帝、皇后厚待南宋末代皇室的故事，和西晋末年刘聪以“青衣侑酒”、“洗爵张盖”侮辱西晋怀、愍二帝形成很大反差',\\n\",\n       \"  {'right': [{'predicate': '朝代',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '西晋',\\n\",\n       \"     'subject': '刘聪'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '南宋',\\n\",\n       \"     'subject': '刘聪',\\n\",\n       \"     'predicate': '朝代',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《妊娠分娩育养》是2009年电脑报电子音像出版社出版的图书，作者是中国早教网专家组',\\n\",\n       \"  {'right': [{'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国早教网专家组',\\n\",\n       \"     'subject': '妊娠分娩育养'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '电脑报电子音像出版社',\\n\",\n       \"     'subject': '妊娠分娩育养',\\n\",\n       \"     'predicate': '出版社',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('覃华军，男，1971年6月出生，壮族，籍贯广西河池，出生地广西河池，1999年7月加入中国共产党，1991年7月参加工作，中央党校在职大学学历',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '广西河池',\\n\",\n       \"     'subject': '覃华军'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1971年6月',\\n\",\n       \"     'subject': '覃华军'},\\n\",\n       \"    {'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '壮族',\\n\",\n       \"     'subject': '覃华军'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '中国',\\n\",\n       \"     'subject': '覃华军',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('邱型柏同志生于1953年12月，河南新县人，汉族，1969年12月参军，1971年12月加入中国共产党',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '河南新县',\\n\",\n       \"     'subject': '邱型柏'},\\n\",\n       \"    {'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国',\\n\",\n       \"     'subject': '邱型柏'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1953年12月',\\n\",\n       \"     'subject': '邱型柏'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '汉族',\\n\",\n       \"     'subject': '邱型柏',\\n\",\n       \"     'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('9气候市中区属中亚热带湿润季风气候区',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '气候',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中亚热带湿润季风气候',\\n\",\n       \"     'subject': '市中区'}],\\n\",\n       \"   'wrong': [{'object': '亚热带湿润季风气候',\\n\",\n       \"     'subject': '市中区',\\n\",\n       \"     'predicate': '气候',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('白尾鸏太平洋亚种是一种鸏属，鸏科，鹈形目动物，主要分布在西太平洋',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '鹈形目',\\n\",\n       \"     'subject': '白尾鸏太平洋亚种'}],\\n\",\n       \"   'wrong': [{'object': '鹈形目',\\n\",\n       \"     'subject': '白尾[UNK]太平洋亚种',\\n\",\n       \"     'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('随后在朱丹，何晟铭主演的《爱的妇产科》里扮演怀孕少女邓晓雨在于正版《神雕侠侣》里扮演绝情谷侍女柔儿真正令菅纫姿成名是跟钟汉良，唐嫣主演电视剧《何以笙箫默》，她在戏里扮演单恋哥哥何以琛的何以玫，凭借精湛的演技，她将何以玫两种不同情绪演绎的淋漓尽致，获得万千网友点赞，而她的人气也急速上升',\\n\",\n       \"  {'right': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '唐嫣',\\n\",\n       \"     'subject': '何以笙箫默'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '钟汉良',\\n\",\n       \"     'subject': '何以笙箫默'}],\\n\",\n       \"   'loss': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '何晟铭',\\n\",\n       \"     'subject': '爱的妇产科'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '朱丹',\\n\",\n       \"     'subject': '爱的妇产科'}],\\n\",\n       \"   'wrong': [{'object': '朱丹',\\n\",\n       \"     'subject': '爱的',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '朱丹',\\n\",\n       \"     'subject': '神雕侠侣',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '朱丹',\\n\",\n       \"     'subject': '何以笙箫默',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '何晟铭',\\n\",\n       \"     'subject': '爱的',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '何晟铭',\\n\",\n       \"     'subject': '何以笙箫默',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '钟汉良',\\n\",\n       \"     'subject': '爱的',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '钟汉良',\\n\",\n       \"     'subject': '神雕侠侣',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '唐嫣',\\n\",\n       \"     'subject': '爱的',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '唐嫣',\\n\",\n       \"     'subject': '神雕侠侣',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《并行端口技术》是2005年国防工业出版社出版的图书，作者是李肇庆、韩涛',\\n\",\n       \"  {'right': [{'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '李肇庆',\\n\",\n       \"     'subject': '并行端口技术'},\\n\",\n       \"    {'predicate': '出版社',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '国防工业出版社',\\n\",\n       \"     'subject': '并行端口技术'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '韩涛',\\n\",\n       \"     'subject': '并行端口技术',\\n\",\n       \"     'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('姓\\\\u3000名：孙屹  性\\\\u3000别：男  民\\\\u3000族：汉族  籍\\\\u3000贯：山东荷泽  出生年月：1883年  牺牲日期：1913年',\\n\",\n       \"  {'right': [{'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '汉族',\\n\",\n       \"     'subject': '孙屹'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '山东荷泽',\\n\",\n       \"     'subject': '孙屹',\\n\",\n       \"     'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '1883年',\\n\",\n       \"     'subject': '孙屹',\\n\",\n       \"     'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('石勒（274年―333年8月17日），字世龙，初名石勹背，小字匐勒，羯族，上党武乡（今山西榆社）人',\\n\",\n       \"  {'right': [{'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '274年',\\n\",\n       \"     'subject': '石勒'},\\n\",\n       \"    {'predicate': '字',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '世龙',\\n\",\n       \"     'subject': '石勒'},\\n\",\n       \"    {'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '羯族',\\n\",\n       \"     'subject': '石勒'},\\n\",\n       \"    {'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '上党武乡',\\n\",\n       \"     'subject': '石勒'}],\\n\",\n       \"   'loss': [{'predicate': '字',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '匐勒',\\n\",\n       \"     'subject': '石勒'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('《人迹和自然》主要收录了赵丽宏1游历祖国山川时的感悟文字',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '赵丽宏',\\n\",\n       \"     'subject': '人迹和自然'}],\\n\",\n       \"   'wrong': [{'object': '赵丽宏',\\n\",\n       \"     'subject': '人迹和自然',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('该剧由Minnie Driver主演，故事发生在一艘前往北冰洋进行考察的深海潜艇（俄耳甫斯号）上',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': 'driver',\\n\",\n       \"     'subject': '深海'}],\\n\",\n       \"   'wrong': [{'object': 'minnie',\\n\",\n       \"     'subject': '俄耳甫斯号',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': 'driver',\\n\",\n       \"     'subject': '俄耳甫斯号',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('创作背景六哲与袁惜君合唱的《一半的一半》，讲述了大都市中人们共同困扰的问题， 快节奏的生活中，两个人在一起，都很想知道自己在对方心里的位置是多少',\\n\",\n       \"  {'right': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '六哲',\\n\",\n       \"     'subject': '一半的一半'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '袁惜君',\\n\",\n       \"     'subject': '一半的一半',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《爱情旅程》是阿沁、陈淑秋作词，阿沁作曲，张韶涵演唱的歌曲，收录在张韶涵2006年发行的专辑《潘朵拉》中',\\n\",\n       \"  {'right': [{'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '潘朵拉',\\n\",\n       \"     'subject': '爱情旅程'},\\n\",\n       \"    {'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '张韶涵',\\n\",\n       \"     'subject': '爱情旅程'},\\n\",\n       \"    {'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '阿沁',\\n\",\n       \"     'subject': '爱情旅程'},\\n\",\n       \"    {'predicate': '作词',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '陈淑秋',\\n\",\n       \"     'subject': '爱情旅程'}],\\n\",\n       \"   'loss': [{'predicate': '作词',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '阿沁',\\n\",\n       \"     'subject': '爱情旅程'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('贝纳蒂亚出生于1987年4月17日，司职中后卫，身高1米89，他出身法国著名的克莱枫丹训练营，2010年7月登陆意甲加盟乌迪内斯，效力3年联赛出场80次打进6球，2013年7月他以1350万欧元的转会费加盟罗马',\\n\",\n       \"  {'right': [{'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1987年4月17日',\\n\",\n       \"     'subject': '贝纳蒂亚'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '1米89',\\n\",\n       \"     'subject': '贝纳蒂亚',\\n\",\n       \"     'predicate': '身高',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《天无极》是天澹星稀创作的网络小说，发表于起点网',\\n\",\n       \"  {'right': [{'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '天澹星稀',\\n\",\n       \"     'subject': '天无极'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '起点网',\\n\",\n       \"     'subject': '天无极',\\n\",\n       \"     'predicate': '连载网站',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('常勇钢，别署赏兰斋主· 1957年生于河北大名中国书法家协会全国第二届草书艺术大展组委会委员中国楹联学会会员河北省美术家协会常务理事',\\n\",\n       \"  {'right': [{'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1957年',\\n\",\n       \"     'subject': '常勇钢'},\\n\",\n       \"    {'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '河北大名',\\n\",\n       \"     'subject': '常勇钢'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '中国',\\n\",\n       \"     'subject': '常勇钢',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" (\\\"兰博基尼 \\\\u3000\\\\u3000兰博基尼是全球顶级跑车制造商及欧洲奢侈品标志之一，公司坐落于意大利圣亚加塔·波隆尼（Sant'Agata Bolognese），由费鲁吉欧·兰博基尼在1963年创立\\\",\\n\",\n       \"  {'right': [{'predicate': '创始人',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '费鲁吉欧·兰博基尼',\\n\",\n       \"     'subject': '兰博基尼'},\\n\",\n       \"    {'predicate': '成立日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1963年',\\n\",\n       \"     'subject': '兰博基尼'}],\\n\",\n       \"   'loss': [{'predicate': '成立日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1963',\\n\",\n       \"     'subject': '兰博基尼'}],\\n\",\n       \"   'wrong': [{'object': '意大利圣亚加塔·',\\n\",\n       \"     'subject': '兰博基尼',\\n\",\n       \"     'predicate': '总部地点',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '意大利圣亚加塔·',\\n\",\n       \"     'subject': '隆尼',\\n\",\n       \"     'predicate': '总部地点',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '隆尼',\\n\",\n       \"     'subject': '兰博基尼',\\n\",\n       \"     'predicate': '总部地点',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('个人简介陆初觉(1890—1945)，名志棠，字松生，号初觉，嘉兴人',\\n\",\n       \"  {'right': [{'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1890',\\n\",\n       \"     'subject': '陆初觉'},\\n\",\n       \"    {'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '嘉兴',\\n\",\n       \"     'subject': '陆初觉'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '松生',\\n\",\n       \"     'subject': '陆初觉',\\n\",\n       \"     'predicate': '字',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('通吃网即原西南食品城网，创立于2009年6月，于2010年3月正式更名为通吃网',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '成立日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '于2009年6月',\\n\",\n       \"     'subject': '通吃网'}],\\n\",\n       \"   'wrong': [{'object': '2009年6月',\\n\",\n       \"     'subject': '通吃网',\\n\",\n       \"     'predicate': '成立日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('2011年8月13日，《变形金刚3》在中国电影市场上映第24天，影片票房突破10亿元关口，成为中国大陆继《阿凡达》之后第二部跨入10亿元俱乐部的进口片',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '上映时间',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '2011年',\\n\",\n       \"     'subject': '变形金刚3'}],\\n\",\n       \"   'wrong': [{'object': '2011年8月13日',\\n\",\n       \"     'subject': '变形金刚3',\\n\",\n       \"     'predicate': '上映时间',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('比如《你潇洒我漂亮》，这首歌的原唱是一位马来西亚歌手成凤，不过成凤没有唱红，是韩宝仪把这首歌在大陆唱的爆红，韩宝仪之后大陆歌星还有20多个翻唱版本',\\n\",\n       \"  {'right': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '成凤',\\n\",\n       \"     'subject': '你潇洒我漂亮'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '韩宝仪',\\n\",\n       \"     'subject': '你潇洒我漂亮',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('王新朝喜，原名王岑静，25岁（2013年），女篮队员，身高达到1.89米，2003年赴日本留学，并于2013年8月加入日本籍1，2013年10月9日，在东亚运动会女篮首日比赛中，日本女篮中锋王新朝喜在首节登场，她不是别人，正是出生于天津的原中国籍选手王岑静',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '天津',\\n\",\n       \"     'subject': '王新朝喜'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '1.89米',\\n\",\n       \"     'subject': '王新朝喜',\\n\",\n       \"     'predicate': '身高',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '1.89米',\\n\",\n       \"     'subject': '王岑静',\\n\",\n       \"     'predicate': '身高',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '天津',\\n\",\n       \"     'subject': '王岑静',\\n\",\n       \"     'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '中国',\\n\",\n       \"     'subject': '王新朝喜',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '中国',\\n\",\n       \"     'subject': '王岑静',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('影片《一个购物狂的自白》由P·J·霍根执导影片，根据英国畅销书作家索菲·金塞拉的“购物狂”系列改编而成',\\n\",\n       \"  {'right': [{'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': 'p·j·霍根',\\n\",\n       \"     'subject': '一个购物狂的自白'}],\\n\",\n       \"   'loss': [{'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '英国',\\n\",\n       \"     'subject': '金塞拉'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('Justin Zhou，中文名周城宇，国际珠宝鉴定师，FANCYCD大中华区总经理、品牌合伙人，毕业于英国顶尖大学--伦敦大学政治经济商学院',\\n\",\n       \"  {'right': [{'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '伦敦大学',\\n\",\n       \"     'subject': '周城宇'}],\\n\",\n       \"   'loss': [{'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '伦敦大学',\\n\",\n       \"     'subject': 'justin zhou'}],\\n\",\n       \"   'wrong': [{'object': '伦敦大学',\\n\",\n       \"     'subject': 'justin ',\\n\",\n       \"     'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '伦敦大学',\\n\",\n       \"     'subject': 'ou',\\n\",\n       \"     'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('灵希，真名全颖，生日：1月29日，水瓶座，血型：A型，厦门大学经济学学士，上海，从事财务会计工作，2006年开始从事小说创作，写作风格多变，自2010年开始全面创作转型，青春文以《伊甸园》为代表，武侠言情以《绯雨倾城》为代表，民国文以民国军阀三部曲，《倾城之恋》、《玉簟秋》、《芙蓉锦》为代表',\\n\",\n       \"  {'right': [{'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '厦门大学',\\n\",\n       \"     'subject': '灵希'}],\\n\",\n       \"   'loss': [{'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '灵希',\\n\",\n       \"     'subject': '玉簟秋'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1月29日',\\n\",\n       \"     'subject': '灵希'},\\n\",\n       \"    {'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '灵希',\\n\",\n       \"     'subject': '绯雨倾城'}],\\n\",\n       \"   'wrong': [{'object': '灵希',\\n\",\n       \"     'subject': '绯',\\n\",\n       \"     'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '月29日',\\n\",\n       \"     'subject': '灵希',\\n\",\n       \"     'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('李海，男，1983年毕业于北京航空学院制造工程系航空制造工程专业，获工学学士学位，2002年毕业于中欧国际工商学院，获工商管理硕士学位',\\n\",\n       \"  {'right': [{'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '北京航空学院',\\n\",\n       \"     'subject': '李海'}],\\n\",\n       \"   'loss': [{'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中欧国际工商学院',\\n\",\n       \"     'subject': '李海'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('《北平无战事》改编自刘和平同名小说，该剧由孔笙、李雪导演，刘和平编剧，刘烨、陈宝国等人主演',\\n\",\n       \"  {'right': [{'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '李雪',\\n\",\n       \"     'subject': '北平无战事'},\\n\",\n       \"    {'predicate': '编剧',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '刘和平',\\n\",\n       \"     'subject': '北平无战事'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '刘烨',\\n\",\n       \"     'subject': '北平无战事'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '陈宝国',\\n\",\n       \"     'subject': '北平无战事'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '孔笙',\\n\",\n       \"     'subject': '北平无战事',\\n\",\n       \"     'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('武汉中人检测技术有限公司是2013年成立的一家环境检测公司，公司位于湖北武汉市彭刘杨路天合大厦6楼',\\n\",\n       \"  {'right': [{'predicate': '成立日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '2013年',\\n\",\n       \"     'subject': '武汉中人检测技术有限公司'}],\\n\",\n       \"   'loss': [{'predicate': '总部地点',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '武汉',\\n\",\n       \"     'subject': '武汉中人检测技术有限公司'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('人物生平黄松(1887～1982年)，女，字渔仙，闺名安治，婚后从夫姓黎，署名黎黄松，晚年自号温陵老人，泉州东街元妙观口人，清光绪十三年(1887年)九月生',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1887年',\\n\",\n       \"     'subject': '黄松'}],\\n\",\n       \"   'wrong': [{'object': '1887',\\n\",\n       \"     'subject': '黄松',\\n\",\n       \"     'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '温陵老人',\\n\",\n       \"     'subject': '黄松',\\n\",\n       \"     'predicate': '号',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '泉',\\n\",\n       \"     'subject': '黄松',\\n\",\n       \"     'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '1887',\\n\",\n       \"     'subject': '黄松',\\n\",\n       \"     'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('丁业现，男，汉族，1960年10月生，山东阳谷人，1990年8月加入中国共产党，1978年1月参加工作，博士研究生学历，高级工程师',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '山东阳谷',\\n\",\n       \"     'subject': '丁业现'},\\n\",\n       \"    {'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '汉族',\\n\",\n       \"     'subject': '丁业现'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1960年10月',\\n\",\n       \"     'subject': '丁业现'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '中国',\\n\",\n       \"     'subject': '丁业现',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('裂唇鱼（Labroides dimidiatus）又称医生鱼，飘飘，为鲈形目，隆头鱼科，裂唇鱼属一种热带地区近岸珊瑚礁海域生活的鱼类',\\n\",\n       \"  {'right': [{'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '鲈形目',\\n\",\n       \"     'subject': '裂唇鱼'}],\\n\",\n       \"   'loss': [{'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '鲈形目',\\n\",\n       \"     'subject': '飘飘'}],\\n\",\n       \"   'wrong': [{'object': '鲈形目',\\n\",\n       \"     'subject': '鱼',\\n\",\n       \"     'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('李湘肥的流油，肚子圆鼓鼓王诗龄要当姐姐了吗，胖成俩个郑爽了',\\n\",\n       \"  {'right': [{'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '李湘',\\n\",\n       \"     'subject': '王诗龄'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '李湘',\\n\",\n       \"     'subject': '爽',\\n\",\n       \"     'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '王诗龄',\\n\",\n       \"     'subject': '爽',\\n\",\n       \"     'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '爽',\\n\",\n       \"     'subject': '王诗龄',\\n\",\n       \"     'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('姓  名：邓清  性  别：女民  族：汉族籍  贯：河北大城出生年月：1920年',\\n\",\n       \"  {'right': [{'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1920年',\\n\",\n       \"     'subject': '邓清'},\\n\",\n       \"    {'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '汉族',\\n\",\n       \"     'subject': '邓清'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '河北',\\n\",\n       \"     'subject': '邓清',\\n\",\n       \"     'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '城',\\n\",\n       \"     'subject': '邓清',\\n\",\n       \"     'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('2003年作品赴法国参加“中法文化交流：锦绣江苏——中国工艺美术精品展”，同年在扬州成功举办“方学斌金属工艺展”，',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国',\\n\",\n       \"     'subject': '方学斌'}],\\n\",\n       \"   'wrong': [{'object': '国',\\n\",\n       \"     'subject': '方学斌',\\n\",\n       \"     'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('赖启卓：英文名Lai Kai Cheuk，中国人，汉族，出生于1977年7月5日中国香港，身高183CM，体重70KG',\\n\",\n       \"  {'right': [{'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国',\\n\",\n       \"     'subject': '赖启卓'},\\n\",\n       \"    {'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国香港',\\n\",\n       \"     'subject': '赖启卓'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1977年7月5日',\\n\",\n       \"     'subject': '赖启卓'},\\n\",\n       \"    {'predicate': '身高',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '183cm',\\n\",\n       \"     'subject': '赖启卓'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '汉族',\\n\",\n       \"     'subject': '赖启卓',\\n\",\n       \"     'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《新鲁冰花》是由陈坤厚执导，陈至恺、周幼婷与吴浚恺主演的剧情电影',\\n\",\n       \"  {'right': [{'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '陈坤厚',\\n\",\n       \"     'subject': '新鲁冰花'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '陈至恺',\\n\",\n       \"     'subject': '新鲁冰花',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '周幼婷',\\n\",\n       \"     'subject': '新鲁冰花',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '吴浚恺',\\n\",\n       \"     'subject': '新鲁冰花',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('履历杨栋，男，汉族，1972年5月出生，甘肃临洮人， 1995年7月参加工作，党员，1993年10月加入中国共产党，学历本科，现任珠海市斗门区国家税务局党组成员、纪检组长',\\n\",\n       \"  {'right': [{'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1972年5月',\\n\",\n       \"     'subject': '杨栋'},\\n\",\n       \"    {'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '甘肃临洮',\\n\",\n       \"     'subject': '杨栋'},\\n\",\n       \"    {'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '汉族',\\n\",\n       \"     'subject': '杨栋'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '中',\\n\",\n       \"     'subject': '杨栋',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('杨丞琳出演了很多青春偶像剧，如《流星花园》、《暧昧》、《恶魔在身边》、《海派甜心》等等',\\n\",\n       \"  {'right': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '杨丞琳',\\n\",\n       \"     'subject': '恶魔在身边'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '杨丞琳',\\n\",\n       \"     'subject': '流星花园'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '杨丞琳',\\n\",\n       \"     'subject': '暧昧',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '杨丞琳',\\n\",\n       \"     'subject': '海派甜心',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《谁偷了谁的忧伤》是晋江文学城连载的一本小说，作者是玲小旭',\\n\",\n       \"  {'right': [{'predicate': '连载网站',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '晋江文学城',\\n\",\n       \"     'subject': '谁偷了谁的忧伤'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '玲小旭',\\n\",\n       \"     'subject': '谁偷了谁的忧伤',\\n\",\n       \"     'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《你是哪里人》是蒋旭执导的一部爱情喜剧片，由苗皓钧、潘阳、唐文龙、李斯羽、姚笛、张俪等领衔主演，该片于2011年5月27日在中国上映',\\n\",\n       \"  {'right': [{'predicate': '上映时间',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '2011年5月27日',\\n\",\n       \"     'subject': '你是哪里人'},\\n\",\n       \"    {'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '蒋旭',\\n\",\n       \"     'subject': '你是哪里人'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '苗皓钧',\\n\",\n       \"     'subject': '你是哪里人',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '潘阳',\\n\",\n       \"     'subject': '你是哪里人',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '唐文龙',\\n\",\n       \"     'subject': '你是哪里人',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '李斯羽',\\n\",\n       \"     'subject': '你是哪里人',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '姚笛',\\n\",\n       \"     'subject': '你是哪里人',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '张俪',\\n\",\n       \"     'subject': '你是哪里人',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《食物相宜相克2000种》是2006年吉林科技出版社出版的图书，作者是张婷娜',\\n\",\n       \"  {'right': [{'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '张婷娜',\\n\",\n       \"     'subject': '食物相宜相克2000种'}],\\n\",\n       \"   'loss': [{'predicate': '出版社',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '吉林科技',\\n\",\n       \"     'subject': '食物相宜相克2000种'}],\\n\",\n       \"   'wrong': [{'object': '吉林科技出版社',\\n\",\n       \"     'subject': '食物相宜相克2000种',\\n\",\n       \"     'predicate': '出版社',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《不独立宣言》是吴克群的音乐作品，周耀辉作曲，收录在《一个人的Tomorrow》专辑中',\\n\",\n       \"  {'right': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '吴克群',\\n\",\n       \"     'subject': '不独立宣言'},\\n\",\n       \"    {'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '一个人的tomorrow',\\n\",\n       \"     'subject': '不独立宣言'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '周耀辉',\\n\",\n       \"     'subject': '不独立宣言',\\n\",\n       \"     'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('基本信息威塞克斯伯爵，即爱德华王子（Prince Edward, Earl of Wessex，1964年3月10日－ ），全名爱德华·安东尼·理查德·路易斯（Edward Antony Richard Louis），是英国女王伊丽莎白二世的三子',\\n\",\n       \"  {'right': [{'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1964年3月10日',\\n\",\n       \"     'subject': '爱德华王子'},\\n\",\n       \"    {'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '伊丽莎白二世',\\n\",\n       \"     'subject': '爱德华王子'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '1964年3月10日',\\n\",\n       \"     'subject': '威塞克斯',\\n\",\n       \"     'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '英国',\\n\",\n       \"     'subject': '威塞克斯',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '英国',\\n\",\n       \"     'subject': '爱德华王子',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '英国',\\n\",\n       \"     'subject': '伊丽莎白二世',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '伊丽莎白二世',\\n\",\n       \"     'subject': '威塞克斯',\\n\",\n       \"     'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('列显伦生于香港的欧亚混血家庭，父列佐翰(John Litton)，母罗德贞，为罗文锦爵士胞妹',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '香港',\\n\",\n       \"     'subject': '列显伦'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '罗德贞',\\n\",\n       \"     'subject': '列显伦',\\n\",\n       \"     'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('2.帝王业开机帝王业更名为《帝凰业》，已经正式开机了，主演阵容：王儇-章子怡 萧綦-周一围 子澹-黄恺杰（赵雅芝儿子） 宋怀恩-林家川 胡瑶-刘芸 3.今天刷了一遍刘昊然的微博 他真的没有和欧阳娜娜在一起过',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '赵雅芝',\\n\",\n       \"     'subject': '黄恺杰'}],\\n\",\n       \"   'wrong': [{'object': '章子怡',\\n\",\n       \"     'subject': '帝王业',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '黄',\\n\",\n       \"     'subject': '帝王业',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '赵雅芝',\\n\",\n       \"     'subject': '帝王业',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《大开色界》是由林若宁作词，Jerald（陈哲庐）作曲，刘美君、林海峰演唱的一首歌曲，收录于专辑《大开色界》中，发行于2008年04月11日',\\n\",\n       \"  {'right': [{'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': 'jerald',\\n\",\n       \"     'subject': '大开色界'},\\n\",\n       \"    {'predicate': '作词',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '林若宁',\\n\",\n       \"     'subject': '大开色界'},\\n\",\n       \"    {'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '林海峰',\\n\",\n       \"     'subject': '大开色界'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '刘美君',\\n\",\n       \"     'subject': '大开色界',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《玩泥沙》是香港歌手关智斌演唱的粤语歌曲，收录于关智斌2006年的个人音乐专辑《寻找美惠》当中',\\n\",\n       \"  {'right': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '关智斌',\\n\",\n       \"     'subject': '玩泥沙'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '寻找美惠',\\n\",\n       \"     'subject': '玩泥沙',\\n\",\n       \"     'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('赵锦堂，男,汉族,1965年2月6日出生,黑龙江哈尔滨市阿城区人,1990年9月加入中国共产党,1985年8月参加工作,大学学历,现任阿城经济开发区党工委副书记、管委会主任,主持管委会全面工作',\\n\",\n       \"  {'right': [{'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '汉族',\\n\",\n       \"     'subject': '赵锦堂'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1965年2月6日',\\n\",\n       \"     'subject': '赵锦堂'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '黑龙江哈尔滨市阿城区',\\n\",\n       \"     'subject': '赵锦堂',\\n\",\n       \"     'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '中国',\\n\",\n       \"     'subject': '赵锦堂',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《阳光总在风雨后》是陈佳明作词作曲，吴庆隆编曲，许美静演唱的一首歌曲，收录在专辑《都是夜归人》中',\\n\",\n       \"  {'right': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '许美静',\\n\",\n       \"     'subject': '阳光总在风雨后'},\\n\",\n       \"    {'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '都是夜归人',\\n\",\n       \"     'subject': '阳光总在风雨后'},\\n\",\n       \"    {'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '陈佳明',\\n\",\n       \"     'subject': '阳光总在风雨后'}],\\n\",\n       \"   'loss': [{'predicate': '作词',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '陈佳明',\\n\",\n       \"     'subject': '阳光总在风雨后'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('人物简介崔占玲，女，1968 年 出生',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1968',\\n\",\n       \"     'subject': '崔占玲'}],\\n\",\n       \"   'wrong': [{'object': '1968 年',\\n\",\n       \"     'subject': '崔占玲',\\n\",\n       \"     'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('中文名：伊雷什·克姆博·埃科科外文名：Ekoko国籍：民主刚果出生地：金沙萨出生日期：1988-01-08身高：178厘米体重：75公斤运动项目：足球所属运动队：雷恩足球俱乐部惯用脚：右脚',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '金沙萨',\\n\",\n       \"     'subject': '埃科科'},\\n\",\n       \"    {'predicate': '身高',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '178厘米',\\n\",\n       \"     'subject': '埃科科'},\\n\",\n       \"    {'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '民主刚果',\\n\",\n       \"     'subject': '埃科科'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1988-01-08',\\n\",\n       \"     'subject': '埃科科'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '民主刚果',\\n\",\n       \"     'subject': '博·',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '金沙萨',\\n\",\n       \"     'subject': '博·',\\n\",\n       \"     'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '1988-01-08',\\n\",\n       \"     'subject': '博·',\\n\",\n       \"     'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '178厘米',\\n\",\n       \"     'subject': '博·',\\n\",\n       \"     'predicate': '身高',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('（《鲁迅致许广平》）天热不能做事，打牌消遣',\\n\",\n       \"  {'right': [{'predicate': '丈夫',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '鲁迅',\\n\",\n       \"     'subject': '许广平'},\\n\",\n       \"    {'predicate': '妻子',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '许广平',\\n\",\n       \"     'subject': '鲁迅'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '鲁迅',\\n\",\n       \"     'subject': '致',\\n\",\n       \"     'predicate': '丈夫',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '许广平',\\n\",\n       \"     'subject': '致',\\n\",\n       \"     'predicate': '妻子',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《蓝鸿文自选集》是2007年中国人民大学出版社出版的图书，作者是蓝鸿文',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '蓝鸿文',\\n\",\n       \"     'subject': '蓝鸿文自选集'},\\n\",\n       \"    {'predicate': '出版社',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国人民大学',\\n\",\n       \"     'subject': '蓝鸿文自选集'}],\\n\",\n       \"   'wrong': [{'object': '中国人民大学出版社',\\n\",\n       \"     'subject': '蓝鸿文自选集',\\n\",\n       \"     'predicate': '出版社',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《咱们穿越吧》十位固定成员是沈腾、宋小宝、黄小蕾、海陆、于小彤、金圣柱、张涵予、杨旭文（第一季）、张卫健、杨千嬅（第二季）',\\n\",\n       \"  {'right': [{'predicate': '嘉宾',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '于小彤',\\n\",\n       \"     'subject': '咱们穿越吧'},\\n\",\n       \"    {'predicate': '嘉宾',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '张涵予',\\n\",\n       \"     'subject': '咱们穿越吧'},\\n\",\n       \"    {'predicate': '嘉宾',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '杨旭文',\\n\",\n       \"     'subject': '咱们穿越吧'},\\n\",\n       \"    {'predicate': '嘉宾',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '黄小蕾',\\n\",\n       \"     'subject': '咱们穿越吧'},\\n\",\n       \"    {'predicate': '嘉宾',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '宋小宝',\\n\",\n       \"     'subject': '咱们穿越吧'},\\n\",\n       \"    {'predicate': '嘉宾',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '金圣柱',\\n\",\n       \"     'subject': '咱们穿越吧'},\\n\",\n       \"    {'predicate': '嘉宾',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '海陆',\\n\",\n       \"     'subject': '咱们穿越吧'},\\n\",\n       \"    {'predicate': '嘉宾',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '沈腾',\\n\",\n       \"     'subject': '咱们穿越吧'},\\n\",\n       \"    {'predicate': '嘉宾',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '张卫健',\\n\",\n       \"     'subject': '咱们穿越吧'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '杨千嬅',\\n\",\n       \"     'subject': '咱们穿越吧',\\n\",\n       \"     'predicate': '嘉宾',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《上海滩》是刘德华的音乐作品，黄沾作曲，收录在《【歌单】酷我热门单曲合辑》专辑中',\\n\",\n       \"  {'right': [{'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '黄沾',\\n\",\n       \"     'subject': '上海滩'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '刘德华',\\n\",\n       \"     'subject': '上海滩',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '【歌单】酷我热门单曲合辑',\\n\",\n       \"     'subject': '上海滩',\\n\",\n       \"     'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('孙雪兵，男，汉族，1985年3月出生，黑龙江大庆市人，中共党员，2008年7月毕业于广西工学院，本科学历，助理工程师',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '黑龙江大庆市',\\n\",\n       \"     'subject': '孙雪兵'},\\n\",\n       \"    {'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '汉族',\\n\",\n       \"     'subject': '孙雪兵'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1985年3月',\\n\",\n       \"     'subject': '孙雪兵'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '广西工学院',\\n\",\n       \"     'subject': '孙雪兵',\\n\",\n       \"     'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《余兴节目》是首由张宇作曲演唱，邬裕康作词的歌曲，收录于专辑《不甘寂寞》',\\n\",\n       \"  {'right': [{'predicate': '作词',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '邬裕康',\\n\",\n       \"     'subject': '余兴节目'},\\n\",\n       \"    {'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '不甘寂寞',\\n\",\n       \"     'subject': '余兴节目'}],\\n\",\n       \"   'loss': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '张宇',\\n\",\n       \"     'subject': '余兴节目'}],\\n\",\n       \"   'wrong': [{'object': '张宇',\\n\",\n       \"     'subject': '余兴节目',\\n\",\n       \"     'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('个人信息李林教授（1954- ），男，出生于江西萍乡，文学硕士',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '江西萍乡',\\n\",\n       \"     'subject': '李林'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '1954',\\n\",\n       \"     'subject': '李林',\\n\",\n       \"     'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('九肚鱼（Harpodon nehereus ），学名龙头鱼，属硬骨鱼纲、灯笼鱼目、狗母鱼科、龙头鱼属',\\n\",\n       \"  {'right': [{'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '灯笼鱼目',\\n\",\n       \"     'subject': '九肚鱼'}],\\n\",\n       \"   'loss': [{'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '灯笼鱼目',\\n\",\n       \"     'subject': '龙头鱼'}],\\n\",\n       \"   'wrong': [{'object': '灯笼鱼目',\\n\",\n       \"     'subject': '狗母鱼',\\n\",\n       \"     'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《时候尚早》出自蓝奕邦的专辑《蓝》中的一首歌，发行于2008年7月30日',\\n\",\n       \"  {'right': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '蓝奕邦',\\n\",\n       \"     'subject': '时候尚早'}],\\n\",\n       \"   'loss': [{'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '蓝奕邦',\\n\",\n       \"     'subject': '时候尚早'},\\n\",\n       \"    {'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '《蓝》',\\n\",\n       \"     'subject': '时候尚早'}],\\n\",\n       \"   'wrong': [{'object': '蓝',\\n\",\n       \"     'subject': '时候尚早',\\n\",\n       \"     'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('彭佳慧《鹿港小镇》（原唱：罗大佑）这首歌应该算是罗大佑最早的、最深刻的政治歌曲之一',\\n\",\n       \"  {'right': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '罗大佑',\\n\",\n       \"     'subject': '鹿港小镇'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '彭佳慧',\\n\",\n       \"     'subject': '鹿港小镇',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《王晓明心情童话绘本·爱忘事的熊爷爷》是著名童书画家兼作家王晓明先生的作品精选集，收入《蛤蟆的香格里拉》《胖萝卜生病》《河马喝咖啡》《魔法糖》《虎斑馒头》《雪夜蜗牛》《爱忘事的熊爷爷》等作品',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '王晓明',\\n\",\n       \"     'subject': '王晓明心情童话绘本·爱忘事的熊爷爷'}],\\n\",\n       \"   'wrong': [{'object': '王晓明',\\n\",\n       \"     'subject': '爱忘事的熊爷爷',\\n\",\n       \"     'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('司马昭的哥哥是司马师，是司马家族的长子，一母同胞的兄弟，司马懿有九个儿子，唯独司马师和司马昭能力出众，司马懿是三国时期著名的政治家与军事家，历经曹家几代帝王，司马懿才能出众，又非常谨慎，曹操觉得这是个人才，召见时发现司马懿有“鹰眼狼顾”之像，为此非常顾忌他，但司马懿与曹丕交好，曹丕常为他说话，司马懿从此做事更加勤勉谨慎，曹操才放下心来，这两个儿子性情非常随司马懿，尤其的有大略，善隐忍，但小儿子司马昭还是不够沉稳，司马懿最喜欢的就是大儿子司马师',\\n\",\n       \"  {'right': [{'predicate': '朝代',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '三国',\\n\",\n       \"     'subject': '司马昭'}],\\n\",\n       \"   'loss': [{'predicate': '父亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '司马懿',\\n\",\n       \"     'subject': '司马昭'},\\n\",\n       \"    {'predicate': '朝代',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '三国',\\n\",\n       \"     'subject': '曹丕'}],\\n\",\n       \"   'wrong': [{'object': '三国',\\n\",\n       \"     'subject': '司马师',\\n\",\n       \"     'predicate': '朝代',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '三国',\\n\",\n       \"     'subject': '司马懿',\\n\",\n       \"     'predicate': '朝代',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('张韶涵从《寓言》到天《欧若拉》，再到《潘朵拉》，张韶涵在亚洲歌坛独树一帜地开创出属于自己的音乐风格，她具有清亮且童真的声音、甜美且个性的外形，而在她的身上则有一种和她声音共同的特质：顽强、富有张力，充满执着',\\n\",\n       \"  {'right': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '张韶涵',\\n\",\n       \"     'subject': '寓言'},\\n\",\n       \"    {'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '张韶涵',\\n\",\n       \"     'subject': '欧若拉'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '张韶涵',\\n\",\n       \"     'subject': '潘朵拉',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《添丁发财》是2009年梁来玲、林美娜、罗温温执导电视剧，由朱厚任主演',\\n\",\n       \"  {'right': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '朱厚任',\\n\",\n       \"     'subject': '添丁发财'},\\n\",\n       \"    {'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '梁来玲',\\n\",\n       \"     'subject': '添丁发财'},\\n\",\n       \"    {'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '林美娜',\\n\",\n       \"     'subject': '添丁发财'},\\n\",\n       \"    {'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '罗温温',\\n\",\n       \"     'subject': '添丁发财'}],\\n\",\n       \"   'loss': [{'predicate': '上映时间',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '2009年',\\n\",\n       \"     'subject': '添丁发财'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('五度在除夕登上央视春晚的周杰伦，今年他化身魔术师表演热曲《告白气球》，唱完变成泰迪熊消失在舞台上，获得网友一致好评，收视率近期出炉，根据媒体报导，周董表演的桥段在当晚央视春晚的网络收视中拿下收视冠军，超过王菲和那英合体演唱',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '周杰伦',\\n\",\n       \"     'subject': '告白气球'}],\\n\",\n       \"   'wrong': [{'object': '周杰伦',\\n\",\n       \"     'subject': '告白气球',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('最强大的佛法——一切皆空：电视剧中康熙皇帝的父亲顺治皇帝由于爱妃离世，悲痛欲绝，转修佛法',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '父亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '顺治',\\n\",\n       \"     'subject': '康熙皇帝'}],\\n\",\n       \"   'wrong': [{'object': '顺治皇帝',\\n\",\n       \"     'subject': '康熙皇帝',\\n\",\n       \"     'predicate': '父亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('我们都很羡慕她和老公这么幸福，两个宝贝也这么漂亮第三位：赵千紫赵千紫，毕业于解放军艺术学院表演系，中国内地女演员',\\n\",\n       \"  {'right': [{'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '解放军艺术学院',\\n\",\n       \"     'subject': '赵千紫'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '中国',\\n\",\n       \"     'subject': '赵千紫',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《白白的》是张韶涵的音乐作品，李焯雄作曲，收录在《第5季》专辑中',\\n\",\n       \"  {'right': [{'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '第5季',\\n\",\n       \"     'subject': '白白的'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '张韶涵',\\n\",\n       \"     'subject': '白白的',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '李焯雄',\\n\",\n       \"     'subject': '白白的',\\n\",\n       \"     'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('而之后她也拍摄过很多的作品，但是名气也没有钱的大，而且是真正让人印象深刻的，则是在去年年底和张一山和共同出演的《柒个我》，在剧中蔡文静是当之无愧的女一号，也受到了很多的关注，在这部剧的精彩演出中，我们也看到蔡文静，近几年的演技也是非常有进展，虽然说还有些地方被人吐槽傻白甜，但是不得不说，这部翻拍自韩剧的《杀了我，治愈我》的电视剧，让蔡文静走向了新的高度',\\n\",\n       \"  {'right': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '蔡文静',\\n\",\n       \"     'subject': '柒个我'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '张一山',\\n\",\n       \"     'subject': '柒个我'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '蔡文静',\\n\",\n       \"     'subject': '杀了我，治愈我',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '杀了我，治愈我',\\n\",\n       \"     'subject': '柒个我',\\n\",\n       \"     'predicate': '改编自',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《零点出击》是香港电视广播有限公司于1990年出品的25集电视连续剧，主要演员有温兆伦、杨宝玲、谢宁、蔡嘉利、胡美仪、周文桦等',\\n\",\n       \"  {'right': [{'predicate': '出品公司',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '香港电视广播有限公司',\\n\",\n       \"     'subject': '零点出击'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '杨宝玲',\\n\",\n       \"     'subject': '零点出击'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '温兆伦',\\n\",\n       \"     'subject': '零点出击'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '周文桦',\\n\",\n       \"     'subject': '零点出击'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '蔡嘉利',\\n\",\n       \"     'subject': '零点出击'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '谢宁',\\n\",\n       \"     'subject': '零点出击'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '胡美仪',\\n\",\n       \"     'subject': '零点出击'}],\\n\",\n       \"   'loss': [{'predicate': '上映时间',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1990年',\\n\",\n       \"     'subject': '零点出击'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('中国4大新生代男歌手：第一，周杰伦，凭借歌曲《青花瓷》获得第19届金曲奖最佳作曲人奖',\\n\",\n       \"  {'right': [{'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '周杰伦',\\n\",\n       \"     'subject': '青花瓷'}],\\n\",\n       \"   'loss': [{'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '周杰伦',\\n\",\n       \"     'subject': '青花瓷'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('《竺可桢全集第17卷》是2009年出版的图书，作者是竺可桢',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '竺可桢',\\n\",\n       \"     'subject': '竺可桢全集第17卷'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('2.阿甘正传《阿甘正传》是由罗伯特·泽米吉斯执导的电影，由汤姆·汉克斯、罗宾·怀特等人主演，于1994年7月6日在美国上映',\\n\",\n       \"  {'right': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '汤姆·汉克斯',\\n\",\n       \"     'subject': '阿甘正传'},\\n\",\n       \"    {'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '罗伯特·泽米吉斯',\\n\",\n       \"     'subject': '阿甘正传'}],\\n\",\n       \"   'loss': [{'predicate': '上映时间',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1994年',\\n\",\n       \"     'subject': '阿甘正传'}],\\n\",\n       \"   'wrong': [{'object': '罗宾·怀特',\\n\",\n       \"     'subject': '阿甘正传',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '1994年7月6日',\\n\",\n       \"     'subject': '阿甘正传',\\n\",\n       \"     'predicate': '上映时间',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('幕后花絮2004年12月2日至2005年1月20日CCTV-8每晚10点“每日佳艺”年度特别奉献哥伦比亚电视连续剧《隐秘的激情》',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '上映时间',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '2004年',\\n\",\n       \"     'subject': '隐秘的激情'}],\\n\",\n       \"   'wrong': [{'object': '2004年12月2日',\\n\",\n       \"     'subject': '隐秘的激情',\\n\",\n       \"     'predicate': '上映时间',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '哥伦比亚电视',\\n\",\n       \"     'subject': '隐秘的激情',\\n\",\n       \"     'predicate': '出品公司',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《铁翼雄风》，又称《翼》（Wings），是派拉蒙出品的战争爱情电影，由威廉·A·韦尔曼执导，克拉拉·鲍、查尔斯·巴德·罗杰斯等主演，于1927年在美国上映',\\n\",\n       \"  {'right': [{'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '威廉·a·韦尔曼',\\n\",\n       \"     'subject': '铁翼雄风'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '查尔斯·巴德·罗杰斯',\\n\",\n       \"     'subject': '铁翼雄风'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '克拉拉·鲍',\\n\",\n       \"     'subject': '铁翼雄风'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '1927年',\\n\",\n       \"     'subject': '铁翼雄风',\\n\",\n       \"     'predicate': '上映时间',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('多鳞霞蝶鱼（Hemitaurichthys polylepis），又称银斑蝶鱼，俗名霞蝶，为辐鳍鱼纲鲈形目蝴蝶鱼科的其中一种',\\n\",\n       \"  {'right': [{'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '鲈形目',\\n\",\n       \"     'subject': '银斑蝶鱼'},\\n\",\n       \"    {'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '鲈形目',\\n\",\n       \"     'subject': '多鳞霞蝶鱼'}],\\n\",\n       \"   'loss': [{'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '鲈形目',\\n\",\n       \"     'subject': '蝴蝶鱼科'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('同年，朱丹还与华少、左岩、沈涛共同主持了歌唱慈善互动栏目《娱乐星空》第一季之《爱唱才会赢》11',\\n\",\n       \"  {'right': [{'predicate': '主持人',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '朱丹',\\n\",\n       \"     'subject': '爱唱才会赢'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '朱丹',\\n\",\n       \"     'subject': '娱乐星空',\\n\",\n       \"     'predicate': '主持人',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('当晚，古约翰根据加拿大长老会大会的授权，成立了河南省北部的第一个长老会',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '加拿大',\\n\",\n       \"     'subject': '古约翰'}],\\n\",\n       \"   'wrong': [{'object': '拿大',\\n\",\n       \"     'subject': '古约翰',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('提起香港电影《喜剧之王》《少林足球》《功夫》《长江七号》《美人鱼》，就不得不想起了一个名字：周星驰',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '周星驰',\\n\",\n       \"     'subject': '少林足球'}],\\n\",\n       \"   'wrong': [{'object': '周星驰',\\n\",\n       \"     'subject': '喜剧之王',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《东镇女巫》是由乔治·米勒执导的恐怖、奇幻、惊悚、喜剧片，杰克·尼科尔森、苏珊·萨兰登参加演出',\\n\",\n       \"  {'right': [{'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '乔治·米勒',\\n\",\n       \"     'subject': '东镇女巫'},\\n\",\n       \"    {'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '杰克·尼科尔森',\\n\",\n       \"     'subject': '东镇女巫'}],\\n\",\n       \"   'loss': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '苏珊·萨兰登',\\n\",\n       \"     'subject': '东镇女巫'}],\\n\",\n       \"   'wrong': [{'object': '苏珊·',\\n\",\n       \"     'subject': '东镇女巫',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '兰登',\\n\",\n       \"     'subject': '东镇女巫',\\n\",\n       \"     'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('林月如：李忆如自出生失去母亲赵灵儿照料起，由林月如抚养',\\n\",\n       \"  {'right': [{'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '赵灵儿',\\n\",\n       \"     'subject': '李忆如'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '林月如',\\n\",\n       \"     'subject': '李忆如',\\n\",\n       \"     'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '赵灵儿',\\n\",\n       \"     'subject': '林月如',\\n\",\n       \"     'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('小型锐额溞（拉丁名：Alonella exigua），属 枝角目 ，盘肠溞科，甲壳纲动物',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '枝角目',\\n\",\n       \"     'subject': '小型锐额溞'}],\\n\",\n       \"   'wrong': [{'object': '枝角目',\\n\",\n       \"     'subject': '小型锐额[UNK]',\\n\",\n       \"     'predicate': '目',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('美国罗门哈斯公司成立于1909年，总公司位于宾西法尼亚州的费城',\\n\",\n       \"  {'right': [{'predicate': '成立日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1909年',\\n\",\n       \"     'subject': '罗门哈斯'}],\\n\",\n       \"   'loss': [{'predicate': '总部地点',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '宾西法尼亚州的费城',\\n\",\n       \"     'subject': '罗门哈斯'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('刘学勃，男，汉族，1926年生，河北蠡县人，自10岁习武练功，曾拜当地著名拳师张永和为师，北京解放后调入北京工作，又拜著名武术家“花鞭”吴斌楼老师习武练功，习武60余载',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '河北蠡县',\\n\",\n       \"     'subject': '刘学勃'},\\n\",\n       \"    {'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '汉族',\\n\",\n       \"     'subject': '刘学勃'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1926年',\\n\",\n       \"     'subject': '刘学勃'}],\\n\",\n       \"   'loss': [{'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '汉族',\\n\",\n       \"     'subject': '张永和'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('简介王赞(号木瓜子）1959年5月生于江苏扬州，1  年中国美术学院中国画系研究生毕业，获硕士学位',\\n\",\n       \"  {'right': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '江苏扬州',\\n\",\n       \"     'subject': '王赞'},\\n\",\n       \"    {'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国美术学院',\\n\",\n       \"     'subject': '王赞'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1959年5月',\\n\",\n       \"     'subject': '王赞'}],\\n\",\n       \"   'loss': [{'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国',\\n\",\n       \"     'subject': '王赞'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('基本信息歌曲：情丝风缕  歌手 ：杨钰莹  作词：吴颂今  作曲：韩乘光歌曲介绍《情丝几缕》是杨钰莹首张专辑《为爱祝福》里的一首歌',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '韩乘光',\\n\",\n       \"     'subject': '情丝几缕'},\\n\",\n       \"    {'predicate': '作词',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '吴颂今',\\n\",\n       \"     'subject': '情丝几缕'},\\n\",\n       \"    {'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '杨钰莹',\\n\",\n       \"     'subject': '情丝几缕'},\\n\",\n       \"    {'predicate': '所属专辑',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '为爱祝福',\\n\",\n       \"     'subject': '情丝几缕'}],\\n\",\n       \"   'wrong': [{'object': '杨钰莹',\\n\",\n       \"     'subject': '情丝风缕',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '杨钰莹',\\n\",\n       \"     'subject': '为爱祝福',\\n\",\n       \"     'predicate': '歌手',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '吴颂今',\\n\",\n       \"     'subject': '情丝风缕',\\n\",\n       \"     'predicate': '作词',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '吴颂今',\\n\",\n       \"     'subject': '为爱祝福',\\n\",\n       \"     'predicate': '作词',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '韩乘光',\\n\",\n       \"     'subject': '情丝风缕',\\n\",\n       \"     'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '韩乘光',\\n\",\n       \"     'subject': '为爱祝福',\\n\",\n       \"     'predicate': '作曲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('欧志云  1939年1月生，广东中山人，毕业于华南工学院化机专业本科，高级工程师，曾任中国科学院广州能源研究所副处长，现已退休',\\n\",\n       \"  {'right': [{'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '华南工学院',\\n\",\n       \"     'subject': '欧志云'},\\n\",\n       \"    {'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '广东中山',\\n\",\n       \"     'subject': '欧志云'},\\n\",\n       \"    {'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '1939年1月',\\n\",\n       \"     'subject': '欧志云'}],\\n\",\n       \"   'loss': [{'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国',\\n\",\n       \"     'subject': '欧志云'}],\\n\",\n       \"   'wrong': [{'object': '国',\\n\",\n       \"     'subject': '欧志云',\\n\",\n       \"     'predicate': '民族',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('总监制：陈宏 李培森内容介绍《在片场》的创作班底集结了橙天娱乐、央视数字频道及中国教育电视台等业内资深人士，每期内容框定一部电视剧，或一部电影，或一个相关的影视主题，深度揭秘片场风云',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国',\\n\",\n       \"     'subject': '陈宏'},\\n\",\n       \"    {'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '中国',\\n\",\n       \"     'subject': '李培森'},\\n\",\n       \"    {'predicate': '制片人',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '陈宏',\\n\",\n       \"     'subject': '在片场'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('刘恺威带女儿小糯米吃开年饭 未见杨幂同行据香港媒体报道，女星杨幂和刘恺威结婚约四年，夫妇虽长期分隔异地各自吸金，依然不时合体陪女，早前刘丹曾透露杨幂农历新年会回港过节，但连日新春佳节却未见她踪影',\\n\",\n       \"  {'right': [{'predicate': '父亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '刘恺威',\\n\",\n       \"     'subject': '小糯米'},\\n\",\n       \"    {'predicate': '丈夫',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '刘恺威',\\n\",\n       \"     'subject': '杨幂'},\\n\",\n       \"    {'predicate': '妻子',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '杨幂',\\n\",\n       \"     'subject': '刘恺威'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '杨幂',\\n\",\n       \"     'subject': '小糯米',\\n\",\n       \"     'predicate': '母亲',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('吴会期，字行可，号子官，明朝工部郎中',\\n\",\n       \"  {'right': [{'predicate': '号',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '子官',\\n\",\n       \"     'subject': '吴会期'},\\n\",\n       \"    {'predicate': '字',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '行可',\\n\",\n       \"     'subject': '吴会期'}],\\n\",\n       \"   'loss': [{'predicate': '朝代',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '明朝',\\n\",\n       \"     'subject': '吴会期'}],\\n\",\n       \"   'wrong': []}),\\n\",\n       \" ('王洪九(1906—1979），原名王士范，山东省临沂市沙沟崖村人，汉奸，先后就读于山东省立临沂中学、济南军官学校',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '山东省临沂市',\\n\",\n       \"     'subject': '王洪九'},\\n\",\n       \"    {'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '山东省立临沂中学',\\n\",\n       \"     'subject': '王洪九'},\\n\",\n       \"    {'predicate': '毕业院校',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '济南军官学校',\\n\",\n       \"     'subject': '王洪九'}],\\n\",\n       \"   'wrong': [{'object': '1906',\\n\",\n       \"     'subject': '王洪九',\\n\",\n       \"     'predicate': '出生日期',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '山东省临沂市沙沟崖村',\\n\",\n       \"     'subject': '王洪九',\\n\",\n       \"     'predicate': '出生地',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('不过拍《北京爱情故事》之前陈思诚就看过佟丽娅演的戏，他觉得佟丽娅很漂亮，演技不错',\\n\",\n       \"  {'right': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '佟丽娅',\\n\",\n       \"     'subject': '北京爱情故事'}],\\n\",\n       \"   'loss': [],\\n\",\n       \"   'wrong': [{'object': '陈思诚',\\n\",\n       \"     'subject': '北京爱情故事',\\n\",\n       \"     'predicate': '导演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('《苏州商会档案丛编第二辑》是2012年华中师范大学出版社出版的图书，作者是马敏、祖苏、肖芃',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '肖芃',\\n\",\n       \"     'subject': '苏州商会档案丛编'},\\n\",\n       \"    {'predicate': '出版社',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '华中师范大学出版社',\\n\",\n       \"     'subject': '苏州商会档案丛编'},\\n\",\n       \"    {'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '马敏',\\n\",\n       \"     'subject': '苏州商会档案丛编'},\\n\",\n       \"    {'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '祖苏',\\n\",\n       \"     'subject': '苏州商会档案丛编'}],\\n\",\n       \"   'wrong': [{'object': '华中师范大学出版社',\\n\",\n       \"     'subject': '苏州商会档案丛编第二辑',\\n\",\n       \"     'predicate': '出版社',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '马敏',\\n\",\n       \"     'subject': '苏州商会档案丛编第二辑',\\n\",\n       \"     'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '祖苏',\\n\",\n       \"     'subject': '苏州商会档案丛编第二辑',\\n\",\n       \"     'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '肖芃',\\n\",\n       \"     'subject': '苏州商会档案丛编第二辑',\\n\",\n       \"     'predicate': '作者',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]}),\\n\",\n       \" ('耳边放着由日本作曲梅林茂为2001年的电影《阴阳师》创作的神秘古老的音乐，闭眼就是狂言表演家野村万斋饰演的日本平安时代首屈一指的阴阳师安倍晴明（Abe no Seimei ）那副机敏而从容、锐利而洒脱的模样——这是平昌冬奥花样滑冰项目男子单人滑赛场上最绝美的自由滑节目《晴明》（SEI MEI），它也助日本选手羽生结弦（Yuzuru Hanyu）斩获了继索契冬奥金牌之后又一次平昌冬奥花滑男单金牌',\\n\",\n       \"  {'right': [],\\n\",\n       \"   'loss': [{'predicate': '主演',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None,\\n\",\n       \"     'object': '野村万斋',\\n\",\n       \"     'subject': '阴阳师'}],\\n\",\n       \"   'wrong': [{'object': '日本',\\n\",\n       \"     'subject': '梅林茂',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '日本',\\n\",\n       \"     'subject': '倍晴',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None},\\n\",\n       \"    {'object': '日本',\\n\",\n       \"     'subject': '羽生结弦',\\n\",\n       \"     'predicate': '国籍',\\n\",\n       \"     'object_type': None,\\n\",\n       \"     'subject_type': None}]})]\"\n      ]\n     },\n     \"execution_count\": 17,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"wrong_case[-100:]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"text = '《下班抓紧谈恋爱》是万达影视传媒有限公司、上海强胜影视文化传媒有限公司联合出品的的都市情感剧，由万洋执导，朱雨辰、杜海涛、徐黄丽、杨淇等主演1'\\n\",\n    \"text = text.strip().replace(' ', '$')\\n\",\n    \"word_list = tokenizer_n.tokenize(text)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(10, 19)\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"get_positions(word_list, '万达影视传媒有限公司')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['万', '达', '影', '视', '传', '媒', '有', '限', '公', '司']\"\n      ]\n     },\n     \"execution_count\": 20,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"word_list[10:20]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "bert-base-chinese/.ipynb_checkpoints/get_unk_word-checkpoint.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 201,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from config import baidu_data_config\\n\",\n    \"from helpDataBaidu import load_data\\n\",\n    \"from pytorch_pretrained_bert import BertTokenizer\\n\",\n    \"import re\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 202,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"opt = baidu_data_config\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"train_data = load_data(opt.train_data_dir)\\n\",\n    \"dev_data = load_data(opt.dev_data_dir)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 182,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tokenizer = BertTokenizer.from_pretrained('./bert-base-chinese/vocab_new.txt', do_lower_case=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 209,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_unk_origin_char_and_position(word_list, text):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    输入: 茶树茶网蝽，Stephanitis chinensis Drake，属半翅目网蝽科冠网椿属的一种昆虫\\n\",\n    \"    输出:\\n\",\n    \"    {4:'蝽', ...}表示UNK的位置和其对应字符\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    res = {}\\n\",\n    \"    # print(word_list)\\n\",\n    \"    unk_ps = []\\n\",\n    \"    left2word = []\\n\",\n    \"    right2word = []\\n\",\n    \"    leftnum = []\\n\",\n    \"    rightnum = []\\n\",\n    \"    for idx, word in enumerate(word_list):\\n\",\n    \"        if word == '[UNK]':\\n\",\n    \"            unk_ps.append(idx)\\n\",\n    \"            leftword = ''\\n\",\n    \"            if idx >= 2:\\n\",\n    \"                leftword = word_list[idx-2]+word_list[idx-1]\\n\",\n    \"                leftword = leftword.replace('[UNK]','.')\\n\",\n    \"                leftnum.append(2)\\n\",\n    \"            elif idx >= 1:\\n\",\n    \"                leftword = word_list[idx-1]\\n\",\n    \"                leftword = leftword.replace('[UNK]','.')\\n\",\n    \"                leftnum.append(1)\\n\",\n    \"            else:\\n\",\n    \"                leftnum.append(0)\\n\",\n    \"            rightword = ''\\n\",\n    \"            if idx <= len(word_list) - 3:\\n\",\n    \"                rightword = word_list[idx+1] + word_list[idx+2]\\n\",\n    \"                rightword = rightword.replace('[UNK]','.')\\n\",\n    \"                rightnum.append(2)\\n\",\n    \"            elif idx <= len(word_list) - 2:\\n\",\n    \"                rightword = word_list[idx+1]\\n\",\n    \"                rightword = rightword.replace('[UNK]','.')\\n\",\n    \"                rightnum.append(1)\\n\",\n    \"            else:\\n\",\n    \"                rightnum.append(0)\\n\",\n    \"            left2word.append(leftword)\\n\",\n    \"            right2word.append(rightword)\\n\",\n    \"    #print(left2word)\\n\",\n    \"    # print(right2word)\\n\",\n    \"    for idx, p in enumerate(unk_ps):\\n\",\n    \"        # print(left2word[idx]+'.'+right2word[idx])\\n\",\n    \"        try:\\n\",\n    \"            start = re.search(left2word[idx]+'.'+right2word[idx], text.lower(), flags=0).start()\\n\",\n    \"            unk_word = text[start+leftnum[idx]]\\n\",\n    \"            res[start + leftnum[idx]] = unk_word\\n\",\n    \"        except:\\n\",\n    \"            pass\\n\",\n    \"#             print(left2word)\\n\",\n    \"#             print(right2word)\\n\",\n    \"#             print(left2word[idx]+'.'+right2word[idx])\\n\",\n    \"#             print(text.lower())\\n\",\n    \"#             print(word_list)\\n\",\n    \"    return res\\n\",\n    \"        \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "bert-base-chinese/vocab.txt",
    "content": "[PAD]\n[unused1]\n[unused2]\n[unused3]\n[unused4]\n[unused5]\n[unused6]\n[unused7]\n[unused8]\n[unused9]\n[unused10]\n[unused11]\n[unused12]\n[unused13]\n[unused14]\n[unused15]\n[unused16]\n[unused17]\n[unused18]\n[unused19]\n[unused20]\n[unused21]\n[unused22]\n[unused23]\n[unused24]\n[unused25]\n[unused26]\n[unused27]\n[unused28]\n[unused29]\n[unused30]\n[unused31]\n[unused32]\n[unused33]\n[unused34]\n[unused35]\n[unused36]\n[unused37]\n[unused38]\n[unused39]\n[unused40]\n[unused41]\n[unused42]\n[unused43]\n[unused44]\n[unused45]\n[unused46]\n[unused47]\n[unused48]\n[unused49]\n[unused50]\n[unused51]\n[unused52]\n[unused53]\n[unused54]\n[unused55]\n[unused56]\n[unused57]\n[unused58]\n[unused59]\n[unused60]\n[unused61]\n[unused62]\n[unused63]\n[unused64]\n[unused65]\n[unused66]\n[unused67]\n[unused68]\n[unused69]\n[unused70]\n[unused71]\n[unused72]\n[unused73]\n[unused74]\n[unused75]\n[unused76]\n[unused77]\n[unused78]\n[unused79]\n[unused80]\n[unused81]\n[unused82]\n[unused83]\n[unused84]\n[unused85]\n[unused86]\n[unused87]\n[unused88]\n[unused89]\n[unused90]\n[unused91]\n[unused92]\n[unused93]\n[unused94]\n[unused95]\n[unused96]\n[unused97]\n[unused98]\n[unused99]\n[UNK]\n[CLS]\n[SEP]\n[MASK]\n<S>\n<T>\n!\n\"\n#\n$\n%\n&\n'\n(\n)\n*\n+\n,\n-\n.\n/\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n:\n;\n<\n=\n>\n?\n@\n[\n\\\n]\n^\n_\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n{\n|\n}\n~\n£\n¤\n¥\n§\n©\n«\n®\n°\n±\n²\n³\nµ\n·\n¹\nº\n»\n¼\n×\nß\næ\n÷\nø\nđ\nŋ\nɔ\nə\nɡ\nʰ\nˇ\nˈ\nˊ\nˋ\nˍ\nː\n˙\n˚\nˢ\nα\nβ\nγ\nδ\nε\nη\nθ\nι\nκ\nλ\nμ\nν\nο\nπ\nρ\nς\nσ\nτ\nυ\nφ\nχ\nψ\nω\nа\nб\nв\nг\nд\nе\nж\nз\nи\nк\nл\nм\nн\nо\nп\nр\nс\nт\nу\nф\nх\nц\nч\nш\nы\nь\nя\nі\nا\nب\nة\nت\nد\nر\nس\nع\nل\nم\nن\nه\nو\nي\n۩\nก\nง\nน\nม\nย\nร\nอ\nา\nเ\n๑\n་\nღ\nᄀ\nᄁ\nᄂ\nᄃ\nᄅ\nᄆ\nᄇ\nᄈ\nᄉ\nᄋ\nᄌ\nᄎ\nᄏ\nᄐ\nᄑ\nᄒ\nᅡ\nᅢ\nᅣ\nᅥ\nᅦ\nᅧ\nᅨ\nᅩ\nᅪ\nᅬ\nᅭ\nᅮ\nᅯ\nᅲ\nᅳ\nᅴ\nᅵ\nᆨ\nᆫ\nᆯ\nᆷ\nᆸ\nᆺ\nᆻ\nᆼ\nᗜ\nᵃ\nᵉ\nᵍ\nᵏ\nᵐ\nᵒ\nᵘ\n‖\n„\n†\n•\n‥\n‧\n\n‰\n′\n″\n‹\n›\n※\n‿\n⁄\nⁱ\n⁺\nⁿ\n₁\n₂\n₃\n₄\n€\n℃\n№\n™\nⅰ\nⅱ\nⅲ\nⅳ\nⅴ\n←\n↑\n→\n↓\n↔\n↗\n↘\n⇒\n∀\n−\n∕\n∙\n√\n∞\n∟\n∠\n∣\n∥\n∩\n∮\n∶\n∼\n∽\n≈\n≒\n≡\n≤\n≥\n≦\n≧\n≪\n≫\n⊙\n⋅\n⋈\n⋯\n⌒\n①\n②\n③\n④\n⑤\n⑥\n⑦\n⑧\n⑨\n⑩\n⑴\n⑵\n⑶\n⑷\n⑸\n⒈\n⒉\n⒊\n⒋\nⓒ\nⓔ\nⓘ\n─\n━\n│\n┃\n┅\n┆\n┊\n┌\n└\n├\n┣\n═\n║\n╚\n╞\n╠\n╭\n╮\n╯\n╰\n╱\n╳\n▂\n▃\n▅\n▇\n█\n▉\n▋\n▌\n▍\n▎\n■\n□\n▪\n▫\n▬\n▲\n△\n▶\n►\n▼\n▽\n◆\n◇\n○\n◎\n●\n◕\n◠\n◢\n◤\n☀\n★\n☆\n☕\n☞\n☺\n☼\n♀\n♂\n♠\n♡\n♣\n♥\n♦\n♪\n♫\n♬\n✈\n✔\n✕\n✖\n✦\n✨\n✪\n✰\n✿\n❀\n❤\n➜\n➤\n⦿\n、\n。\n〃\n々\n〇\n〈\n〉\n《\n》\n「\n」\n『\n』\n【\n】\n〓\n〔\n〕\n〖\n〗\n〜\n〝\n〞\nぁ\nあ\nぃ\nい\nう\nぇ\nえ\nお\nか\nき\nく\nけ\nこ\nさ\nし\nす\nせ\nそ\nた\nち\nっ\nつ\nて\nと\nな\nに\nぬ\nね\nの\nは\nひ\nふ\nへ\nほ\nま\nみ\nむ\nめ\nも\nゃ\nや\nゅ\nゆ\nょ\nよ\nら\nり\nる\nれ\nろ\nわ\nを\nん\n゜\nゝ\nァ\nア\nィ\nイ\nゥ\nウ\nェ\nエ\nォ\nオ\nカ\nキ\nク\nケ\nコ\nサ\nシ\nス\nセ\nソ\nタ\nチ\nッ\nツ\nテ\nト\nナ\nニ\nヌ\nネ\nノ\nハ\nヒ\nフ\nヘ\nホ\nマ\nミ\nム\nメ\nモ\nャ\nヤ\nュ\nユ\nョ\nヨ\nラ\nリ\nル\nレ\nロ\nワ\nヲ\nン\nヶ\n・\nー\nヽ\nㄅ\nㄆ\nㄇ\nㄉ\nㄋ\nㄌ\nㄍ\nㄎ\nㄏ\nㄒ\nㄚ\nㄛ\nㄞ\nㄟ\nㄢ\nㄤ\nㄥ\nㄧ\nㄨ\nㆍ\n㈦\n㊣\n㎡\n㗎\n一\n丁\n七\n万\n丈\n三\n上\n下\n不\n与\n丐\n丑\n专\n且\n丕\n世\n丘\n丙\n业\n丛\n东\n丝\n丞\n丟\n両\n丢\n两\n严\n並\n丧\n丨\n个\n丫\n中\n丰\n串\n临\n丶\n丸\n丹\n为\n主\n丼\n丽\n举\n丿\n乂\n乃\n久\n么\n义\n之\n乌\n乍\n乎\n乏\n乐\n乒\n乓\n乔\n乖\n乗\n乘\n乙\n乜\n九\n乞\n也\n习\n乡\n书\n乩\n买\n乱\n乳\n乾\n亀\n亂\n了\n予\n争\n事\n二\n于\n亏\n云\n互\n五\n井\n亘\n亙\n亚\n些\n亜\n亞\n亟\n亡\n亢\n交\n亥\n亦\n产\n亨\n亩\n享\n京\n亭\n亮\n亲\n亳\n亵\n人\n亿\n什\n仁\n仃\n仄\n仅\n仆\n仇\n今\n介\n仍\n从\n仏\n仑\n仓\n仔\n仕\n他\n仗\n付\n仙\n仝\n仞\n仟\n代\n令\n以\n仨\n仪\n们\n仮\n仰\n仲\n件\n价\n任\n份\n仿\n企\n伉\n伊\n伍\n伎\n伏\n伐\n休\n伕\n众\n优\n伙\n会\n伝\n伞\n伟\n传\n伢\n伤\n伦\n伪\n伫\n伯\n估\n伴\n伶\n伸\n伺\n似\n伽\n佃\n但\n佇\n佈\n位\n低\n住\n佐\n佑\n体\n佔\n何\n佗\n佘\n余\n佚\n佛\n作\n佝\n佞\n佟\n你\n佢\n佣\n佤\n佥\n佩\n佬\n佯\n佰\n佳\n併\n佶\n佻\n佼\n使\n侃\n侄\n來\n侈\n例\n侍\n侏\n侑\n侖\n侗\n供\n依\n侠\n価\n侣\n侥\n侦\n侧\n侨\n侬\n侮\n侯\n侵\n侶\n侷\n便\n係\n促\n俄\n俊\n俎\n俏\n俐\n俑\n俗\n俘\n俚\n保\n俞\n俟\n俠\n信\n俨\n俩\n俪\n俬\n俭\n修\n俯\n俱\n俳\n俸\n俺\n俾\n倆\n倉\n個\n倌\n倍\n倏\n們\n倒\n倔\n倖\n倘\n候\n倚\n倜\n借\n倡\n値\n倦\n倩\n倪\n倫\n倬\n倭\n倶\n债\n值\n倾\n偃\n假\n偈\n偉\n偌\n偎\n偏\n偕\n做\n停\n健\n側\n偵\n偶\n偷\n偻\n偽\n偿\n傀\n傅\n傍\n傑\n傘\n備\n傚\n傢\n傣\n傥\n储\n傩\n催\n傭\n傲\n傳\n債\n傷\n傻\n傾\n僅\n働\n像\n僑\n僕\n僖\n僚\n僥\n僧\n僭\n僮\n僱\n僵\n價\n僻\n儀\n儂\n億\n儆\n儉\n儋\n儒\n儕\n儘\n償\n儡\n優\n儲\n儷\n儼\n儿\n兀\n允\n元\n兄\n充\n兆\n兇\n先\n光\n克\n兌\n免\n児\n兑\n兒\n兔\n兖\n党\n兜\n兢\n入\n內\n全\n兩\n八\n公\n六\n兮\n兰\n共\n兲\n关\n兴\n兵\n其\n具\n典\n兹\n养\n兼\n兽\n冀\n内\n円\n冇\n冈\n冉\n冊\n册\n再\n冏\n冒\n冕\n冗\n写\n军\n农\n冠\n冢\n冤\n冥\n冨\n冪\n冬\n冯\n冰\n冲\n决\n况\n冶\n冷\n冻\n冼\n冽\n冾\n净\n凄\n准\n凇\n凈\n凉\n凋\n凌\n凍\n减\n凑\n凛\n凜\n凝\n几\n凡\n凤\n処\n凪\n凭\n凯\n凰\n凱\n凳\n凶\n凸\n凹\n出\n击\n函\n凿\n刀\n刁\n刃\n分\n切\n刈\n刊\n刍\n刎\n刑\n划\n列\n刘\n则\n刚\n创\n初\n删\n判\n別\n刨\n利\n刪\n别\n刮\n到\n制\n刷\n券\n刹\n刺\n刻\n刽\n剁\n剂\n剃\n則\n剉\n削\n剋\n剌\n前\n剎\n剐\n剑\n剔\n剖\n剛\n剜\n剝\n剣\n剤\n剥\n剧\n剩\n剪\n副\n割\n創\n剷\n剽\n剿\n劃\n劇\n劈\n劉\n劊\n劍\n劏\n劑\n力\n劝\n办\n功\n加\n务\n劣\n动\n助\n努\n劫\n劭\n励\n劲\n劳\n労\n劵\n効\n劾\n势\n勁\n勃\n勇\n勉\n勋\n勐\n勒\n動\n勖\n勘\n務\n勛\n勝\n勞\n募\n勢\n勤\n勧\n勳\n勵\n勸\n勺\n勻\n勾\n勿\n匀\n包\n匆\n匈\n匍\n匐\n匕\n化\n北\n匙\n匝\n匠\n匡\n匣\n匪\n匮\n匯\n匱\n匹\n区\n医\n匾\n匿\n區\n十\n千\n卅\n升\n午\n卉\n半\n卍\n华\n协\n卑\n卒\n卓\n協\n单\n卖\n南\n単\n博\n卜\n卞\n卟\n占\n卡\n卢\n卤\n卦\n卧\n卫\n卮\n卯\n印\n危\n即\n却\n卵\n卷\n卸\n卻\n卿\n厂\n厄\n厅\n历\n厉\n压\n厌\n厕\n厘\n厚\n厝\n原\n厢\n厥\n厦\n厨\n厩\n厭\n厮\n厲\n厳\n去\n县\n叁\n参\n參\n又\n叉\n及\n友\n双\n反\n収\n发\n叔\n取\n受\n变\n叙\n叛\n叟\n叠\n叡\n叢\n口\n古\n句\n另\n叨\n叩\n只\n叫\n召\n叭\n叮\n可\n台\n叱\n史\n右\n叵\n叶\n号\n司\n叹\n叻\n叼\n叽\n吁\n吃\n各\n吆\n合\n吉\n吊\n吋\n同\n名\n后\n吏\n吐\n向\n吒\n吓\n吕\n吖\n吗\n君\n吝\n吞\n吟\n吠\n吡\n否\n吧\n吨\n吩\n含\n听\n吭\n吮\n启\n吱\n吳\n吴\n吵\n吶\n吸\n吹\n吻\n吼\n吽\n吾\n呀\n呂\n呃\n呆\n呈\n告\n呋\n呎\n呐\n呓\n呕\n呗\n员\n呛\n呜\n呢\n呤\n呦\n周\n呱\n呲\n味\n呵\n呷\n呸\n呻\n呼\n命\n咀\n咁\n咂\n咄\n咆\n咋\n和\n咎\n咏\n咐\n咒\n咔\n咕\n咖\n咗\n咘\n咙\n咚\n咛\n咣\n咤\n咦\n咧\n咨\n咩\n咪\n咫\n咬\n咭\n咯\n咱\n咲\n咳\n咸\n咻\n咽\n咿\n哀\n品\n哂\n哄\n哆\n哇\n哈\n哉\n哋\n哌\n响\n哎\n哏\n哐\n哑\n哒\n哔\n哗\n哟\n員\n哥\n哦\n哧\n哨\n哩\n哪\n哭\n哮\n哲\n哺\n哼\n哽\n唁\n唄\n唆\n唇\n唉\n唏\n唐\n唑\n唔\n唠\n唤\n唧\n唬\n售\n唯\n唰\n唱\n唳\n唷\n唸\n唾\n啃\n啄\n商\n啉\n啊\n問\n啓\n啕\n啖\n啜\n啞\n啟\n啡\n啤\n啥\n啦\n啧\n啪\n啫\n啬\n啮\n啰\n啱\n啲\n啵\n啶\n啷\n啸\n啻\n啼\n啾\n喀\n喂\n喃\n善\n喆\n喇\n喉\n喊\n喋\n喎\n喏\n喔\n喘\n喙\n喚\n喜\n喝\n喟\n喧\n喪\n喫\n喬\n單\n喰\n喱\n喲\n喳\n喵\n営\n喷\n喹\n喺\n喻\n喽\n嗅\n嗆\n嗇\n嗎\n嗑\n嗒\n嗓\n嗔\n嗖\n嗚\n嗜\n嗝\n嗟\n嗡\n嗣\n嗤\n嗦\n嗨\n嗪\n嗬\n嗯\n嗰\n嗲\n嗳\n嗶\n嗷\n嗽\n嘀\n嘅\n嘆\n嘈\n嘉\n嘌\n嘍\n嘎\n嘔\n嘖\n嘗\n嘘\n嘚\n嘛\n嘜\n嘞\n嘟\n嘢\n嘣\n嘤\n嘧\n嘩\n嘭\n嘮\n嘯\n嘰\n嘱\n嘲\n嘴\n嘶\n嘸\n嘹\n嘻\n嘿\n噁\n噌\n噎\n噓\n噔\n噗\n噙\n噜\n噠\n噢\n噤\n器\n噩\n噪\n噬\n噱\n噴\n噶\n噸\n噹\n噻\n噼\n嚀\n嚇\n嚎\n嚏\n嚐\n嚓\n嚕\n嚟\n嚣\n嚥\n嚨\n嚮\n嚴\n嚷\n嚼\n囂\n囉\n囊\n囍\n囑\n囔\n囗\n囚\n四\n囝\n回\n囟\n因\n囡\n团\n団\n囤\n囧\n囪\n囫\n园\n困\n囱\n囲\n図\n围\n囹\n固\n国\n图\n囿\n圃\n圄\n圆\n圈\n國\n圍\n圏\n園\n圓\n圖\n團\n圜\n土\n圣\n圧\n在\n圩\n圭\n地\n圳\n场\n圻\n圾\n址\n坂\n均\n坊\n坍\n坎\n坏\n坐\n坑\n块\n坚\n坛\n坝\n坞\n坟\n坠\n坡\n坤\n坦\n坨\n坪\n坯\n坳\n坵\n坷\n垂\n垃\n垄\n型\n垒\n垚\n垛\n垠\n垢\n垣\n垦\n垩\n垫\n垭\n垮\n垵\n埂\n埃\n埋\n城\n埔\n埕\n埗\n域\n埠\n埤\n埵\n執\n埸\n培\n基\n埼\n堀\n堂\n堃\n堅\n堆\n堇\n堑\n堕\n堙\n堡\n堤\n堪\n堯\n堰\n報\n場\n堵\n堺\n堿\n塊\n塌\n塑\n塔\n塗\n塘\n塚\n塞\n塢\n塩\n填\n塬\n塭\n塵\n塾\n墀\n境\n墅\n墉\n墊\n墒\n墓\n増\n墘\n墙\n墜\n增\n墟\n墨\n墩\n墮\n墳\n墻\n墾\n壁\n壅\n壆\n壇\n壊\n壑\n壓\n壕\n壘\n壞\n壟\n壢\n壤\n壩\n士\n壬\n壮\n壯\n声\n売\n壳\n壶\n壹\n壺\n壽\n处\n备\n変\n复\n夏\n夔\n夕\n外\n夙\n多\n夜\n够\n夠\n夢\n夥\n大\n天\n太\n夫\n夭\n央\n夯\n失\n头\n夷\n夸\n夹\n夺\n夾\n奂\n奄\n奇\n奈\n奉\n奋\n奎\n奏\n奐\n契\n奔\n奕\n奖\n套\n奘\n奚\n奠\n奢\n奥\n奧\n奪\n奬\n奮\n女\n奴\n奶\n奸\n她\n好\n如\n妃\n妄\n妆\n妇\n妈\n妊\n妍\n妒\n妓\n妖\n妘\n妙\n妝\n妞\n妣\n妤\n妥\n妨\n妩\n妪\n妮\n妲\n妳\n妹\n妻\n妾\n姆\n姉\n姊\n始\n姍\n姐\n姑\n姒\n姓\n委\n姗\n姚\n姜\n姝\n姣\n姥\n姦\n姨\n姪\n姫\n姬\n姹\n姻\n姿\n威\n娃\n娄\n娅\n娆\n娇\n娉\n娑\n娓\n娘\n娛\n娜\n娟\n娠\n娣\n娥\n娩\n娱\n娲\n娴\n娶\n娼\n婀\n婁\n婆\n婉\n婊\n婕\n婚\n婢\n婦\n婧\n婪\n婭\n婴\n婵\n婶\n婷\n婺\n婿\n媒\n媚\n媛\n媞\n媧\n媲\n媳\n媽\n媾\n嫁\n嫂\n嫉\n嫌\n嫑\n嫔\n嫖\n嫘\n嫚\n嫡\n嫣\n嫦\n嫩\n嫲\n嫵\n嫻\n嬅\n嬉\n嬌\n嬗\n嬛\n嬢\n嬤\n嬪\n嬰\n嬴\n嬷\n嬸\n嬿\n孀\n孃\n子\n孑\n孔\n孕\n孖\n字\n存\n孙\n孚\n孛\n孜\n孝\n孟\n孢\n季\n孤\n学\n孩\n孪\n孫\n孬\n孰\n孱\n孳\n孵\n學\n孺\n孽\n孿\n宁\n它\n宅\n宇\n守\n安\n宋\n完\n宏\n宓\n宕\n宗\n官\n宙\n定\n宛\n宜\n宝\n实\n実\n宠\n审\n客\n宣\n室\n宥\n宦\n宪\n宫\n宮\n宰\n害\n宴\n宵\n家\n宸\n容\n宽\n宾\n宿\n寂\n寄\n寅\n密\n寇\n富\n寐\n寒\n寓\n寛\n寝\n寞\n察\n寡\n寢\n寥\n實\n寧\n寨\n審\n寫\n寬\n寮\n寰\n寵\n寶\n寸\n对\n寺\n寻\n导\n対\n寿\n封\n専\n射\n将\n將\n專\n尉\n尊\n尋\n對\n導\n小\n少\n尔\n尕\n尖\n尘\n尚\n尝\n尤\n尧\n尬\n就\n尴\n尷\n尸\n尹\n尺\n尻\n尼\n尽\n尾\n尿\n局\n屁\n层\n屄\n居\n屆\n屈\n屉\n届\n屋\n屌\n屍\n屎\n屏\n屐\n屑\n展\n屜\n属\n屠\n屡\n屢\n層\n履\n屬\n屯\n山\n屹\n屿\n岀\n岁\n岂\n岌\n岐\n岑\n岔\n岖\n岗\n岘\n岙\n岚\n岛\n岡\n岩\n岫\n岬\n岭\n岱\n岳\n岷\n岸\n峇\n峋\n峒\n峙\n峡\n峤\n峥\n峦\n峨\n峪\n峭\n峯\n峰\n峴\n島\n峻\n峽\n崁\n崂\n崆\n崇\n崎\n崑\n崔\n崖\n崗\n崙\n崛\n崧\n崩\n崭\n崴\n崽\n嵇\n嵊\n嵋\n嵌\n嵐\n嵘\n嵩\n嵬\n嵯\n嶂\n嶄\n嶇\n嶋\n嶙\n嶺\n嶼\n嶽\n巅\n巍\n巒\n巔\n巖\n川\n州\n巡\n巢\n工\n左\n巧\n巨\n巩\n巫\n差\n己\n已\n巳\n巴\n巷\n巻\n巽\n巾\n巿\n币\n市\n布\n帅\n帆\n师\n希\n帐\n帑\n帕\n帖\n帘\n帚\n帛\n帜\n帝\n帥\n带\n帧\n師\n席\n帮\n帯\n帰\n帳\n帶\n帷\n常\n帼\n帽\n幀\n幂\n幄\n幅\n幌\n幔\n幕\n幟\n幡\n幢\n幣\n幫\n干\n平\n年\n并\n幸\n幹\n幺\n幻\n幼\n幽\n幾\n广\n庁\n広\n庄\n庆\n庇\n床\n序\n庐\n库\n应\n底\n庖\n店\n庙\n庚\n府\n庞\n废\n庠\n度\n座\n庫\n庭\n庵\n庶\n康\n庸\n庹\n庾\n廁\n廂\n廃\n廈\n廉\n廊\n廓\n廖\n廚\n廝\n廟\n廠\n廢\n廣\n廬\n廳\n延\n廷\n建\n廿\n开\n弁\n异\n弃\n弄\n弈\n弊\n弋\n式\n弑\n弒\n弓\n弔\n引\n弗\n弘\n弛\n弟\n张\n弥\n弦\n弧\n弩\n弭\n弯\n弱\n張\n強\n弹\n强\n弼\n弾\n彅\n彆\n彈\n彌\n彎\n归\n当\n录\n彗\n彙\n彝\n形\n彤\n彥\n彦\n彧\n彩\n彪\n彫\n彬\n彭\n彰\n影\n彷\n役\n彻\n彼\n彿\n往\n征\n径\n待\n徇\n很\n徉\n徊\n律\n後\n徐\n徑\n徒\n従\n徕\n得\n徘\n徙\n徜\n從\n徠\n御\n徨\n復\n循\n徬\n微\n徳\n徴\n徵\n德\n徹\n徼\n徽\n心\n必\n忆\n忌\n忍\n忏\n忐\n忑\n忒\n忖\n志\n忘\n忙\n応\n忠\n忡\n忤\n忧\n忪\n快\n忱\n念\n忻\n忽\n忿\n怀\n态\n怂\n怅\n怆\n怎\n怏\n怒\n怔\n怕\n怖\n怙\n怜\n思\n怠\n怡\n急\n怦\n性\n怨\n怪\n怯\n怵\n总\n怼\n恁\n恃\n恆\n恋\n恍\n恐\n恒\n恕\n恙\n恚\n恢\n恣\n恤\n恥\n恨\n恩\n恪\n恫\n恬\n恭\n息\n恰\n恳\n恵\n恶\n恸\n恺\n恻\n恼\n恿\n悄\n悅\n悉\n悌\n悍\n悔\n悖\n悚\n悟\n悠\n患\n悦\n您\n悩\n悪\n悬\n悯\n悱\n悲\n悴\n悵\n悶\n悸\n悻\n悼\n悽\n情\n惆\n惇\n惊\n惋\n惑\n惕\n惘\n惚\n惜\n惟\n惠\n惡\n惦\n惧\n惨\n惩\n惫\n惬\n惭\n惮\n惯\n惰\n惱\n想\n惴\n惶\n惹\n惺\n愁\n愆\n愈\n愉\n愍\n意\n愕\n愚\n愛\n愜\n感\n愣\n愤\n愧\n愫\n愷\n愿\n慄\n慈\n態\n慌\n慎\n慑\n慕\n慘\n慚\n慟\n慢\n慣\n慧\n慨\n慫\n慮\n慰\n慳\n慵\n慶\n慷\n慾\n憂\n憊\n憋\n憎\n憐\n憑\n憔\n憚\n憤\n憧\n憨\n憩\n憫\n憬\n憲\n憶\n憾\n懂\n懇\n懈\n應\n懊\n懋\n懑\n懒\n懦\n懲\n懵\n懶\n懷\n懸\n懺\n懼\n懾\n懿\n戀\n戈\n戊\n戌\n戍\n戎\n戏\n成\n我\n戒\n戕\n或\n战\n戚\n戛\n戟\n戡\n戦\n截\n戬\n戮\n戰\n戲\n戳\n戴\n戶\n户\n戸\n戻\n戾\n房\n所\n扁\n扇\n扈\n扉\n手\n才\n扎\n扑\n扒\n打\n扔\n払\n托\n扛\n扣\n扦\n执\n扩\n扪\n扫\n扬\n扭\n扮\n扯\n扰\n扱\n扳\n扶\n批\n扼\n找\n承\n技\n抄\n抉\n把\n抑\n抒\n抓\n投\n抖\n抗\n折\n抚\n抛\n抜\n択\n抟\n抠\n抡\n抢\n护\n报\n抨\n披\n抬\n抱\n抵\n抹\n押\n抽\n抿\n拂\n拄\n担\n拆\n拇\n拈\n拉\n拋\n拌\n拍\n拎\n拐\n拒\n拓\n拔\n拖\n拗\n拘\n拙\n拚\n招\n拜\n拟\n拡\n拢\n拣\n拥\n拦\n拧\n拨\n择\n括\n拭\n拮\n拯\n拱\n拳\n拴\n拷\n拼\n拽\n拾\n拿\n持\n挂\n指\n挈\n按\n挎\n挑\n挖\n挙\n挚\n挛\n挝\n挞\n挟\n挠\n挡\n挣\n挤\n挥\n挨\n挪\n挫\n振\n挲\n挹\n挺\n挽\n挾\n捂\n捅\n捆\n捉\n捋\n捌\n捍\n捎\n捏\n捐\n捕\n捞\n损\n捡\n换\n捣\n捧\n捨\n捩\n据\n捱\n捲\n捶\n捷\n捺\n捻\n掀\n掂\n掃\n掇\n授\n掉\n掌\n掏\n掐\n排\n掖\n掘\n掙\n掛\n掠\n採\n探\n掣\n接\n控\n推\n掩\n措\n掬\n掰\n掲\n掳\n掴\n掷\n掸\n掺\n揀\n揃\n揄\n揆\n揉\n揍\n描\n提\n插\n揖\n揚\n換\n握\n揣\n揩\n揪\n揭\n揮\n援\n揶\n揸\n揹\n揽\n搀\n搁\n搂\n搅\n損\n搏\n搐\n搓\n搔\n搖\n搗\n搜\n搞\n搡\n搪\n搬\n搭\n搵\n搶\n携\n搽\n摀\n摁\n摄\n摆\n摇\n摈\n摊\n摒\n摔\n摘\n摞\n摟\n摧\n摩\n摯\n摳\n摸\n摹\n摺\n摻\n撂\n撃\n撅\n撇\n撈\n撐\n撑\n撒\n撓\n撕\n撚\n撞\n撤\n撥\n撩\n撫\n撬\n播\n撮\n撰\n撲\n撵\n撷\n撸\n撻\n撼\n撿\n擀\n擁\n擂\n擄\n擅\n擇\n擊\n擋\n操\n擎\n擒\n擔\n擘\n據\n擞\n擠\n擡\n擢\n擦\n擬\n擰\n擱\n擲\n擴\n擷\n擺\n擼\n擾\n攀\n攏\n攒\n攔\n攘\n攙\n攜\n攝\n攞\n攢\n攣\n攤\n攥\n攪\n攫\n攬\n支\n收\n攸\n改\n攻\n放\n政\n故\n效\n敌\n敍\n敎\n敏\n救\n敕\n敖\n敗\n敘\n教\n敛\n敝\n敞\n敢\n散\n敦\n敬\n数\n敲\n整\n敵\n敷\n數\n斂\n斃\n文\n斋\n斌\n斎\n斐\n斑\n斓\n斗\n料\n斛\n斜\n斟\n斡\n斤\n斥\n斧\n斩\n斫\n斬\n断\n斯\n新\n斷\n方\n於\n施\n旁\n旃\n旅\n旋\n旌\n旎\n族\n旖\n旗\n无\n既\n日\n旦\n旧\n旨\n早\n旬\n旭\n旮\n旱\n时\n旷\n旺\n旻\n昀\n昂\n昆\n昇\n昉\n昊\n昌\n明\n昏\n易\n昔\n昕\n昙\n星\n映\n春\n昧\n昨\n昭\n是\n昱\n昴\n昵\n昶\n昼\n显\n晁\n時\n晃\n晉\n晋\n晌\n晏\n晒\n晓\n晔\n晕\n晖\n晗\n晚\n晝\n晞\n晟\n晤\n晦\n晨\n晩\n普\n景\n晰\n晴\n晶\n晷\n智\n晾\n暂\n暄\n暇\n暈\n暉\n暌\n暐\n暑\n暖\n暗\n暝\n暢\n暧\n暨\n暫\n暮\n暱\n暴\n暸\n暹\n曄\n曆\n曇\n曉\n曖\n曙\n曜\n曝\n曠\n曦\n曬\n曰\n曲\n曳\n更\n書\n曹\n曼\n曾\n替\n最\n會\n月\n有\n朋\n服\n朐\n朔\n朕\n朗\n望\n朝\n期\n朦\n朧\n木\n未\n末\n本\n札\n朮\n术\n朱\n朴\n朵\n机\n朽\n杀\n杂\n权\n杆\n杈\n杉\n李\n杏\n材\n村\n杓\n杖\n杜\n杞\n束\n杠\n条\n来\n杨\n杭\n杯\n杰\n東\n杳\n杵\n杷\n杼\n松\n板\n极\n构\n枇\n枉\n枋\n析\n枕\n林\n枚\n果\n枝\n枢\n枣\n枪\n枫\n枭\n枯\n枰\n枱\n枳\n架\n枷\n枸\n柄\n柏\n某\n柑\n柒\n染\n柔\n柘\n柚\n柜\n柞\n柠\n柢\n查\n柩\n柬\n柯\n柱\n柳\n柴\n柵\n査\n柿\n栀\n栃\n栄\n栅\n标\n栈\n栉\n栋\n栎\n栏\n树\n栓\n栖\n栗\n校\n栩\n株\n样\n核\n根\n格\n栽\n栾\n桀\n桁\n桂\n桃\n桅\n框\n案\n桉\n桌\n桎\n桐\n桑\n桓\n桔\n桜\n桠\n桡\n桢\n档\n桥\n桦\n桧\n桨\n桩\n桶\n桿\n梁\n梅\n梆\n梏\n梓\n梗\n條\n梟\n梢\n梦\n梧\n梨\n梭\n梯\n械\n梳\n梵\n梶\n检\n棂\n棄\n棉\n棋\n棍\n棒\n棕\n棗\n棘\n棚\n棟\n棠\n棣\n棧\n森\n棱\n棲\n棵\n棹\n棺\n椁\n椅\n椋\n植\n椎\n椒\n検\n椪\n椭\n椰\n椹\n椽\n椿\n楂\n楊\n楓\n楔\n楚\n楝\n楞\n楠\n楣\n楨\n楫\n業\n楮\n極\n楷\n楸\n楹\n楼\n楽\n概\n榄\n榆\n榈\n榉\n榔\n榕\n榖\n榛\n榜\n榨\n榫\n榭\n榮\n榱\n榴\n榷\n榻\n槁\n槃\n構\n槌\n槍\n槎\n槐\n槓\n様\n槛\n槟\n槤\n槭\n槲\n槳\n槻\n槽\n槿\n樁\n樂\n樊\n樑\n樓\n標\n樞\n樟\n模\n樣\n権\n横\n樫\n樯\n樱\n樵\n樸\n樹\n樺\n樽\n樾\n橄\n橇\n橋\n橐\n橘\n橙\n機\n橡\n橢\n橫\n橱\n橹\n橼\n檀\n檄\n檎\n檐\n檔\n檗\n檜\n檢\n檬\n檯\n檳\n檸\n檻\n櫃\n櫚\n櫛\n櫥\n櫸\n櫻\n欄\n權\n欒\n欖\n欠\n次\n欢\n欣\n欧\n欲\n欸\n欺\n欽\n款\n歆\n歇\n歉\n歌\n歎\n歐\n歓\n歙\n歛\n歡\n止\n正\n此\n步\n武\n歧\n歩\n歪\n歯\n歲\n歳\n歴\n歷\n歸\n歹\n死\n歼\n殁\n殃\n殆\n殇\n殉\n殊\n残\n殒\n殓\n殖\n殘\n殞\n殡\n殤\n殭\n殯\n殲\n殴\n段\n殷\n殺\n殼\n殿\n毀\n毁\n毂\n毅\n毆\n毋\n母\n毎\n每\n毒\n毓\n比\n毕\n毗\n毘\n毙\n毛\n毡\n毫\n毯\n毽\n氈\n氏\n氐\n民\n氓\n气\n氖\n気\n氙\n氛\n氟\n氡\n氢\n氣\n氤\n氦\n氧\n氨\n氪\n氫\n氮\n氯\n氰\n氲\n水\n氷\n永\n氹\n氾\n汀\n汁\n求\n汆\n汇\n汉\n汎\n汐\n汕\n汗\n汙\n汛\n汝\n汞\n江\n池\n污\n汤\n汨\n汩\n汪\n汰\n汲\n汴\n汶\n汹\n決\n汽\n汾\n沁\n沂\n沃\n沅\n沈\n沉\n沌\n沏\n沐\n沒\n沓\n沖\n沙\n沛\n沟\n没\n沢\n沣\n沥\n沦\n沧\n沪\n沫\n沭\n沮\n沱\n河\n沸\n油\n治\n沼\n沽\n沾\n沿\n況\n泄\n泉\n泊\n泌\n泓\n法\n泗\n泛\n泞\n泠\n泡\n波\n泣\n泥\n注\n泪\n泫\n泮\n泯\n泰\n泱\n泳\n泵\n泷\n泸\n泻\n泼\n泽\n泾\n洁\n洄\n洋\n洒\n洗\n洙\n洛\n洞\n津\n洩\n洪\n洮\n洱\n洲\n洵\n洶\n洸\n洹\n活\n洼\n洽\n派\n流\n浃\n浄\n浅\n浆\n浇\n浊\n测\n济\n浏\n浑\n浒\n浓\n浔\n浙\n浚\n浜\n浣\n浦\n浩\n浪\n浬\n浮\n浯\n浴\n海\n浸\n涂\n涅\n涇\n消\n涉\n涌\n涎\n涓\n涔\n涕\n涙\n涛\n涝\n涞\n涟\n涠\n涡\n涣\n涤\n润\n涧\n涨\n涩\n涪\n涮\n涯\n液\n涵\n涸\n涼\n涿\n淀\n淄\n淅\n淆\n淇\n淋\n淌\n淑\n淒\n淖\n淘\n淙\n淚\n淞\n淡\n淤\n淦\n淨\n淩\n淪\n淫\n淬\n淮\n深\n淳\n淵\n混\n淹\n淺\n添\n淼\n清\n済\n渉\n渊\n渋\n渍\n渎\n渐\n渔\n渗\n渙\n渚\n減\n渝\n渠\n渡\n渣\n渤\n渥\n渦\n温\n測\n渭\n港\n渲\n渴\n游\n渺\n渾\n湃\n湄\n湊\n湍\n湖\n湘\n湛\n湟\n湧\n湫\n湮\n湯\n湳\n湾\n湿\n満\n溃\n溅\n溉\n溏\n源\n準\n溜\n溝\n溟\n溢\n溥\n溧\n溪\n溫\n溯\n溱\n溴\n溶\n溺\n溼\n滁\n滂\n滄\n滅\n滇\n滋\n滌\n滑\n滓\n滔\n滕\n滙\n滚\n滝\n滞\n滟\n满\n滢\n滤\n滥\n滦\n滨\n滩\n滬\n滯\n滲\n滴\n滷\n滸\n滾\n滿\n漁\n漂\n漆\n漉\n漏\n漓\n演\n漕\n漠\n漢\n漣\n漩\n漪\n漫\n漬\n漯\n漱\n漲\n漳\n漸\n漾\n漿\n潆\n潇\n潋\n潍\n潑\n潔\n潘\n潛\n潜\n潞\n潟\n潢\n潤\n潦\n潧\n潭\n潮\n潰\n潴\n潸\n潺\n潼\n澀\n澄\n澆\n澈\n澍\n澎\n澗\n澜\n澡\n澤\n澧\n澱\n澳\n澹\n激\n濁\n濂\n濃\n濑\n濒\n濕\n濘\n濛\n濟\n濠\n濡\n濤\n濫\n濬\n濮\n濯\n濱\n濺\n濾\n瀅\n瀆\n瀉\n瀋\n瀏\n瀑\n瀕\n瀘\n瀚\n瀛\n瀝\n瀞\n瀟\n瀧\n瀨\n瀬\n瀰\n瀾\n灌\n灏\n灑\n灘\n灝\n灞\n灣\n火\n灬\n灭\n灯\n灰\n灵\n灶\n灸\n灼\n災\n灾\n灿\n炀\n炁\n炅\n炉\n炊\n炎\n炒\n炔\n炕\n炖\n炙\n炜\n炫\n炬\n炭\n炮\n炯\n炳\n炷\n炸\n点\n為\n炼\n炽\n烁\n烂\n烃\n烈\n烊\n烏\n烘\n烙\n烛\n烟\n烤\n烦\n烧\n烨\n烩\n烫\n烬\n热\n烯\n烷\n烹\n烽\n焉\n焊\n焕\n焖\n焗\n焘\n焙\n焚\n焜\n無\n焦\n焯\n焰\n焱\n然\n焼\n煅\n煉\n煊\n煌\n煎\n煒\n煖\n煙\n煜\n煞\n煤\n煥\n煦\n照\n煨\n煩\n煮\n煲\n煸\n煽\n熄\n熊\n熏\n熒\n熔\n熙\n熟\n熠\n熨\n熬\n熱\n熵\n熹\n熾\n燁\n燃\n燄\n燈\n燉\n燊\n燎\n燒\n燔\n燕\n燙\n燜\n營\n燥\n燦\n燧\n燭\n燮\n燴\n燻\n燼\n燿\n爆\n爍\n爐\n爛\n爪\n爬\n爭\n爰\n爱\n爲\n爵\n父\n爷\n爸\n爹\n爺\n爻\n爽\n爾\n牆\n片\n版\n牌\n牍\n牒\n牙\n牛\n牝\n牟\n牠\n牡\n牢\n牦\n牧\n物\n牯\n牲\n牴\n牵\n特\n牺\n牽\n犀\n犁\n犄\n犊\n犍\n犒\n犢\n犧\n犬\n犯\n状\n犷\n犸\n犹\n狀\n狂\n狄\n狈\n狎\n狐\n狒\n狗\n狙\n狞\n狠\n狡\n狩\n独\n狭\n狮\n狰\n狱\n狸\n狹\n狼\n狽\n猎\n猕\n猖\n猗\n猙\n猛\n猜\n猝\n猥\n猩\n猪\n猫\n猬\n献\n猴\n猶\n猷\n猾\n猿\n獄\n獅\n獎\n獐\n獒\n獗\n獠\n獣\n獨\n獭\n獰\n獲\n獵\n獷\n獸\n獺\n獻\n獼\n獾\n玄\n率\n玉\n王\n玑\n玖\n玛\n玟\n玠\n玥\n玩\n玫\n玮\n环\n现\n玲\n玳\n玷\n玺\n玻\n珀\n珂\n珅\n珈\n珉\n珊\n珍\n珏\n珐\n珑\n珙\n珞\n珠\n珣\n珥\n珩\n珪\n班\n珮\n珲\n珺\n現\n球\n琅\n理\n琇\n琉\n琊\n琍\n琏\n琐\n琛\n琢\n琥\n琦\n琨\n琪\n琬\n琮\n琰\n琲\n琳\n琴\n琵\n琶\n琺\n琼\n瑀\n瑁\n瑄\n瑋\n瑕\n瑗\n瑙\n瑚\n瑛\n瑜\n瑞\n瑟\n瑠\n瑣\n瑤\n瑩\n瑪\n瑯\n瑰\n瑶\n瑾\n璀\n璁\n璃\n璇\n璉\n璋\n璎\n璐\n璜\n璞\n璟\n璧\n璨\n環\n璽\n璿\n瓊\n瓏\n瓒\n瓜\n瓢\n瓣\n瓤\n瓦\n瓮\n瓯\n瓴\n瓶\n瓷\n甄\n甌\n甕\n甘\n甙\n甚\n甜\n生\n產\n産\n甥\n甦\n用\n甩\n甫\n甬\n甭\n甯\n田\n由\n甲\n申\n电\n男\n甸\n町\n画\n甾\n畀\n畅\n界\n畏\n畑\n畔\n留\n畜\n畝\n畢\n略\n畦\n番\n畫\n異\n畲\n畳\n畴\n當\n畸\n畹\n畿\n疆\n疇\n疊\n疏\n疑\n疔\n疖\n疗\n疙\n疚\n疝\n疟\n疡\n疣\n疤\n疥\n疫\n疮\n疯\n疱\n疲\n疳\n疵\n疸\n疹\n疼\n疽\n疾\n痂\n病\n症\n痈\n痉\n痊\n痍\n痒\n痔\n痕\n痘\n痙\n痛\n痞\n痠\n痢\n痣\n痤\n痧\n痨\n痪\n痫\n痰\n痱\n痴\n痹\n痺\n痼\n痿\n瘀\n瘁\n瘋\n瘍\n瘓\n瘘\n瘙\n瘟\n瘠\n瘡\n瘢\n瘤\n瘦\n瘧\n瘩\n瘪\n瘫\n瘴\n瘸\n瘾\n療\n癇\n癌\n癒\n癖\n癜\n癞\n癡\n癢\n癣\n癥\n癫\n癬\n癮\n癱\n癲\n癸\n発\n登\n發\n白\n百\n皂\n的\n皆\n皇\n皈\n皋\n皎\n皑\n皓\n皖\n皙\n皚\n皮\n皰\n皱\n皴\n皺\n皿\n盂\n盃\n盅\n盆\n盈\n益\n盎\n盏\n盐\n监\n盒\n盔\n盖\n盗\n盘\n盛\n盜\n盞\n盟\n盡\n監\n盤\n盥\n盧\n盪\n目\n盯\n盱\n盲\n直\n相\n盹\n盼\n盾\n省\n眈\n眉\n看\n県\n眙\n眞\n真\n眠\n眦\n眨\n眩\n眯\n眶\n眷\n眸\n眺\n眼\n眾\n着\n睁\n睇\n睏\n睐\n睑\n睛\n睜\n睞\n睡\n睢\n督\n睥\n睦\n睨\n睪\n睫\n睬\n睹\n睽\n睾\n睿\n瞄\n瞅\n瞇\n瞋\n瞌\n瞎\n瞑\n瞒\n瞓\n瞞\n瞟\n瞠\n瞥\n瞧\n瞩\n瞪\n瞬\n瞭\n瞰\n瞳\n瞻\n瞼\n瞿\n矇\n矍\n矗\n矚\n矛\n矜\n矢\n矣\n知\n矩\n矫\n短\n矮\n矯\n石\n矶\n矽\n矾\n矿\n码\n砂\n砌\n砍\n砒\n研\n砖\n砗\n砚\n砝\n砣\n砥\n砧\n砭\n砰\n砲\n破\n砷\n砸\n砺\n砼\n砾\n础\n硅\n硐\n硒\n硕\n硝\n硫\n硬\n确\n硯\n硼\n碁\n碇\n碉\n碌\n碍\n碎\n碑\n碓\n碗\n碘\n碚\n碛\n碟\n碣\n碧\n碩\n碰\n碱\n碳\n碴\n確\n碼\n碾\n磁\n磅\n磊\n磋\n磐\n磕\n磚\n磡\n磨\n磬\n磯\n磲\n磷\n磺\n礁\n礎\n礙\n礡\n礦\n礪\n礫\n礴\n示\n礼\n社\n祀\n祁\n祂\n祇\n祈\n祉\n祎\n祐\n祕\n祖\n祗\n祚\n祛\n祜\n祝\n神\n祟\n祠\n祢\n祥\n票\n祭\n祯\n祷\n祸\n祺\n祿\n禀\n禁\n禄\n禅\n禍\n禎\n福\n禛\n禦\n禧\n禪\n禮\n禱\n禹\n禺\n离\n禽\n禾\n禿\n秀\n私\n秃\n秆\n秉\n秋\n种\n科\n秒\n秘\n租\n秣\n秤\n秦\n秧\n秩\n秭\n积\n称\n秸\n移\n秽\n稀\n稅\n程\n稍\n税\n稔\n稗\n稚\n稜\n稞\n稟\n稠\n稣\n種\n稱\n稲\n稳\n稷\n稹\n稻\n稼\n稽\n稿\n穀\n穂\n穆\n穌\n積\n穎\n穗\n穢\n穩\n穫\n穴\n究\n穷\n穹\n空\n穿\n突\n窃\n窄\n窈\n窍\n窑\n窒\n窓\n窕\n窖\n窗\n窘\n窜\n窝\n窟\n窠\n窥\n窦\n窨\n窩\n窪\n窮\n窯\n窺\n窿\n竄\n竅\n竇\n竊\n立\n竖\n站\n竜\n竞\n竟\n章\n竣\n童\n竭\n端\n競\n竹\n竺\n竽\n竿\n笃\n笆\n笈\n笋\n笏\n笑\n笔\n笙\n笛\n笞\n笠\n符\n笨\n第\n笹\n笺\n笼\n筆\n等\n筊\n筋\n筍\n筏\n筐\n筑\n筒\n答\n策\n筛\n筝\n筠\n筱\n筲\n筵\n筷\n筹\n签\n简\n箇\n箋\n箍\n箏\n箐\n箔\n箕\n算\n箝\n管\n箩\n箫\n箭\n箱\n箴\n箸\n節\n篁\n範\n篆\n篇\n築\n篑\n篓\n篙\n篝\n篠\n篡\n篤\n篩\n篪\n篮\n篱\n篷\n簇\n簌\n簍\n簡\n簦\n簧\n簪\n簫\n簷\n簸\n簽\n簾\n簿\n籁\n籃\n籌\n籍\n籐\n籟\n籠\n籤\n籬\n籮\n籲\n米\n类\n籼\n籽\n粄\n粉\n粑\n粒\n粕\n粗\n粘\n粟\n粤\n粥\n粧\n粪\n粮\n粱\n粲\n粳\n粵\n粹\n粼\n粽\n精\n粿\n糅\n糊\n糍\n糕\n糖\n糗\n糙\n糜\n糞\n糟\n糠\n糧\n糬\n糯\n糰\n糸\n系\n糾\n紀\n紂\n約\n紅\n紉\n紊\n紋\n納\n紐\n紓\n純\n紗\n紘\n紙\n級\n紛\n紜\n素\n紡\n索\n紧\n紫\n紮\n累\n細\n紳\n紹\n紺\n終\n絃\n組\n絆\n経\n結\n絕\n絞\n絡\n絢\n給\n絨\n絮\n統\n絲\n絳\n絵\n絶\n絹\n綁\n綏\n綑\n經\n継\n続\n綜\n綠\n綢\n綦\n綫\n綬\n維\n綱\n網\n綴\n綵\n綸\n綺\n綻\n綽\n綾\n綿\n緊\n緋\n総\n緑\n緒\n緘\n線\n緝\n緞\n締\n緣\n編\n緩\n緬\n緯\n練\n緹\n緻\n縁\n縄\n縈\n縛\n縝\n縣\n縫\n縮\n縱\n縴\n縷\n總\n績\n繁\n繃\n繆\n繇\n繋\n織\n繕\n繚\n繞\n繡\n繩\n繪\n繫\n繭\n繳\n繹\n繼\n繽\n纂\n續\n纍\n纏\n纓\n纔\n纖\n纜\n纠\n红\n纣\n纤\n约\n级\n纨\n纪\n纫\n纬\n纭\n纯\n纰\n纱\n纲\n纳\n纵\n纶\n纷\n纸\n纹\n纺\n纽\n纾\n线\n绀\n练\n组\n绅\n细\n织\n终\n绊\n绍\n绎\n经\n绑\n绒\n结\n绔\n绕\n绘\n给\n绚\n绛\n络\n绝\n绞\n统\n绡\n绢\n绣\n绥\n绦\n继\n绩\n绪\n绫\n续\n绮\n绯\n绰\n绳\n维\n绵\n绶\n绷\n绸\n绻\n综\n绽\n绾\n绿\n缀\n缄\n缅\n缆\n缇\n缈\n缉\n缎\n缓\n缔\n缕\n编\n缘\n缙\n缚\n缜\n缝\n缠\n缢\n缤\n缥\n缨\n缩\n缪\n缭\n缮\n缰\n缱\n缴\n缸\n缺\n缽\n罂\n罄\n罌\n罐\n网\n罔\n罕\n罗\n罚\n罡\n罢\n罩\n罪\n置\n罰\n署\n罵\n罷\n罹\n羁\n羅\n羈\n羊\n羌\n美\n羔\n羚\n羞\n羟\n羡\n羣\n群\n羥\n羧\n羨\n義\n羯\n羲\n羸\n羹\n羽\n羿\n翁\n翅\n翊\n翌\n翎\n習\n翔\n翘\n翟\n翠\n翡\n翦\n翩\n翰\n翱\n翳\n翹\n翻\n翼\n耀\n老\n考\n耄\n者\n耆\n耋\n而\n耍\n耐\n耒\n耕\n耗\n耘\n耙\n耦\n耨\n耳\n耶\n耷\n耸\n耻\n耽\n耿\n聂\n聆\n聊\n聋\n职\n聒\n联\n聖\n聘\n聚\n聞\n聪\n聯\n聰\n聲\n聳\n聴\n聶\n職\n聽\n聾\n聿\n肃\n肄\n肅\n肆\n肇\n肉\n肋\n肌\n肏\n肓\n肖\n肘\n肚\n肛\n肝\n肠\n股\n肢\n肤\n肥\n肩\n肪\n肮\n肯\n肱\n育\n肴\n肺\n肽\n肾\n肿\n胀\n胁\n胃\n胄\n胆\n背\n胍\n胎\n胖\n胚\n胛\n胜\n胝\n胞\n胡\n胤\n胥\n胧\n胫\n胭\n胯\n胰\n胱\n胳\n胴\n胶\n胸\n胺\n能\n脂\n脅\n脆\n脇\n脈\n脉\n脊\n脍\n脏\n脐\n脑\n脓\n脖\n脘\n脚\n脛\n脣\n脩\n脫\n脯\n脱\n脲\n脳\n脸\n脹\n脾\n腆\n腈\n腊\n腋\n腌\n腎\n腐\n腑\n腓\n腔\n腕\n腥\n腦\n腩\n腫\n腭\n腮\n腰\n腱\n腳\n腴\n腸\n腹\n腺\n腻\n腼\n腾\n腿\n膀\n膈\n膊\n膏\n膑\n膘\n膚\n膛\n膜\n膝\n膠\n膦\n膨\n膩\n膳\n膺\n膻\n膽\n膾\n膿\n臀\n臂\n臃\n臆\n臉\n臊\n臍\n臓\n臘\n臟\n臣\n臥\n臧\n臨\n自\n臬\n臭\n至\n致\n臺\n臻\n臼\n臾\n舀\n舂\n舅\n舆\n與\n興\n舉\n舊\n舌\n舍\n舎\n舐\n舒\n舔\n舖\n舗\n舛\n舜\n舞\n舟\n航\n舫\n般\n舰\n舱\n舵\n舶\n舷\n舸\n船\n舺\n舾\n艇\n艋\n艘\n艙\n艦\n艮\n良\n艰\n艱\n色\n艳\n艷\n艹\n艺\n艾\n节\n芃\n芈\n芊\n芋\n芍\n芎\n芒\n芙\n芜\n芝\n芡\n芥\n芦\n芩\n芪\n芫\n芬\n芭\n芮\n芯\n花\n芳\n芷\n芸\n芹\n芻\n芽\n芾\n苁\n苄\n苇\n苋\n苍\n苏\n苑\n苒\n苓\n苔\n苕\n苗\n苛\n苜\n苞\n苟\n苡\n苣\n若\n苦\n苫\n苯\n英\n苷\n苹\n苻\n茁\n茂\n范\n茄\n茅\n茉\n茎\n茏\n茗\n茜\n茧\n茨\n茫\n茬\n茭\n茯\n茱\n茲\n茴\n茵\n茶\n茸\n茹\n茼\n荀\n荃\n荆\n草\n荊\n荏\n荐\n荒\n荔\n荖\n荘\n荚\n荞\n荟\n荠\n荡\n荣\n荤\n荥\n荧\n荨\n荪\n荫\n药\n荳\n荷\n荸\n荻\n荼\n荽\n莅\n莆\n莉\n莊\n莎\n莒\n莓\n莖\n莘\n莞\n莠\n莢\n莧\n莪\n莫\n莱\n莲\n莴\n获\n莹\n莺\n莽\n莿\n菀\n菁\n菅\n菇\n菈\n菊\n菌\n菏\n菓\n菖\n菘\n菜\n菟\n菠\n菡\n菩\n華\n菱\n菲\n菸\n菽\n萁\n萃\n萄\n萊\n萋\n萌\n萍\n萎\n萘\n萝\n萤\n营\n萦\n萧\n萨\n萩\n萬\n萱\n萵\n萸\n萼\n落\n葆\n葉\n著\n葚\n葛\n葡\n董\n葦\n葩\n葫\n葬\n葭\n葯\n葱\n葳\n葵\n葷\n葺\n蒂\n蒋\n蒐\n蒔\n蒙\n蒜\n蒞\n蒟\n蒡\n蒨\n蒲\n蒸\n蒹\n蒻\n蒼\n蒿\n蓁\n蓄\n蓆\n蓉\n蓋\n蓑\n蓓\n蓖\n蓝\n蓟\n蓦\n蓬\n蓮\n蓼\n蓿\n蔑\n蔓\n蔔\n蔗\n蔘\n蔚\n蔡\n蔣\n蔥\n蔫\n蔬\n蔭\n蔵\n蔷\n蔺\n蔻\n蔼\n蔽\n蕁\n蕃\n蕈\n蕉\n蕊\n蕎\n蕙\n蕤\n蕨\n蕩\n蕪\n蕭\n蕲\n蕴\n蕻\n蕾\n薄\n薅\n薇\n薈\n薊\n薏\n薑\n薔\n薙\n薛\n薦\n薨\n薩\n薪\n薬\n薯\n薰\n薹\n藉\n藍\n藏\n藐\n藓\n藕\n藜\n藝\n藤\n藥\n藩\n藹\n藻\n藿\n蘆\n蘇\n蘊\n蘋\n蘑\n蘚\n蘭\n蘸\n蘼\n蘿\n虎\n虏\n虐\n虑\n虔\n處\n虚\n虛\n虜\n虞\n號\n虢\n虧\n虫\n虬\n虱\n虹\n虻\n虽\n虾\n蚀\n蚁\n蚂\n蚊\n蚌\n蚓\n蚕\n蚜\n蚝\n蚣\n蚤\n蚩\n蚪\n蚯\n蚱\n蚵\n蛀\n蛆\n蛇\n蛊\n蛋\n蛎\n蛐\n蛔\n蛙\n蛛\n蛟\n蛤\n蛭\n蛮\n蛰\n蛳\n蛹\n蛻\n蛾\n蜀\n蜂\n蜃\n蜆\n蜇\n蜈\n蜊\n蜍\n蜒\n蜓\n蜕\n蜗\n蜘\n蜚\n蜜\n蜡\n蜢\n蜥\n蜱\n蜴\n蜷\n蜻\n蜿\n蝇\n蝈\n蝉\n蝌\n蝎\n蝕\n蝗\n蝙\n蝟\n蝠\n蝦\n蝨\n蝴\n蝶\n蝸\n蝼\n螂\n螃\n融\n螞\n螢\n螨\n螯\n螳\n螺\n蟀\n蟄\n蟆\n蟋\n蟎\n蟑\n蟒\n蟠\n蟬\n蟲\n蟹\n蟻\n蟾\n蠅\n蠍\n蠔\n蠕\n蠛\n蠟\n蠡\n蠢\n蠣\n蠱\n蠶\n蠹\n蠻\n血\n衄\n衅\n衆\n行\n衍\n術\n衔\n街\n衙\n衛\n衝\n衞\n衡\n衢\n衣\n补\n表\n衩\n衫\n衬\n衮\n衰\n衲\n衷\n衹\n衾\n衿\n袁\n袂\n袄\n袅\n袈\n袋\n袍\n袒\n袖\n袜\n袞\n袤\n袪\n被\n袭\n袱\n裁\n裂\n装\n裆\n裊\n裏\n裔\n裕\n裘\n裙\n補\n裝\n裟\n裡\n裤\n裨\n裱\n裳\n裴\n裸\n裹\n製\n裾\n褂\n複\n褐\n褒\n褓\n褔\n褚\n褥\n褪\n褫\n褲\n褶\n褻\n襁\n襄\n襟\n襠\n襪\n襬\n襯\n襲\n西\n要\n覃\n覆\n覇\n見\n規\n覓\n視\n覚\n覦\n覧\n親\n覬\n観\n覷\n覺\n覽\n觀\n见\n观\n规\n觅\n视\n览\n觉\n觊\n觎\n觐\n觑\n角\n觞\n解\n觥\n触\n觸\n言\n訂\n計\n訊\n討\n訓\n訕\n訖\n託\n記\n訛\n訝\n訟\n訣\n訥\n訪\n設\n許\n訳\n訴\n訶\n診\n註\n証\n詆\n詐\n詔\n評\n詛\n詞\n詠\n詡\n詢\n詣\n試\n詩\n詫\n詬\n詭\n詮\n詰\n話\n該\n詳\n詹\n詼\n誅\n誇\n誉\n誌\n認\n誓\n誕\n誘\n語\n誠\n誡\n誣\n誤\n誥\n誦\n誨\n說\n説\n読\n誰\n課\n誹\n誼\n調\n諄\n談\n請\n諏\n諒\n論\n諗\n諜\n諡\n諦\n諧\n諫\n諭\n諮\n諱\n諳\n諷\n諸\n諺\n諾\n謀\n謁\n謂\n謄\n謊\n謎\n謐\n謔\n謗\n謙\n講\n謝\n謠\n謨\n謬\n謹\n謾\n譁\n證\n譎\n譏\n識\n譙\n譚\n譜\n警\n譬\n譯\n議\n譲\n譴\n護\n譽\n讀\n變\n讓\n讚\n讞\n计\n订\n认\n讥\n讧\n讨\n让\n讪\n讫\n训\n议\n讯\n记\n讲\n讳\n讴\n讶\n讷\n许\n讹\n论\n讼\n讽\n设\n访\n诀\n证\n诃\n评\n诅\n识\n诈\n诉\n诊\n诋\n词\n诏\n译\n试\n诗\n诘\n诙\n诚\n诛\n话\n诞\n诟\n诠\n诡\n询\n诣\n诤\n该\n详\n诧\n诩\n诫\n诬\n语\n误\n诰\n诱\n诲\n说\n诵\n诶\n请\n诸\n诺\n读\n诽\n课\n诿\n谀\n谁\n调\n谄\n谅\n谆\n谈\n谊\n谋\n谌\n谍\n谎\n谏\n谐\n谑\n谒\n谓\n谔\n谕\n谗\n谘\n谙\n谚\n谛\n谜\n谟\n谢\n谣\n谤\n谥\n谦\n谧\n谨\n谩\n谪\n谬\n谭\n谯\n谱\n谲\n谴\n谶\n谷\n豁\n豆\n豇\n豈\n豉\n豊\n豌\n豎\n豐\n豔\n豚\n象\n豢\n豪\n豫\n豬\n豹\n豺\n貂\n貅\n貌\n貓\n貔\n貘\n貝\n貞\n負\n財\n貢\n貧\n貨\n販\n貪\n貫\n責\n貯\n貰\n貳\n貴\n貶\n買\n貸\n費\n貼\n貽\n貿\n賀\n賁\n賂\n賃\n賄\n資\n賈\n賊\n賑\n賓\n賜\n賞\n賠\n賡\n賢\n賣\n賤\n賦\n質\n賬\n賭\n賴\n賺\n購\n賽\n贅\n贈\n贊\n贍\n贏\n贓\n贖\n贛\n贝\n贞\n负\n贡\n财\n责\n贤\n败\n账\n货\n质\n贩\n贪\n贫\n贬\n购\n贮\n贯\n贰\n贱\n贲\n贴\n贵\n贷\n贸\n费\n贺\n贻\n贼\n贾\n贿\n赁\n赂\n赃\n资\n赅\n赈\n赊\n赋\n赌\n赎\n赏\n赐\n赓\n赔\n赖\n赘\n赚\n赛\n赝\n赞\n赠\n赡\n赢\n赣\n赤\n赦\n赧\n赫\n赭\n走\n赳\n赴\n赵\n赶\n起\n趁\n超\n越\n趋\n趕\n趙\n趟\n趣\n趨\n足\n趴\n趵\n趸\n趺\n趾\n跃\n跄\n跆\n跋\n跌\n跎\n跑\n跖\n跚\n跛\n距\n跟\n跡\n跤\n跨\n跩\n跪\n路\n跳\n践\n跷\n跹\n跺\n跻\n踉\n踊\n踌\n踏\n踐\n踝\n踞\n踟\n踢\n踩\n踪\n踮\n踱\n踴\n踵\n踹\n蹂\n蹄\n蹇\n蹈\n蹉\n蹊\n蹋\n蹑\n蹒\n蹙\n蹟\n蹣\n蹤\n蹦\n蹩\n蹬\n蹭\n蹲\n蹴\n蹶\n蹺\n蹼\n蹿\n躁\n躇\n躉\n躊\n躋\n躍\n躏\n躪\n身\n躬\n躯\n躲\n躺\n軀\n車\n軋\n軌\n軍\n軒\n軟\n転\n軸\n軼\n軽\n軾\n較\n載\n輒\n輓\n輔\n輕\n輛\n輝\n輟\n輩\n輪\n輯\n輸\n輻\n輾\n輿\n轄\n轅\n轆\n轉\n轍\n轎\n轟\n车\n轧\n轨\n轩\n转\n轭\n轮\n软\n轰\n轲\n轴\n轶\n轻\n轼\n载\n轿\n较\n辄\n辅\n辆\n辇\n辈\n辉\n辊\n辍\n辐\n辑\n输\n辕\n辖\n辗\n辘\n辙\n辛\n辜\n辞\n辟\n辣\n辦\n辨\n辩\n辫\n辭\n辮\n辯\n辰\n辱\n農\n边\n辺\n辻\n込\n辽\n达\n迁\n迂\n迄\n迅\n过\n迈\n迎\n运\n近\n返\n还\n这\n进\n远\n违\n连\n迟\n迢\n迤\n迥\n迦\n迩\n迪\n迫\n迭\n述\n迴\n迷\n迸\n迹\n迺\n追\n退\n送\n适\n逃\n逅\n逆\n选\n逊\n逍\n透\n逐\n递\n途\n逕\n逗\n這\n通\n逛\n逝\n逞\n速\n造\n逢\n連\n逮\n週\n進\n逵\n逶\n逸\n逻\n逼\n逾\n遁\n遂\n遅\n遇\n遊\n運\n遍\n過\n遏\n遐\n遑\n遒\n道\n達\n違\n遗\n遙\n遛\n遜\n遞\n遠\n遢\n遣\n遥\n遨\n適\n遭\n遮\n遲\n遴\n遵\n遶\n遷\n選\n遺\n遼\n遽\n避\n邀\n邁\n邂\n邃\n還\n邇\n邈\n邊\n邋\n邏\n邑\n邓\n邕\n邛\n邝\n邢\n那\n邦\n邨\n邪\n邬\n邮\n邯\n邰\n邱\n邳\n邵\n邸\n邹\n邺\n邻\n郁\n郅\n郊\n郎\n郑\n郜\n郝\n郡\n郢\n郤\n郦\n郧\n部\n郫\n郭\n郴\n郵\n郷\n郸\n都\n鄂\n鄉\n鄒\n鄔\n鄙\n鄞\n鄢\n鄧\n鄭\n鄰\n鄱\n鄲\n鄺\n酉\n酊\n酋\n酌\n配\n酐\n酒\n酗\n酚\n酝\n酢\n酣\n酥\n酩\n酪\n酬\n酮\n酯\n酰\n酱\n酵\n酶\n酷\n酸\n酿\n醃\n醇\n醉\n醋\n醍\n醐\n醒\n醚\n醛\n醜\n醞\n醣\n醪\n醫\n醬\n醮\n醯\n醴\n醺\n釀\n釁\n采\n釉\n释\n釋\n里\n重\n野\n量\n釐\n金\n釗\n釘\n釜\n針\n釣\n釦\n釧\n釵\n鈀\n鈉\n鈍\n鈎\n鈔\n鈕\n鈞\n鈣\n鈦\n鈪\n鈴\n鈺\n鈾\n鉀\n鉄\n鉅\n鉉\n鉑\n鉗\n鉚\n鉛\n鉤\n鉴\n鉻\n銀\n銃\n銅\n銑\n銓\n銖\n銘\n銜\n銬\n銭\n銮\n銳\n銷\n銹\n鋁\n鋅\n鋒\n鋤\n鋪\n鋰\n鋸\n鋼\n錄\n錐\n錘\n錚\n錠\n錢\n錦\n錨\n錫\n錮\n錯\n録\n錳\n錶\n鍊\n鍋\n鍍\n鍛\n鍥\n鍰\n鍵\n鍺\n鍾\n鎂\n鎊\n鎌\n鎏\n鎔\n鎖\n鎗\n鎚\n鎧\n鎬\n鎮\n鎳\n鏈\n鏖\n鏗\n鏘\n鏞\n鏟\n鏡\n鏢\n鏤\n鏽\n鐘\n鐮\n鐲\n鐳\n鐵\n鐸\n鐺\n鑄\n鑊\n鑑\n鑒\n鑣\n鑫\n鑰\n鑲\n鑼\n鑽\n鑾\n鑿\n针\n钉\n钊\n钎\n钏\n钒\n钓\n钗\n钙\n钛\n钜\n钝\n钞\n钟\n钠\n钡\n钢\n钣\n钤\n钥\n钦\n钧\n钨\n钩\n钮\n钯\n钰\n钱\n钳\n钴\n钵\n钺\n钻\n钼\n钾\n钿\n铀\n铁\n铂\n铃\n铄\n铅\n铆\n铉\n铎\n铐\n铛\n铜\n铝\n铠\n铡\n铢\n铣\n铤\n铨\n铩\n铬\n铭\n铮\n铰\n铲\n铵\n银\n铸\n铺\n链\n铿\n销\n锁\n锂\n锄\n锅\n锆\n锈\n锉\n锋\n锌\n锏\n锐\n锑\n错\n锚\n锟\n锡\n锢\n锣\n锤\n锥\n锦\n锭\n键\n锯\n锰\n锲\n锵\n锹\n锺\n锻\n镀\n镁\n镂\n镇\n镉\n镌\n镍\n镐\n镑\n镕\n镖\n镗\n镛\n镜\n镣\n镭\n镯\n镰\n镳\n镶\n長\n长\n門\n閃\n閉\n開\n閎\n閏\n閑\n閒\n間\n閔\n閘\n閡\n関\n閣\n閥\n閨\n閩\n閱\n閲\n閹\n閻\n閾\n闆\n闇\n闊\n闌\n闍\n闔\n闕\n闖\n闘\n關\n闡\n闢\n门\n闪\n闫\n闭\n问\n闯\n闰\n闲\n间\n闵\n闷\n闸\n闹\n闺\n闻\n闽\n闾\n阀\n阁\n阂\n阅\n阆\n阇\n阈\n阉\n阎\n阐\n阑\n阔\n阕\n阖\n阙\n阚\n阜\n队\n阡\n阪\n阮\n阱\n防\n阳\n阴\n阵\n阶\n阻\n阿\n陀\n陂\n附\n际\n陆\n陇\n陈\n陋\n陌\n降\n限\n陕\n陛\n陝\n陞\n陟\n陡\n院\n陣\n除\n陨\n险\n陪\n陰\n陲\n陳\n陵\n陶\n陷\n陸\n険\n陽\n隅\n隆\n隈\n隊\n隋\n隍\n階\n随\n隐\n隔\n隕\n隘\n隙\n際\n障\n隠\n隣\n隧\n隨\n險\n隱\n隴\n隶\n隸\n隻\n隼\n隽\n难\n雀\n雁\n雄\n雅\n集\n雇\n雉\n雋\n雌\n雍\n雎\n雏\n雑\n雒\n雕\n雖\n雙\n雛\n雜\n雞\n離\n難\n雨\n雪\n雯\n雰\n雲\n雳\n零\n雷\n雹\n電\n雾\n需\n霁\n霄\n霆\n震\n霈\n霉\n霊\n霍\n霎\n霏\n霑\n霓\n霖\n霜\n霞\n霧\n霭\n霰\n露\n霸\n霹\n霽\n霾\n靂\n靄\n靈\n青\n靓\n靖\n静\n靚\n靛\n靜\n非\n靠\n靡\n面\n靥\n靦\n革\n靳\n靴\n靶\n靼\n鞅\n鞋\n鞍\n鞏\n鞑\n鞘\n鞠\n鞣\n鞦\n鞭\n韆\n韋\n韌\n韓\n韜\n韦\n韧\n韩\n韬\n韭\n音\n韵\n韶\n韻\n響\n頁\n頂\n頃\n項\n順\n須\n頌\n預\n頑\n頒\n頓\n頗\n領\n頜\n頡\n頤\n頫\n頭\n頰\n頷\n頸\n頹\n頻\n頼\n顆\n題\n額\n顎\n顏\n顔\n願\n顛\n類\n顧\n顫\n顯\n顱\n顴\n页\n顶\n顷\n项\n顺\n须\n顼\n顽\n顾\n顿\n颁\n颂\n预\n颅\n领\n颇\n颈\n颉\n颊\n颌\n颍\n颐\n频\n颓\n颔\n颖\n颗\n题\n颚\n颛\n颜\n额\n颞\n颠\n颡\n颢\n颤\n颦\n颧\n風\n颯\n颱\n颳\n颶\n颼\n飄\n飆\n风\n飒\n飓\n飕\n飘\n飙\n飚\n飛\n飞\n食\n飢\n飨\n飩\n飪\n飯\n飲\n飼\n飽\n飾\n餃\n餅\n餉\n養\n餌\n餐\n餒\n餓\n餘\n餚\n餛\n餞\n餡\n館\n餮\n餵\n餾\n饅\n饈\n饋\n饌\n饍\n饑\n饒\n饕\n饗\n饞\n饥\n饨\n饪\n饬\n饭\n饮\n饯\n饰\n饱\n饲\n饴\n饵\n饶\n饷\n饺\n饼\n饽\n饿\n馀\n馁\n馄\n馅\n馆\n馈\n馋\n馍\n馏\n馒\n馔\n首\n馗\n香\n馥\n馨\n馬\n馭\n馮\n馳\n馴\n駁\n駄\n駅\n駆\n駐\n駒\n駕\n駛\n駝\n駭\n駱\n駿\n騁\n騎\n騏\n験\n騙\n騨\n騰\n騷\n驀\n驅\n驊\n驍\n驒\n驕\n驗\n驚\n驛\n驟\n驢\n驥\n马\n驭\n驮\n驯\n驰\n驱\n驳\n驴\n驶\n驷\n驸\n驹\n驻\n驼\n驾\n驿\n骁\n骂\n骄\n骅\n骆\n骇\n骈\n骊\n骋\n验\n骏\n骐\n骑\n骗\n骚\n骛\n骜\n骞\n骠\n骡\n骤\n骥\n骧\n骨\n骯\n骰\n骶\n骷\n骸\n骼\n髂\n髅\n髋\n髏\n髒\n髓\n體\n髖\n高\n髦\n髪\n髮\n髯\n髻\n鬃\n鬆\n鬍\n鬓\n鬚\n鬟\n鬢\n鬣\n鬥\n鬧\n鬱\n鬼\n魁\n魂\n魄\n魅\n魇\n魍\n魏\n魔\n魘\n魚\n魯\n魷\n鮑\n鮨\n鮪\n鮭\n鮮\n鯉\n鯊\n鯖\n鯛\n鯨\n鯰\n鯽\n鰍\n鰓\n鰭\n鰲\n鰻\n鰾\n鱈\n鱉\n鱔\n鱗\n鱷\n鱸\n鱼\n鱿\n鲁\n鲈\n鲍\n鲑\n鲛\n鲜\n鲟\n鲢\n鲤\n鲨\n鲫\n鲱\n鲲\n鲶\n鲷\n鲸\n鳃\n鳄\n鳅\n鳌\n鳍\n鳕\n鳖\n鳗\n鳝\n鳞\n鳥\n鳩\n鳳\n鳴\n鳶\n鴉\n鴕\n鴛\n鴦\n鴨\n鴻\n鴿\n鵑\n鵜\n鵝\n鵡\n鵬\n鵰\n鵲\n鶘\n鶩\n鶯\n鶴\n鷗\n鷲\n鷹\n鷺\n鸚\n鸞\n鸟\n鸠\n鸡\n鸢\n鸣\n鸥\n鸦\n鸨\n鸪\n鸭\n鸯\n鸳\n鸵\n鸽\n鸾\n鸿\n鹂\n鹃\n鹄\n鹅\n鹈\n鹉\n鹊\n鹌\n鹏\n鹑\n鹕\n鹘\n鹜\n鹞\n鹤\n鹦\n鹧\n鹫\n鹭\n鹰\n鹳\n鹵\n鹹\n鹼\n鹽\n鹿\n麂\n麋\n麒\n麓\n麗\n麝\n麟\n麥\n麦\n麩\n麴\n麵\n麸\n麺\n麻\n麼\n麽\n麾\n黃\n黄\n黍\n黎\n黏\n黑\n黒\n黔\n默\n黛\n黜\n黝\n點\n黠\n黨\n黯\n黴\n鼋\n鼎\n鼐\n鼓\n鼠\n鼬\n鼹\n鼻\n鼾\n齁\n齊\n齋\n齐\n齒\n齡\n齢\n齣\n齦\n齿\n龄\n龅\n龈\n龊\n龋\n龌\n龍\n龐\n龔\n龕\n龙\n龚\n龛\n龜\n龟\n︰\n︱\n︶\n︿\n﹁\n﹂\n﹍\n﹏\n﹐\n﹑\n﹒\n﹔\n﹕\n﹖\n﹗\n﹙\n﹚\n﹝\n﹞\n﹡\n﹣\n！\n＂\n＃\n＄\n％\n＆\n＇\n（\n）\n＊\n＋\n，\n－\n．\n／\n０\n１\n２\n３\n４\n５\n６\n７\n８\n９\n：\n；\n＜\n＝\n＞\n？\n＠\n［\n＼\n］\n＾\n＿\n｀\nａ\nｂ\nｃ\nｄ\nｅ\nｆ\nｇ\nｈ\nｉ\nｊ\nｋ\nｌ\nｍ\nｎ\nｏ\nｐ\nｑ\nｒ\nｓ\nｔ\nｕ\nｖ\nｗ\nｘ\nｙ\nｚ\n｛\n｜\n｝\n～\n｡\n｢\n｣\n､\n･\nｯ\nｰ\nｲ\nｸ\nｼ\nｽ\nﾄ\nﾉ\nﾌ\nﾗ\nﾙ\nﾝ\nﾞ\nﾟ\n￣\n￥\n👍\n🔥\n😂\n😎\n...\nyam\n10\n2017\n12\n11\n2016\n20\n30\n15\n06\nlofter\n##s\n2015\nby\n16\n14\n18\n13\n24\n17\n2014\n21\n##0\n22\n19\n25\n23\ncom\n100\n00\n05\n2013\n##a\n03\n09\n08\n28\n##2\n50\n01\n04\n##1\n27\n02\n2012\n##3\n26\n##e\n07\n##8\n##5\n##6\n##4\n##9\n##7\n29\n2011\n40\n##t\n2010\n##o\n##d\n##i\n2009\n##n\napp\nwww\nthe\n##m\n31\n##c\n##l\n##y\n##r\n##g\n2008\n60\nhttp\n200\nqq\n##p\n80\n##f\ngoogle\npixnet\n90\ncookies\ntripadvisor\n500\n##er\n##k\n35\n##h\nfacebook\n2007\n2000\n70\n##b\nof\n##x\n##u\n45\n300\niphone\n32\n1000\n2006\n48\nip\n36\nin\n38\n3d\n##w\n##ing\n55\nctrip\n##on\n##v\n33\n##の\nto\n34\n400\nid\n2005\nit\n37\nwindows\nllc\ntop\n99\n42\n39\n000\nled\nat\n##an\n41\n51\n52\n46\n49\n43\n53\n44\n##z\nandroid\n58\nand\n59\n2004\n56\nvr\n##か\n5000\n2003\n47\nblogthis\ntwitter\n54\n##le\n150\nok\n2018\n57\n75\ncn\nno\nios\n##in\n##mm\n##00\n800\non\nte\n3000\n65\n2001\n360\n95\nig\nlv\n120\n##ng\n##を\n##us\n##に\npc\nてす\n──\n600\n##te\n85\n2002\n88\n##ed\nhtml\nncc\nwifi\nemail\n64\nblog\nis\n##10\n##て\nmail\nonline\n##al\ndvd\n##ic\nstudio\n##は\n##℃\n##ia\n##と\nline\nvip\n72\n##q\n98\n##ce\n##en\nfor\n##is\n##ra\n##es\n##j\nusb\nnet\ncp\n1999\nasia\n4g\n##cm\ndiy\nnew\n3c\n##お\nta\n66\nlanguage\nvs\napple\ntw\n86\nweb\n##ne\nipad\n62\nyou\n##re\n101\n68\n##tion\nps\nde\nbt\npony\natm\n##2017\n1998\n67\n##ch\nceo\n##or\ngo\n##na\nav\npro\ncafe\n96\npinterest\n97\n63\npixstyleme3c\n##ta\nmore\nsaid\n##2016\n1997\nmp3\n700\n##ll\nnba\njun\n##20\n92\ntv\n1995\npm\n61\n76\nnbsp\n250\n##ie\nlinux\n##ma\ncd\n110\nhd\n##17\n78\n##ion\n77\n6000\nam\n##th\n##st\n94\n##se\n##et\n69\n180\ngdp\nmy\n105\n81\nabc\n89\nflash\n79\none\n93\n1990\n1996\n##ck\ngps\n##も\n##ly\nweb885\n106\n2020\n91\n##ge\n4000\n1500\nxd\nboss\nisbn\n1994\norg\n##ry\nme\nlove\n##11\n0fork\n73\n##12\n3g\n##ter\n##ar\n71\n82\n##la\nhotel\n130\n1970\npk\n83\n87\n140\nie\n##os\n##30\n##el\n74\n##50\nseo\ncpu\n##ml\np2p\n84\nmay\n##る\nsun\ntue\ninternet\ncc\nposted\nyoutube\n##at\n##ン\n##man\nii\n##ル\n##15\nabs\nnt\npdf\nyahoo\nago\n1980\n##it\nnews\nmac\n104\n##てす\n##me\n##り\njava\n1992\nspa\n##de\n##nt\nhk\nall\nplus\nla\n1993\n##mb\n##16\n##ve\nwest\n##da\n160\nair\n##い\n##ps\nから\n##to\n1989\nlogo\nhtc\nphp\nhttps\nfi\nmomo\n##son\nsat\n##ke\n##80\nebd\nsuv\nwi\nday\napk\n##88\n##um\nmv\ngalaxy\nwiki\nor\nbrake\n##ス\n1200\nする\nthis\n1991\nmon\n##こ\n❤2017\npo\n##ない\njavascript\nlife\nhome\njune\n##ss\nsystem\n900\n##ー\n##０\npp\n1988\nworld\nfb\n4k\nbr\n##as\nic\nai\nleonardo\nsafari\n##60\nlive\nfree\nxx\nwed\nwin7\nkiehl\n##co\nlg\no2o\n##go\nus\n235\n1949\nmm\nしい\nvfm\nkanye\n##90\n##2015\n##id\njr\n##ey\n123\nrss\n##sa\n##ro\n##am\n##no\nthu\nfri\n350\n##sh\n##ki\n103\ncomments\nname\n##のて\n##pe\n##ine\nmax\n1987\n8000\nuber\n##mi\n##ton\nwordpress\noffice\n1986\n1985\n##ment\n107\nbd\nwin10\n##ld\n##li\ngmail\nbb\ndior\n##rs\n##ri\n##rd\n##ます\nup\ncad\n##®\ndr\nして\nread\n##21\nをお\n##io\n##99\nurl\n1984\npvc\npaypal\nshow\npolicy\n##40\n##ty\n##18\nwith\n##★\n##01\ntxt\n102\n##ba\ndna\nfrom\npost\nmini\nar\ntaiwan\njohn\n##ga\nprivacy\nagoda\n##13\n##ny\nword\n##24\n##22\n##by\n##ur\n##hz\n1982\n##ang\n265\ncookie\nnetscape\n108\n##ka\n##～\n##ad\nhouse\nshare\nnote\nibm\ncode\nhello\nnike\nsim\nsurvey\n##016\n1979\n1950\nwikia\n##32\n##017\n5g\ncbc\n##tor\n##kg\n1983\n##rt\n##14\ncampaign\nstore\n2500\nos\n##ct\n##ts\n##°\n170\napi\n##ns\n365\nexcel\n##な\n##ao\n##ら\n##し\n～～\n##nd\nuniversity\n163\nには\n518\n##70\n##ya\n##il\n##25\npierre\nipo\n0020\n897\n##23\nhotels\n##ian\nのお\n125\nyears\n6606\n##ers\n##26\nhigh\n##day\ntime\n##ay\nbug\n##line\n##く\n##す\n##be\nxp\ntalk2yam\nyamservice\n10000\ncoco\n##dy\nsony\n##ies\n1978\nmicrosoft\ndavid\npeople\n##ha\n1960\ninstagram\nintel\nその\n##ot\niso\n1981\n##va\n115\n##mo\n##land\nxxx\nman\nco\nltxsw\n##ation\nbaby\n220\n##pa\n##ol\n1945\n7000\ntag\n450\n##ue\nmsn\n##31\noppo\n##ト\n##ca\ncontrol\n##om\nst\nchrome\n##ure\n##ん\nbe\n##き\nlol\n##19\nした\n##bo\n240\nlady\n##100\n##way\n##から\n4600\n##ko\n##do\n##un\n4s\ncorporation\n168\n##ni\nherme\n##28\nｃｐ\n978\n##up\n##06\nui\n##ds\nppt\nadmin\nthree\nします\nbbc\nre\n128\n##48\nca\n##015\n##35\nhp\n##ee\ntpp\n##た\n##ive\n××\nroot\n##cc\n##ました\n##ble\n##ity\nadobe\npark\n114\net\noled\ncity\n##ex\n##ler\n##ap\nchina\n##book\n20000\nview\n##ice\nglobal\n##km\nyour\nhong\n##mg\nout\n##ms\nng\nebay\n##29\nmenu\nubuntu\n##cy\nrom\n##view\nopen\nktv\ndo\nserver\n##lo\nif\nenglish\n##ね\n##５\n##oo\n1600\n##02\nstep1\nkong\nclub\n135\njuly\ninc\n1976\nmr\nhi\n##net\ntouch\n##ls\n##ii\nmichael\nlcd\n##05\n##33\nphone\njames\nstep2\n1300\nios9\n##box\ndc\n##２\n##ley\nsamsung\n111\n280\npokemon\ncss\n##ent\n##les\nいいえ\n##１\ns8\natom\nplay\nbmw\n##said\nsa\netf\nctrl\n♥yoyo♥\n##55\n2025\n##2014\n##66\nadidas\namazon\n1958\n##ber\n##ner\nvisa\n##77\n##der\n1800\nconnectivity\n##hi\nfirefox\n109\n118\nhr\nso\nstyle\nmark\npop\nol\nskip\n1975\nas\n##27\n##ir\n##61\n190\nmba\n##う\n##ai\nle\n##ver\n1900\ncafe2017\nlte\nsuper\n113\n129\n##ron\namd\nlike\n##☆\nare\n##ster\nwe\n##sk\npaul\ndata\ninternational\n##ft\nlongchamp\nssd\ngood\n##ート\n##ti\nreply\n##my\n↓↓↓\napr\nstar\n##ker\nsource\n136\njs\n112\nget\nforce\nphoto\n##one\n126\n##2013\n##ow\nlink\nbbs\n1972\ngoods\n##lin\npython\n119\n##ip\ngame\n##ics\n##ません\nblue\n##●\n520\n##45\npage\nitunes\n##03\n1955\n260\n1968\ngt\ngif\n618\n##ff\n##47\ngroup\nくたさい\nabout\nbar\nganji\n##nce\nmusic\nlee\nnot\n1977\n1971\n1973\n##per\nan\nfaq\ncomment\n##って\ndays\n##ock\n116\n##bs\n1974\n1969\nv1\nplayer\n1956\nxbox\nsql\nfm\nf1\n139\n##ah\n210\n##lv\n##mp\n##000\nmelody\n1957\n##３\n550\n17life\n199\n1966\nxml\nmarket\n##au\n##71\n999\n##04\nwhat\ngl\n##95\n##age\ntips\n##68\nbook\n##ting\nmysql\ncan\n1959\n230\n##ung\nwonderland\nwatch\n10℃\n##ction\n9000\nmar\nmobile\n1946\n1962\narticle\n##db\npart\n▲top\nparty\nって\n1967\n1964\n1948\n##07\n##ore\n##op\nこの\ndj\n##78\n##38\n010\nmain\n225\n1965\n##ong\nart\n320\nad\n134\n020\n##73\n117\npm2\njapan\n228\n##08\nts\n1963\n##ica\nder\nsm\n##36\n2019\n##wa\nct\n##７\n##や\n##64\n1937\nhomemesh\nsearch\n##85\n##れは\n##tv\n##di\nmacbook\n##９\n##くたさい\nservice\n##♥\ntype\nった\n750\n##ier\n##si\n##75\n##います\n##ok\nbest\n##ット\ngoris\nlock\n##った\ncf\n3m\nbig\n##ut\nftp\ncarol\n##vi\n１０\n1961\nhappy\nsd\n##ac\n122\nanti\npe\ncnn\niii\n1920\n138\n##ラ\n1940\nesp\njan\ntags\n##98\n##51\naugust\nvol\n##86\n154\n##™\n##fs\n##れ\n##sion\ndesign\nac\n##ム\npress\njordan\nppp\nthat\nkey\ncheck\n##６\n##tt\n##㎡\n1080p\n##lt\npower\n##42\n1952\n##bc\nvivi\n##ック\nhe\n133\n121\njpg\n##rry\n201\n175\n3500\n1947\nnb\n##ted\n##rn\nしています\n1954\nusd\n##t00\nmaster\n##ンク\n001\nmodel\n##58\nal\n##09\n1953\n##34\nram\ngoo\nても\n##ui\n127\n1930\nred\n##ary\nrpg\nitem\n##pm\n##41\n270\n##za\nproject\n##2012\nhot\ntd\nblogabstract\n##ger\n##62\n650\n##44\ngr2\n##します\n##ｍ\nblack\nelectronic\nnfc\nyear\nasus\nまた\nhtml5\ncindy\n##hd\nm3\n132\nesc\n##od\nbooking\n##53\nfed\ntvb\n##81\n##ina\nmit\n165\n##いる\nchan\n192\ndistribution\nnext\nになる\npeter\nbios\nsteam\ncm\n1941\nにも\npk10\n##ix\n##65\n##91\ndec\nnasa\n##ana\nicecat\n00z\nb1\nwill\n##46\nli\nse\n##ji\n##み\n##ard\noct\n##ain\njp\n##ze\n##bi\ncio\n##56\nsmart\nh5\n##39\n##port\ncurve\nvpn\n##nm\n##dia\nutc\n##あり\n12345678910\n##52\nrmvb\nchanel\na4\nmiss\n##and\n##im\nmedia\nwho\n##63\nshe\ngirl\n5s\n124\nvera\n##して\nclass\nvivo\nking\n##フ\n##ei\nnational\nab\n1951\n5cm\n888\n145\nipod\nap\n1100\n5mm\n211\nms\n2756\n##69\nmp4\nmsci\n##po\n##89\n131\nmg\nindex\n380\n##bit\n##out\n##zz\n##97\n##67\n158\napec\n##８\nphotoshop\nopec\n￥799\nては\n##96\n##tes\n##ast\n2g\n○○\n##ール\n￥2899\n##ling\n##よ\n##ory\n1938\n##ical\nkitty\ncontent\n##43\nstep3\n##cn\nwin8\n155\nvc\n1400\niphone7\nrobert\n##した\ntcl\n137\nbeauty\n##87\nen\ndollars\n##ys\n##oc\nstep\npay\nyy\na1\n##2011\n##lly\n##ks\n##♪\n1939\n188\ndownload\n1944\nsep\nexe\nph\nいます\nschool\ngb\ncenter\npr\nstreet\n##board\nuv\n##37\n##lan\nwinrar\n##que\n##ua\n##com\n1942\n1936\n480\ngpu\n##４\nettoday\nfu\ntom\n##54\n##ren\n##via\n149\n##72\nb2b\n144\n##79\n##tch\nrose\narm\nmb\n##49\n##ial\n##nn\nnvidia\nstep4\nmvp\n00㎡\nyork\n156\n##イ\nhow\ncpi\n591\n2765\ngov\nkg\njoe\n##xx\nmandy\npa\n##ser\ncopyright\nfashion\n1935\ndon\n##け\necu\n##ist\n##art\nerp\nwap\nhave\n##lm\ntalk\n##ek\n##ning\n##if\nch\n##ite\nvideo\n1943\ncs\nsan\niot\nlook\n##84\n##2010\n##ku\noctober\n##ux\ntrump\n##hs\n##ide\nbox\n141\nfirst\n##ins\napril\n##ight\n##83\n185\nangel\nprotected\naa\n151\n162\nx1\nm2\n##fe\n##×\n##ho\nsize\n143\nmin\nofo\nfun\ngomaji\nex\nhdmi\nfood\ndns\nmarch\nchris\nkevin\n##のか\n##lla\n##pp\n##ec\nag\nems\n6s\n720p\n##rm\n##ham\noff\n##92\nasp\nteam\nfandom\ned\n299\n▌♥\n##ell\ninfo\nされています\n##82\nsina\n4066\n161\n##able\n##ctor\n330\n399\n315\ndll\nrights\nltd\nidc\njul\n3kg\n1927\n142\nma\nsurface\n##76\n##ク\n～～～\n304\nmall\neps\n146\ngreen\n##59\nmap\nspace\ndonald\nv2\nsodu\n##light\n1931\n148\n1700\nまて\n310\nreserved\nhtm\n##han\n##57\n2d\n178\nmod\n##ise\n##tions\n152\nti\n##shi\ndoc\n1933\nicp\n055\nwang\n##ram\nshopping\naug\n##pi\n##well\nnow\nwam\nb2\nからお\n##hu\n236\n1928\n##gb\n266\nf2\n##93\n153\nmix\n##ef\n##uan\nbwl\n##plus\n##res\ncore\n##ess\ntea\n5℃\nhktvmall\nnhk\n##ate\nlist\n##ese\n301\nfeb\n4m\ninn\nての\nnov\n159\n12345\ndaniel\n##ci\npass\n##bet\n##nk\ncoffee\n202\nssl\nairbnb\n##ute\nfbi\nwoshipm\nskype\nea\ncg\nsp\n##fc\n##www\nyes\nedge\nalt\n007\n##94\nfpga\n##ght\n##gs\niso9001\nさい\n##ile\n##wood\n##uo\nimage\nlin\nicon\namerican\n##em\n1932\nset\nsays\n##king\n##tive\nblogger\n##74\nなと\n256\n147\n##ox\n##zy\n##red\n##ium\n##lf\nnokia\nclaire\n##リ\n##ding\nnovember\nlohas\n##500\n##tic\n##マ\n##cs\n##ある\n##che\n##ire\n##gy\n##ult\ndb\njanuary\nwin\n##カ\n166\nroad\nptt\n##ま\n##つ\n198\n##fa\n##mer\nanna\npchome\nはい\nudn\nef\n420\n##time\n##tte\n2030\n##ア\ng20\nwhite\nかかります\n1929\n308\ngarden\neleven\ndi\n##おります\nchen\n309b\n777\n172\nyoung\ncosplay\nちてない\n4500\nbat\n##123\n##tra\n##ては\nkindle\nnpc\nsteve\netc\n##ern\n##｜\ncall\nxperia\nces\ntravel\nsk\ns7\n##ous\n1934\n##int\nみいたたけます\n183\nedu\nfile\ncho\nqr\n##car\n##our\n186\n##ant\n##ｄ\neric\n1914\nrends\n##jo\n##する\nmastercard\n##2000\nkb\n##min\n290\n##ino\nvista\n##ris\n##ud\njack\n2400\n##set\n169\npos\n1912\n##her\n##ou\ntaipei\nしく\n205\nbeta\n##ませんか\n232\n##fi\nexpress\n255\nbody\n##ill\naphojoy\nuser\ndecember\nmeiki\n##ick\ntweet\nrichard\n##av\n##ᆫ\niphone6\n##dd\nちてすか\nviews\n##mark\n321\npd\n##００\ntimes\n##▲\nlevel\n##ash\n10g\npoint\n5l\n##ome\n208\nkoreanmall\n##ak\ngeorge\nq2\n206\nwma\ntcp\n##200\nスタッフ\nfull\nmlb\n##lle\n##watch\ntm\nrun\n179\n911\nsmith\nbusiness\n##und\n1919\ncolor\n##tal\n222\n171\n##less\nmoon\n4399\n##rl\nupdate\npcb\nshop\n499\n157\nlittle\nなし\nend\n##mhz\nvan\ndsp\neasy\n660\n##house\n##key\nhistory\n##ｏ\noh\n##001\n##hy\n##web\noem\nlet\nwas\n##2009\n##gg\nreview\n##wan\n182\n##°c\n203\nuc\ntitle\n##val\nunited\n233\n2021\n##ons\ndoi\ntrivago\noverdope\nsbs\n##ance\n##ち\ngrand\nspecial\n573032185\nimf\n216\nwx17house\n##so\n##ーム\naudi\n##he\nlondon\nwilliam\n##rp\n##ake\nscience\nbeach\ncfa\namp\nps4\n880\n##800\n##link\n##hp\ncrm\nferragamo\nbell\nmake\n##eng\n195\nunder\nzh\nphotos\n2300\n##style\n##ント\nvia\n176\nda\n##gi\ncompany\ni7\n##ray\nthomas\n370\nufo\ni5\n##max\nplc\nben\nback\nresearch\n8g\n173\nmike\n##pc\n##ッフ\nseptember\n189\n##ace\nvps\nfebruary\n167\npantos\nwp\nlisa\n1921\n★★\njquery\nnight\nlong\noffer\n##berg\n##news\n1911\n##いて\nray\nfks\nwto\nせます\nover\n164\n340\n##all\n##rus\n1924\n##888\n##works\nblogtitle\nloftpermalink\n##→\n187\nmartin\ntest\nling\nkm\n##め\n15000\nfda\nv3\n##ja\n##ロ\nｗedding\nかある\noutlet\nfamily\n##ea\nをこ\n##top\nstory\n##ness\nsalvatore\n##lu\n204\nswift\n215\nroom\nしている\noracle\n##ul\n1925\nsam\nb2c\nweek\npi\nrock\n##のは\n##ａ\n##けと\n##ean\n##300\n##gle\ncctv\nafter\nchinese\n##back\npowered\nx2\n##tan\n1918\n##nes\n##イン\ncanon\nonly\n181\n##zi\n##las\nsay\n##oe\n184\n##sd\n221\n##bot\n##world\n##zo\nsky\nmade\ntop100\njust\n1926\npmi\n802\n234\ngap\n##vr\n177\nles\n174\n▲topoct\nball\nvogue\nvi\ning\nofweek\ncos\n##list\n##ort\n▲topmay\n##なら\n##lon\nとして\nlast\n##tc\n##of\n##bus\n##gen\nreal\neva\n##コ\na3\nnas\n##lie\n##ria\n##coin\n##bt\n▲topapr\nhis\n212\ncat\nnata\nvive\nhealth\n⋯⋯\ndrive\nsir\n▲topmar\ndu\ncup\n##カー\n##ook\n##よう\n##sy\nalex\nmsg\ntour\nしました\n3ce\n##word\n193\nebooks\nr8\nblock\n318\n##より\n2200\nnice\npvp\n207\nmonths\n1905\nrewards\n##ther\n1917\n0800\n##xi\n##チ\n##sc\nmicro\n850\ngg\nblogfp\nop\n1922\ndaily\nm1\n264\ntrue\n##bb\nml\n##tar\n##のお\n##ky\nanthony\n196\n253\n##yo\nstate\n218\n##ara\n##aa\n##rc\n##tz\n##ston\nより\ngear\n##eo\n##ade\nge\nsee\n1923\n##win\n##ura\nss\nheart\n##den\n##ita\ndown\n##sm\nel\npng\n2100\n610\nrakuten\nwhatsapp\nbay\ndream\nadd\n##use\n680\n311\npad\ngucci\nmpv\n##ode\n##fo\nisland\n▲topjun\n##▼\n223\njason\n214\nchicago\n##❤\nしの\n##hone\nio\n##れる\n##ことか\nsogo\nbe2\n##ology\n990\ncloud\nvcd\n##con\n2～3\n##ford\n##joy\n##kb\n##こさいます\n##rade\nbut\n##ach\ndocker\n##ful\nrfid\nul\n##ase\nhit\nford\n##star\n580\n##○\n１１\na2\nsdk\nreading\nedited\n##are\ncmos\n##mc\n238\nsiri\nlight\n##ella\n##ため\nbloomberg\n##read\npizza\n##ison\njimmy\n##vm\ncollege\nnode\njournal\nba\n18k\n##play\n245\n##cer\n２０\nmagic\n##yu\n191\njump\n288\ntt\n##ings\nasr\n##lia\n3200\nstep5\nnetwork\n##cd\nmc\nいします\n1234\npixstyleme\n273\n##600\n2800\nmoney\n★★★★★\n1280\n１２\n430\nbl\nみの\nact\n##tus\ntokyo\n##rial\n##life\nemba\n##ae\nsaas\ntcs\n##rk\n##wang\nsummer\n##sp\nko\n##ving\n390\npremium\n##その\nnetflix\n##ヒ\nuk\nmt\n##lton\nright\nfrank\ntwo\n209\nえる\n##ple\n##cal\n021\n##んな\n##sen\n##ville\nhold\nnexus\ndd\n##ius\nてお\n##mah\n##なく\ntila\nzero\n820\nce\n##tin\nresort\n##ws\ncharles\nold\np10\n5d\nreport\n##360\n##ru\n##には\nbus\nvans\nlt\n##est\npv\n##レ\nlinks\nrebecca\n##ツ\n##dm\nazure\n##365\nきな\nlimited\nbit\n4gb\n##mon\n1910\nmoto\n##eam\n213\n1913\nvar\neos\nなとの\n226\nblogspot\nされた\n699\ne3\ndos\ndm\nfc\n##ments\n##ik\n##kw\nboy\n##bin\n##ata\n960\ner\n##せ\n219\n##vin\n##tu\n##ula\n194\n##∥\nstation\n##ろ\n##ature\n835\nfiles\nzara\nhdr\ntop10\nnature\n950\nmagazine\ns6\nmarriott\n##シ\navira\ncase\n##っと\ntab\n##ran\ntony\n##home\noculus\nim\n##ral\njean\nsaint\ncry\n307\nrosie\n##force\n##ini\nice\n##bert\nのある\n##nder\n##mber\npet\n2600\n##◆\nplurk\n▲topdec\n##sis\n00kg\n▲topnov\n720\n##ence\ntim\n##ω\n##nc\n##ても\n##name\nlog\nips\ngreat\nikea\nmalaysia\nunix\n##イト\n3600\n##ncy\n##nie\n12000\nakb48\n##ye\n##oid\n404\n##chi\n##いた\noa\nxuehai\n##1000\n##orm\n##rf\n275\nさん\n##ware\n##リー\n980\nho\n##pro\ntext\n##era\n560\nbob\n227\n##ub\n##2008\n8891\nscp\navi\n##zen\n2022\nmi\nwu\nmuseum\nqvod\napache\nlake\njcb\n▲topaug\n★★★\nni\n##hr\nhill\n302\nne\nweibo\n490\nruby\n##ーシ\n##ヶ\n##row\n4d\n▲topjul\niv\n##ish\ngithub\n306\nmate\n312\n##スト\n##lot\n##ane\nandrew\nのハイト\n##tina\nt1\nrf\ned2k\n##vel\n##900\nway\nfinal\nりの\nns\n5a\n705\n197\n##メ\nsweet\nbytes\n##ene\n▲topjan\n231\n##cker\n##2007\n##px\n100g\ntopapp\n229\nhelpapp\nrs\nlow\n14k\ng4g\ncare\n630\nldquo\nあり\n##fork\nleave\nrm\nedition\n##gan\n##zon\n##qq\n▲topsep\n##google\n##ism\ngold\n224\nexplorer\n##zer\ntoyota\ncategory\nselect\nvisual\n##labels\nrestaurant\n##md\nposts\ns1\n##ico\nもっと\nangelababy\n123456\n217\nsports\ns3\nmbc\n1915\nしてくたさい\nshell\nx86\ncandy\n##new\nkbs\nface\nxl\n470\n##here\n4a\nswissinfo\nv8\n▲topfeb\ndram\n##ual\n##vice\n3a\n##wer\nsport\nq1\nios10\npublic\nint\ncard\n##ｃ\nep\nau\nrt\n##れた\n1080\nbill\n##mll\nkim\n３０\n460\nwan\n##uk\n##ミ\nx3\n298\n0t\nscott\n##ming\n239\ne5\n##3d\nh7n9\nworldcat\nbrown\n##あります\n##vo\n##led\n##580\n##ax\n249\n410\n##ert\nparis\n##～6\npolo\n925\n##lr\n599\n##ナ\ncapital\n##hing\nbank\ncv\n1g\n##chat\n##ｓ\n##たい\nadc\n##ule\n2m\n##ｅ\ndigital\nhotmail\n268\n##pad\n870\nbbq\nquot\n##ring\nbefore\nwali\n##まて\nmcu\n2k\n2b\nという\ncostco\n316\nnorth\n333\nswitch\n##city\n##ｐ\nphilips\n##mann\nmanagement\npanasonic\n##cl\n##vd\n##ping\n##rge\nalice\n##lk\n##ましょう\ncss3\n##ney\nvision\nalpha\n##ular\n##400\n##tter\nlz\nにお\n##ありません\nmode\ngre\n1916\npci\n##tm\n237\n1～2\n##yan\n##そ\nについて\n##let\n##キ\nwork\nwar\ncoach\nah\nmary\n##ᅵ\nhuang\n##pt\na8\npt\nfollow\n##berry\n1895\n##ew\na5\nghost\n##ション\n##wn\n##og\nsouth\n##code\ngirls\n##rid\naction\nvilla\ngit\nr11\ntable\ngames\n##cket\nerror\n##anonymoussaid\n##ag\nhere\n##ame\n##gc\nqa\n##■\n##lis\ngmp\n##gin\nvmalife\n##cher\nyu\nwedding\n##tis\ndemo\ndragon\n530\nsoho\nsocial\nbye\n##rant\nriver\norz\nacer\n325\n##↑\n##ース\n##ats\n261\ndel\n##ven\n440\nups\n##ように\n##ター\n305\nvalue\nmacd\nyougou\n##dn\n661\n##ano\nll\n##urt\n##rent\ncontinue\nscript\n##wen\n##ect\npaper\n263\n319\nshift\n##chel\n##フト\n##cat\n258\nx5\nfox\n243\n##さん\ncar\naaa\n##blog\nloading\n##yn\n##tp\nkuso\n799\nsi\nsns\nイカせるテンマ\nヒンクテンマ3\nrmb\nvdc\nforest\ncentral\nprime\nhelp\nultra\n##rmb\n##ような\n241\nsquare\n688\n##しい\nのないフロクに\n##field\n##reen\n##ors\n##ju\nc1\nstart\n510\n##air\n##map\ncdn\n##wo\ncba\nstephen\nm8\n100km\n##get\nopera\n##base\n##ood\nvsa\ncom™\n##aw\n##ail\n251\nなのて\ncount\nt2\n##ᅡ\n##een\n2700\nhop\n##gp\nvsc\ntree\n##eg\n##ose\n816\n285\n##ories\n##shop\nalphago\nv4\n1909\nsimon\n##ᆼ\nfluke62max\nzip\nスホンサー\n##sta\nlouis\ncr\nbas\n##～10\nbc\n##yer\nhadoop\n##ube\n##wi\n1906\n0755\nhola\n##low\nplace\ncentre\n5v\nd3\n##fer\n252\n##750\n##media\n281\n540\n0l\nexchange\n262\nseries\n##ハー\n##san\neb\n##bank\n##ｋ\nq3\n##nge\n##mail\ntake\n##lp\n259\n1888\nclient\neast\ncache\nevent\nvincent\n##ールを\nきを\n##nse\nsui\n855\nadchoice\n##и\n##stry\n##なたの\n246\n##zone\nga\napps\nsea\n##ab\n248\ncisco\n##タ\n##rner\nkymco\n##care\ndha\n##pu\n##yi\nminkoff\nroyal\np1\nへの\nannie\n269\ncollection\nkpi\nplaystation\n257\nになります\n866\nbh\n##bar\nqueen\n505\nradio\n1904\nandy\narmani\n##xy\nmanager\niherb\n##ery\n##share\nspring\nraid\njohnson\n1908\n##ob\nvolvo\nhall\n##ball\nv6\nour\ntaylor\n##hk\nbi\n242\n##cp\nkate\nbo\nwater\ntechnology\n##rie\nサイトは\n277\n##ona\n##sl\nhpv\n303\ngtx\nhip\nrdquo\njayz\nstone\n##lex\n##rum\nnamespace\n##やり\n620\n##ale\n##atic\ndes\n##erson\n##ql\n##ves\n##type\nenter\n##この\n##てきます\nd2\n##168\n##mix\n##bian\nとの\na9\njj\nky\n##lc\naccess\nmovie\n##hc\nリストに\ntower\n##ration\n##mit\nます\n##nch\nua\ntel\nprefix\n##o2\n1907\n##point\n1901\nott\n～10\n##http\n##ury\nbaidu\n##ink\nmember\n##logy\nbigbang\nnownews\n##js\n##shot\n##tb\n##こと\n247\neba\n##tics\n##lus\nける\nv5\nspark\n##ama\nthere\n##ions\ngod\n##lls\n##down\nhiv\n##ress\nburberry\nday2\n##kv\n◆◆\njeff\nrelated\nfilm\nedit\njoseph\n283\n##ark\ncx\n32gb\norder\ng9\n30000\n##ans\n##tty\ns5\n##bee\nかあります\nthread\nxr\nbuy\nsh\n005\nland\nspotify\nmx\n##ari\n276\n##verse\n×email\nsf\nwhy\n##ことて\n244\n7headlines\nnego\nsunny\ndom\nexo\n401\n666\npositioning\nfit\nrgb\n##tton\n278\nkiss\nalexa\nadam\nlp\nみリストを\n##ｇ\nmp\n##ties\n##llow\namy\n##du\nnp\n002\ninstitute\n271\n##rth\n##lar\n2345\n590\n##des\nsidebar\n１５\nimax\nsite\n##cky\n##kit\n##ime\n##009\nseason\n323\n##fun\n##ンター\n##ひ\ngogoro\na7\npu\nlily\nfire\ntwd600\n##ッセーシを\nいて\n##vis\n30ml\n##cture\n##をお\ninformation\n##オ\nclose\nfriday\n##くれる\nyi\nnick\nてすか\n##tta\n##tel\n6500\n##lock\ncbd\neconomy\n254\nかお\n267\ntinker\ndouble\n375\n8gb\nvoice\n##app\noops\nchannel\ntoday\n985\n##right\nraw\nxyz\n##＋\njim\nedm\n##cent\n7500\nsupreme\n814\nds\n##its\n##asia\ndropbox\n##てすか\n##tti\nbooks\n272\n100ml\n##tle\n##ller\n##ken\n##more\n##boy\nsex\n309\n##dom\nt3\n##ider\n##なります\n##unch\n1903\n810\nfeel\n5500\n##かった\n##put\nにより\ns2\nmo\n##gh\nmen\nka\namoled\ndiv\n##tr\n##n1\nport\nhoward\n##tags\nken\ndnf\n##nus\nadsense\n##а\nide\n##へ\nbuff\nthunder\n##town\n##ique\nhas\n##body\nauto\npin\n##erry\ntee\nてした\n295\nnumber\n##the\n##013\nobject\npsp\ncool\nudnbkk\n16gb\n##mic\nmiui\n##tro\nmost\nr2\n##alk\n##nity\n1880\n±0\n##いました\n428\ns4\nlaw\nversion\n##oa\nn1\nsgs\ndocomo\n##tf\n##ack\nhenry\nfc2\n##ded\n##sco\n##014\n##rite\n286\n0mm\nlinkedin\n##ada\n##now\nwii\n##ndy\nucbug\n##◎\nsputniknews\nlegalminer\n##ika\n##xp\n2gb\n##bu\nq10\noo\nb6\ncome\n##rman\ncheese\nming\nmaker\n##gm\nnikon\n##fig\nppi\nkelly\n##ります\njchere\nてきます\nted\nmd\n003\nfgo\ntech\n##tto\ndan\nsoc\n##gl\n##len\nhair\nearth\n640\n521\nimg\n##pper\n##a1\n##てきる\n##ロク\nacca\n##ition\n##ference\nsuite\n##ig\noutlook\n##mond\n##cation\n398\n##pr\n279\n101vip\n358\n##999\n282\n64gb\n3800\n345\nairport\n##over\n284\n##おり\njones\n##ith\nlab\n##su\n##いるのて\nco2\ntown\npiece\n##llo\nno1\nvmware\n24h\n##qi\nfocus\nreader\n##admin\n##ora\ntb\nfalse\n##log\n1898\nknow\nlan\n838\n##ces\nf4\n##ume\nmotel\nstop\n##oper\nna\nflickr\nnetcomponents\n##af\n##─\npose\nwilliams\nlocal\n##ound\n##cg\n##site\n##iko\nいお\n274\n5m\ngsm\ncon\n##ath\n1902\nfriends\n##hip\ncell\n317\n##rey\n780\ncream\n##cks\n012\n##dp\nfacebooktwitterpinterestgoogle\nsso\n324\nshtml\nsong\nswiss\n##mw\n##キンク\nlumia\nxdd\nstring\ntiffany\n522\nmarc\nられた\ninsee\nrussell\nsc\ndell\n##ations\nｏｋ\ncamera\n289\n##vs\n##flow\n##late\nclassic\n287\n##nter\nstay\ng1\nmtv\n512\n##ever\n##lab\n##nger\nqe\nsata\nryan\nd1\n50ml\ncms\n##cing\nsu\n292\n3300\neditor\n296\n##nap\nsecurity\nsunday\nassociation\n##ens\n##700\n##bra\nacg\n##かり\nsofascore\nとは\nmkv\n##ign\njonathan\ngary\nbuild\nlabels\n##oto\ntesla\nmoba\nqi\ngohappy\ngeneral\najax\n1024\n##かる\nサイト\nsociety\n##test\n##urs\nwps\nfedora\n##ich\nmozilla\n328\n##480\n##dr\nusa\nurn\n##lina\n##ｒ\ngrace\n##die\n##try\n##ader\n1250\n##なり\nelle\n570\n##chen\n##ᆯ\nprice\n##ten\nuhz\n##ough\neq\n##hen\nstates\npush\nsession\nbalance\nwow\n506\n##cus\n##py\nwhen\n##ward\n##ep\n34e\nwong\nlibrary\nprada\n##サイト\n##cle\nrunning\n##ree\n313\nck\ndate\nq4\n##ctive\n##ool\n##＞\nmk\n##ira\n##163\n388\ndie\nsecret\nrq\ndota\nbuffet\nは１ヶ\ne6\n##ez\npan\n368\nha\n##card\n##cha\n2a\n##さ\nalan\nday3\neye\nf3\n##end\nfrance\nkeep\nadi\nrna\ntvbs\n##ala\nsolo\nnova\n##え\n##tail\n##ょう\nsupport\n##ries\n##なる\n##ved\nbase\ncopy\niis\nfps\n##ways\nhero\nhgih\nprofile\nfish\nmu\nssh\nentertainment\nchang\n##wd\nclick\ncake\n##ond\npre\n##tom\nkic\npixel\n##ov\n##fl\nproduct\n6a\n##pd\ndear\n##gate\nes\nyumi\naudio\n##²\n##sky\necho\nbin\nwhere\n##ture\n329\n##ape\nfind\nsap\nisis\n##なと\nnand\n##101\n##load\n##ream\nband\na6\n525\nnever\n##post\nfestival\n50cm\n##we\n555\nguide\n314\nzenfone\n##ike\n335\ngd\nforum\njessica\nstrong\nalexander\n##ould\nsoftware\nallen\n##ious\nprogram\n360°\nelse\nlohasthree\n##gar\nすることかてきます\nplease\n##れます\nrc\n##ggle\n##ric\nbim\n50000\n##own\neclipse\n355\nbrian\n3ds\n##side\n061\n361\n##other\n##ける\n##tech\n##ator\n485\nengine\n##ged\n##ｔ\nplaza\n##fit\ncia\nngo\nwestbrook\nshi\ntbs\n50mm\n##みませんか\nsci\n291\nreuters\n##ily\ncontextlink\n##hn\naf\n##cil\nbridge\nvery\n##cel\n1890\ncambridge\n##ize\n15g\n##aid\n##data\n790\nfrm\n##head\naward\nbutler\n##sun\nmeta\n##mar\namerica\nps3\npuma\npmid\n##すか\nlc\n670\nkitchen\n##lic\nオーフン5\nきなしソフトサーヒス\nそして\nday1\nfuture\n★★★★\n##text\n##page\n##rris\npm1\n##ket\nfans\n##っています\n1001\nchristian\nbot\nkids\ntrackback\n##hai\nc3\ndisplay\n##hl\nn2\n1896\nidea\nさんも\n##sent\nairmail\n##ug\n##men\npwm\nけます\n028\n##lution\n369\n852\nawards\nschemas\n354\nasics\nwikipedia\nfont\n##tional\n##vy\nc2\n293\n##れている\n##dget\n##ein\nっている\ncontact\npepper\nスキル\n339\n##～5\n294\n##uel\n##ument\n730\n##hang\nみてす\nq5\n##sue\nrain\n##ndi\nwei\nswatch\n##cept\nわせ\n331\npopular\n##ste\n##tag\np2\n501\ntrc\n1899\n##west\n##live\njustin\nhonda\nping\nmessenger\n##rap\nv9\n543\n##とは\nunity\nappqq\nはすへて\n025\nleo\n##tone\n##テ\n##ass\nuniqlo\n##010\n502\nher\njane\nmemory\nmoneydj\n##tical\nhuman\n12306\nしていると\n##m2\ncoc\nmiacare\n##mn\ntmt\n##core\nvim\nkk\n##may\nfan\ntarget\nuse\ntoo\n338\n435\n2050\n867\n737\nfast\n##2c\nservices\n##ope\nomega\nenergy\n##わ\npinkoi\n1a\n##なから\n##rain\njackson\n##ement\n##シャンルの\n374\n366\nそんな\np9\nrd\n##ᆨ\n1111\n##tier\n##vic\nzone\n##│\n385\n690\ndl\nisofix\ncpa\nm4\n322\nkimi\nめて\ndavis\n##lay\nlulu\n##uck\n050\nweeks\nqs\n##hop\n920\n##ｎ\nae\n##ear\n～5\neia\n405\n##fly\nkorea\njpeg\nboost\n##ship\nsmall\n##リア\n1860\neur\n297\n425\nvalley\n##iel\nsimple\n##ude\nrn\nk2\n##ena\nされます\nnon\npatrick\nしているから\n##ナー\nfeed\n5757\n30g\nprocess\nwell\nqqmei\n##thing\nthey\naws\nlu\npink\n##ters\n##kin\nまたは\nboard\n##vertisement\nwine\n##ien\nunicode\n##dge\nr1\n359\n##tant\nいを\n##twitter\n##3c\ncool1\nされる\n##れて\n##ｌ\nisp\n##012\nstandard\n45㎡2\n402\n##150\nmatt\n##fu\n326\n##iner\ngooglemsn\npixnetfacebookyahoo\n##ラン\nx7\n886\n##uce\nメーカー\nsao\n##ev\n##きました\n##file\n9678\n403\nxddd\nshirt\n6l\n##rio\n##hat\n3mm\ngivenchy\nya\nbang\n##lio\nmonday\ncrystal\nロクイン\n##abc\n336\nhead\n890\nubuntuforumwikilinuxpastechat\n##vc\n##～20\n##rity\ncnc\n7866\nipv6\nnull\n1897\n##ost\nyang\nimsean\ntiger\n##fet\n##ンス\n352\n##＝\ndji\n327\nji\nmaria\n##come\n##んて\nfoundation\n3100\n##beth\n##なった\n1m\n601\nactive\n##aft\n##don\n3p\nsr\n349\nemma\n##khz\nliving\n415\n353\n1889\n341\n709\n457\nsas\nx6\n##face\npptv\nx4\n##mate\nhan\nsophie\n##jing\n337\nfifa\n##mand\nother\nsale\ninwedding\n##gn\nてきちゃいます\n##mmy\n##pmlast\nbad\nnana\nnbc\nしてみてくたさいね\nなとはお\n##wu\n##かあります\n##あ\nnote7\nsingle\n##340\nせからこ\nしてくたさい♪この\nしにはとんとんワークケートを\nするとあなたにもっとマッチした\nならワークケートへ\nもみつかっちゃうかも\nワークケートの\n##bel\nwindow\n##dio\n##ht\nunion\nage\n382\n１４\n##ivity\n##ｙ\nコメント\ndomain\nneo\n##isa\n##lter\n5k\nf5\nsteven\n##cts\npowerpoint\ntft\nself\ng2\nft\n##テル\nzol\n##act\nmwc\n381\n343\nもう\nnbapop\n408\nてある\neds\nace\n##room\nprevious\nauthor\ntomtom\nil\n##ets\nhu\nfinancial\n☆☆☆\nっています\nbp\n5t\nchi\n1gb\n##hg\nfairmont\ncross\n008\ngay\nh2\nfunction\n##けて\n356\nalso\n1b\n625\n##ータ\n##raph\n1894\n3～5\n##ils\ni3\n334\navenue\n##host\nによる\n##bon\n##tsu\nmessage\nnavigation\n50g\nfintech\nh6\n##ことを\n8cm\n##ject\n##vas\n##firm\ncredit\n##wf\nxxxx\nform\n##nor\n##space\nhuawei\nplan\njson\nsbl\n##dc\nmachine\n921\n392\nwish\n##120\n##sol\nwindows7\nedward\n##ために\ndevelopment\nwashington\n##nsis\nlo\n818\n##sio\n##ym\n##bor\nplanet\n##～8\n##wt\nieee\ngpa\n##めて\ncamp\nann\ngm\n##tw\n##oka\nconnect\n##rss\n##work\n##atus\nwall\nchicken\nsoul\n2mm\n##times\nfa\n##ather\n##cord\n009\n##eep\nhitachi\ngui\nharry\n##pan\ne1\ndisney\n##press\n##ーション\nwind\n386\nfrigidaire\n##tl\nliu\nhsu\n332\nbasic\nvon\nev\nいた\nてきる\nスホンサーサイト\nlearning\n##ull\nexpedia\narchives\nchange\n##wei\nsanta\ncut\nins\n6gb\nturbo\nbrand\ncf1\n508\n004\nreturn\n747\n##rip\nh1\n##nis\n##をこ\n128gb\n##にお\n3t\napplication\nしており\nemc\nrx\n##oon\n384\nquick\n412\n15058\nwilson\nwing\nchapter\n##bug\nbeyond\n##cms\n##dar\n##oh\nzoom\ne2\ntrip\nsb\n##nba\nrcep\n342\naspx\nci\n080\ngc\ngnu\nめる\n##count\nadvanced\ndance\ndv\n##url\n##ging\n367\n8591\nam09\nshadow\nbattle\n346\n##ｉ\n##cia\n##という\nemily\n##のてす\n##tation\nhost\nff\ntechorz\nsars\n##mini\n##mporary\n##ering\nnc\n4200\n798\n##next\ncma\n##mbps\n##gas\n##ift\n##dot\n##ィ\n455\n##～17\namana\n##りの\n426\n##ros\nir\n00㎡1\n##eet\n##ible\n##↓\n710\nˋ▽ˊ\n##aka\ndcs\niq\n##ｖ\nl1\n##lor\nmaggie\n##011\n##iu\n588\n##～1\n830\n##gt\n1tb\narticles\ncreate\n##burg\n##iki\ndatabase\nfantasy\n##rex\n##cam\ndlc\ndean\n##you\nhard\npath\ngaming\nvictoria\nmaps\ncb\n##lee\n##itor\noverchicstoretvhome\nsystems\n##xt\n416\np3\nsarah\n760\n##nan\n407\n486\nx9\ninstall\nsecond\n626\n##ann\n##ph\n##rcle\n##nic\n860\n##nar\nec\n##とう\n768\nmetro\nchocolate\n##rian\n～4\n##table\n##しています\nskin\n##sn\n395\nmountain\n##0mm\ninparadise\n6m\n7x24\nib\n4800\n##jia\neeworld\ncreative\ng5\ng3\n357\nparker\necfa\nvillage\nからの\n18000\nsylvia\nサーヒス\nhbl\n##ques\n##onsored\n##x2\n##きます\n##v4\n##tein\nie6\n383\n##stack\n389\nver\n##ads\n##baby\nsound\nbbe\n##110\n##lone\n##uid\nads\n022\ngundam\n351\nthinkpad\n006\nscrum\nmatch\n##ave\nmems\n##470\n##oy\n##なりました\n##talk\nglass\nlamigo\nspan\n##eme\njob\n##a5\njay\nwade\nkde\n498\n##lace\nocean\ntvg\n##covery\n##r3\n##ners\n##rea\njunior\nthink\n##aine\ncover\n##ision\n##sia\n↓↓\n##bow\nmsi\n413\n458\n406\n##love\n711\n801\nsoft\nz2\n##pl\n456\n1840\nmobil\nmind\n##uy\n427\nnginx\n##oi\nめた\n##rr\n6221\n##mple\n##sson\n##ーシてす\n371\n##nts\n91tv\ncomhd\ncrv3000\n##uard\n1868\n397\ndeep\nlost\nfield\ngallery\n##bia\nrate\nspf\nredis\ntraction\n930\nicloud\n011\nなら\nfe\njose\n372\n##tory\ninto\nsohu\nfx\n899\n379\nkicstart2\n##hia\nすく\n##～3\n##sit\nra\n２４\n##walk\n##xure\n500g\n##pact\npacific\nxa\nnatural\ncarlo\n##250\n##walker\n1850\n##can\ncto\ngigi\n516\n##サー\npen\n##hoo\nob\nmatlab\n##ｂ\n##yy\n13913459\n##iti\nmango\n##bbs\nsense\nc5\noxford\n##ニア\nwalker\njennifer\n##ola\ncourse\n##bre\n701\n##pus\n##rder\nlucky\n075\n##ぁ\nivy\nなお\n##nia\nsotheby\nside\n##ugh\njoy\n##orage\n##ush\n##bat\n##dt\n364\nr9\n##2d\n##gio\n511\ncountry\nwear\n##lax\n##～7\n##moon\n393\nseven\nstudy\n411\n348\nlonzo\n8k\n##ェ\nevolution\n##イフ\n##kk\ngs\nkd\n##レス\narduino\n344\nb12\n##lux\narpg\n##rdon\ncook\n##x5\ndark\nfive\n##als\n##ida\nとても\nsign\n362\n##ちの\nsomething\n20mm\n##nda\n387\n##posted\nfresh\ntf\n1870\n422\ncam\n##mine\n##skip\n##form\n##ssion\neducation\n394\n##tee\ndyson\nstage\n##jie\nwant\n##night\nepson\npack\nあります\n##ppy\nテリヘル\n##█\nwd\n##eh\n##rence\nleft\n##lvin\ngolden\nmhz\ndiscovery\n##trix\n##n2\nloft\n##uch\n##dra\n##sse\nspeed\n～1\n1mdb\nsorry\nwelcome\n##urn\nwave\ngaga\n##lmer\nteddy\n##160\nトラックハック\nせよ\n611\n##f2016\n378\nrp\n##sha\nrar\n##あなたに\n##きた\n840\nholiday\n##ュー\n373\n074\n##vg\n##nos\n##rail\ngartner\ngi\n6p\n##dium\nkit\n488\nb3\neco\n##ろう\n20g\nsean\n##stone\nautocad\nnu\n##np\nf16\nwrite\n029\nm5\n##ias\nimages\natp\n##dk\nfsm\n504\n1350\nve\n52kb\n##xxx\n##のに\n##cake\n414\nunit\nlim\nru\n1v\n##ification\npublished\nangela\n16g\nanalytics\nak\n##ｑ\n##nel\ngmt\n##icon\nagain\n##₂\n##bby\nios11\n445\nかこさいます\nwaze\nいてす\n##ハ\n9985\n##ust\n##ティー\nframework\n##007\niptv\ndelete\n52sykb\ncl\nwwdc\n027\n30cm\n##fw\n##ての\n1389\n##xon\nbrandt\n##ses\n##dragon\ntc\nvetements\nanne\nmonte\nmodern\nofficial\n##へて\n##ere\n##nne\n##oud\nもちろん\n５０\netnews\n##a2\n##graphy\n421\n863\n##ちゃん\n444\n##rtex\n##てお\nl2\n##gma\nmount\nccd\nたと\narchive\nmorning\ntan\nddos\ne7\n##ホ\nday4\n##ウ\ngis\n453\nits\n495\nfactory\nbruce\npg\n##ito\nってくたさい\nguest\ncdma\n##lling\n536\nn3\nしかし\n3～4\nmega\neyes\nro\n１３\nwomen\ndac\nchurch\n##jun\nsingapore\n##facebook\n6991\nstarbucks\n##tos\n##stin\n##shine\nzen\n##mu\ntina\n20℃\n1893\n##たけて\n503\n465\nrequest\n##gence\nqt\n##っ\n1886\n347\n363\nq7\n##zzi\ndiary\n##tore\n409\n##ead\n468\ncst\n##osa\ncanada\nagent\nva\n##jiang\n##ちは\n##ーク\n##lam\nsg\n##nix\n##sday\n##よって\ng6\n##master\nbing\n##zl\ncharlie\n１６\n8mm\nnb40\n##ーン\nthai\n##ルフ\nln284ct\n##itz\n##2f\nbonnie\n##food\n##lent\noriginals\n##stro\n##lts\n418\n∟∣\n##bscribe\nchildren\nntd\nyesstyle\n##かも\nhmv\n##tment\nd5\n2cm\narts\nsms\n##pn\n##я\n##いい\ntopios9\n539\nlifestyle\nvirtual\n##ague\nxz\n##deo\nmuji\n024\nunt\n##nnis\n##ᅩ\nfaq1\n1884\n396\n##ette\nfly\n64㎡\nはしめまして\n441\ncurry\n##pop\nのこ\nrelease\n##←\n##◆◆\n##cast\n073\nありな\n500ml\n##ews\n5c\n##stle\nios7\n##ima\n787\ndog\nlenovo\n##r4\nroger\n013\ncbs\nvornado\n100m\n417\n##desk\n##クok\n##ald\n1867\n9595\n2900\n##van\noil\n##ｘ\nsome\nbreak\ncommon\n##jy\n##lines\ng7\ntwice\n419\nella\nnano\nbelle\nにこ\n##mes\n##self\n##note\njb\n##ことかてきます\nbenz\n##との\n##ova\n451\nsave\n##wing\n##ますのて\nkai\nりは\n##hua\n##rect\nrainer\n##unge\n448\n##0m\nadsl\n##かな\nguestname\n##uma\n##kins\n##zu\ntokichoi\n##price\ncounty\n##med\n##mus\nrmk\n391\naddress\nvm\nえて\nopenload\n##group\n##hin\n##iginal\namg\nurban\n##oz\njobs\nemi\n##public\nbeautiful\n##sch\nalbum\n##dden\n##bell\njerry\nworks\nhostel\nmiller\n##drive\n##rmin\n##１０\n376\nboot\n828\n##370\n##fx\n##cm～\n1885\n##nome\n##ctionary\n##oman\n##lish\n##cr\n##hm\n433\n##how\n432\nfrancis\nxi\nc919\nb5\nevernote\n##uc\nvga\n##3000\ncoupe\n##urg\n##cca\n##uality\n019\n6g\nれる\nmulti\n##また\n##ett\nem\nhey\n##ani\n##tax\n##rma\ninside\nthan\n740\nleonnhurt\n##jin\nict\nれた\nbird\nnotes\n200mm\nくの\n##dical\n##lli\nresult\n442\niu\nee\n438\nsmap\ngopro\n##last\nyin\npure\n998\n32g\nけた\n5kg\n##dan\n##rame\nmama\n##oot\nbean\nmarketing\n##hur\n2l\nbella\nsync\nxuite\n##ground\n515\ndiscuz\n##getrelax\n##ince\n##bay\n##5s\ncj\n##イス\ngmat\napt\n##pass\njing\n##rix\nc4\nrich\n##とても\nniusnews\n##ello\nbag\n770\n##eting\n##mobile\n１８\nculture\n015\n##のてすか\n377\n1020\narea\n##ience\n616\ndetails\ngp\nuniversal\nsilver\ndit\nはお\nprivate\nddd\nu11\nkanshu\n##ified\nfung\n##nny\ndx\n##520\ntai\n475\n023\n##fr\n##lean\n3s\n##pin\n429\n##rin\n25000\nly\nrick\n##bility\nusb3\nbanner\n##baru\n##gion\nmetal\ndt\nvdf\n1871\nkarl\nqualcomm\nbear\n1010\noldid\nian\njo\n##tors\npopulation\n##ernel\n1882\nmmorpg\n##mv\n##bike\n603\n##©\nww\nfriend\n##ager\nexhibition\n##del\n##pods\nfpx\nstructure\n##free\n##tings\nkl\n##rley\n##copyright\n##mma\ncalifornia\n3400\norange\nyoga\n4l\ncanmake\nhoney\n##anda\n##コメント\n595\nnikkie\n##ルハイト\ndhl\npublishing\n##mall\n##gnet\n20cm\n513\n##クセス\n##┅\ne88\n970\n##dog\nfishbase\n##!\n##\"\n###\n##$\n##%\n##&\n##'\n##(\n##)\n##*\n##+\n##,\n##-\n##.\n##/\n##:\n##;\n##<\n##=\n##>\n##?\n##@\n##[\n##\\\n##]\n##^\n##_\n##{\n##|\n##}\n##~\n##£\n##¤\n##¥\n##§\n##«\n##±\n##³\n##µ\n##·\n##¹\n##º\n##»\n##¼\n##ß\n##æ\n##÷\n##ø\n##đ\n##ŋ\n##ɔ\n##ə\n##ɡ\n##ʰ\n##ˇ\n##ˈ\n##ˊ\n##ˋ\n##ˍ\n##ː\n##˙\n##˚\n##ˢ\n##α\n##β\n##γ\n##δ\n##ε\n##η\n##θ\n##ι\n##κ\n##λ\n##μ\n##ν\n##ο\n##π\n##ρ\n##ς\n##σ\n##τ\n##υ\n##φ\n##χ\n##ψ\n##б\n##в\n##г\n##д\n##е\n##ж\n##з\n##к\n##л\n##м\n##н\n##о\n##п\n##р\n##с\n##т\n##у\n##ф\n##х\n##ц\n##ч\n##ш\n##ы\n##ь\n##і\n##ا\n##ب\n##ة\n##ت\n##د\n##ر\n##س\n##ع\n##ل\n##م\n##ن\n##ه\n##و\n##ي\n##۩\n##ก\n##ง\n##น\n##ม\n##ย\n##ร\n##อ\n##า\n##เ\n##๑\n##་\n##ღ\n##ᄀ\n##ᄁ\n##ᄂ\n##ᄃ\n##ᄅ\n##ᄆ\n##ᄇ\n##ᄈ\n##ᄉ\n##ᄋ\n##ᄌ\n##ᄎ\n##ᄏ\n##ᄐ\n##ᄑ\n##ᄒ\n##ᅢ\n##ᅣ\n##ᅥ\n##ᅦ\n##ᅧ\n##ᅨ\n##ᅪ\n##ᅬ\n##ᅭ\n##ᅮ\n##ᅯ\n##ᅲ\n##ᅳ\n##ᅴ\n##ᆷ\n##ᆸ\n##ᆺ\n##ᆻ\n##ᗜ\n##ᵃ\n##ᵉ\n##ᵍ\n##ᵏ\n##ᵐ\n##ᵒ\n##ᵘ\n##‖\n##„\n##†\n##•\n##‥\n##‧\n##\n##‰\n##′\n##″\n##‹\n##›\n##※\n##‿\n##⁄\n##ⁱ\n##⁺\n##ⁿ\n##₁\n##₃\n##₄\n##€\n##№\n##ⅰ\n##ⅱ\n##ⅲ\n##ⅳ\n##ⅴ\n##↔\n##↗\n##↘\n##⇒\n##∀\n##−\n##∕\n##∙\n##√\n##∞\n##∟\n##∠\n##∣\n##∩\n##∮\n##∶\n##∼\n##∽\n##≈\n##≒\n##≡\n##≤\n##≥\n##≦\n##≧\n##≪\n##≫\n##⊙\n##⋅\n##⋈\n##⋯\n##⌒\n##①\n##②\n##③\n##④\n##⑤\n##⑥\n##⑦\n##⑧\n##⑨\n##⑩\n##⑴\n##⑵\n##⑶\n##⑷\n##⑸\n##⒈\n##⒉\n##⒊\n##⒋\n##ⓒ\n##ⓔ\n##ⓘ\n##━\n##┃\n##┆\n##┊\n##┌\n##└\n##├\n##┣\n##═\n##║\n##╚\n##╞\n##╠\n##╭\n##╮\n##╯\n##╰\n##╱\n##╳\n##▂\n##▃\n##▅\n##▇\n##▉\n##▋\n##▌\n##▍\n##▎\n##□\n##▪\n##▫\n##▬\n##△\n##▶\n##►\n##▽\n##◇\n##◕\n##◠\n##◢\n##◤\n##☀\n##☕\n##☞\n##☺\n##☼\n##♀\n##♂\n##♠\n##♡\n##♣\n##♦\n##♫\n##♬\n##✈\n##✔\n##✕\n##✖\n##✦\n##✨\n##✪\n##✰\n##✿\n##❀\n##➜\n##➤\n##⦿\n##、\n##。\n##〃\n##々\n##〇\n##〈\n##〉\n##《\n##》\n##「\n##」\n##『\n##』\n##【\n##】\n##〓\n##〔\n##〕\n##〖\n##〗\n##〜\n##〝\n##〞\n##ぃ\n##ぇ\n##ぬ\n##ふ\n##ほ\n##む\n##ゃ\n##ゅ\n##ゆ\n##ょ\n##゜\n##ゝ\n##ァ\n##ゥ\n##エ\n##ォ\n##ケ\n##サ\n##セ\n##ソ\n##ッ\n##ニ\n##ヌ\n##ネ\n##ノ\n##ヘ\n##モ\n##ャ\n##ヤ\n##ュ\n##ユ\n##ョ\n##ヨ\n##ワ\n##ヲ\n##・\n##ヽ\n##ㄅ\n##ㄆ\n##ㄇ\n##ㄉ\n##ㄋ\n##ㄌ\n##ㄍ\n##ㄎ\n##ㄏ\n##ㄒ\n##ㄚ\n##ㄛ\n##ㄞ\n##ㄟ\n##ㄢ\n##ㄤ\n##ㄥ\n##ㄧ\n##ㄨ\n##ㆍ\n##㈦\n##㊣\n##㗎\n##一\n##丁\n##七\n##万\n##丈\n##三\n##上\n##下\n##不\n##与\n##丐\n##丑\n##专\n##且\n##丕\n##世\n##丘\n##丙\n##业\n##丛\n##东\n##丝\n##丞\n##丟\n##両\n##丢\n##两\n##严\n##並\n##丧\n##丨\n##个\n##丫\n##中\n##丰\n##串\n##临\n##丶\n##丸\n##丹\n##为\n##主\n##丼\n##丽\n##举\n##丿\n##乂\n##乃\n##久\n##么\n##义\n##之\n##乌\n##乍\n##乎\n##乏\n##乐\n##乒\n##乓\n##乔\n##乖\n##乗\n##乘\n##乙\n##乜\n##九\n##乞\n##也\n##习\n##乡\n##书\n##乩\n##买\n##乱\n##乳\n##乾\n##亀\n##亂\n##了\n##予\n##争\n##事\n##二\n##于\n##亏\n##云\n##互\n##五\n##井\n##亘\n##亙\n##亚\n##些\n##亜\n##亞\n##亟\n##亡\n##亢\n##交\n##亥\n##亦\n##产\n##亨\n##亩\n##享\n##京\n##亭\n##亮\n##亲\n##亳\n##亵\n##人\n##亿\n##什\n##仁\n##仃\n##仄\n##仅\n##仆\n##仇\n##今\n##介\n##仍\n##从\n##仏\n##仑\n##仓\n##仔\n##仕\n##他\n##仗\n##付\n##仙\n##仝\n##仞\n##仟\n##代\n##令\n##以\n##仨\n##仪\n##们\n##仮\n##仰\n##仲\n##件\n##价\n##任\n##份\n##仿\n##企\n##伉\n##伊\n##伍\n##伎\n##伏\n##伐\n##休\n##伕\n##众\n##优\n##伙\n##会\n##伝\n##伞\n##伟\n##传\n##伢\n##伤\n##伦\n##伪\n##伫\n##伯\n##估\n##伴\n##伶\n##伸\n##伺\n##似\n##伽\n##佃\n##但\n##佇\n##佈\n##位\n##低\n##住\n##佐\n##佑\n##体\n##佔\n##何\n##佗\n##佘\n##余\n##佚\n##佛\n##作\n##佝\n##佞\n##佟\n##你\n##佢\n##佣\n##佤\n##佥\n##佩\n##佬\n##佯\n##佰\n##佳\n##併\n##佶\n##佻\n##佼\n##使\n##侃\n##侄\n##來\n##侈\n##例\n##侍\n##侏\n##侑\n##侖\n##侗\n##供\n##依\n##侠\n##価\n##侣\n##侥\n##侦\n##侧\n##侨\n##侬\n##侮\n##侯\n##侵\n##侶\n##侷\n##便\n##係\n##促\n##俄\n##俊\n##俎\n##俏\n##俐\n##俑\n##俗\n##俘\n##俚\n##保\n##俞\n##俟\n##俠\n##信\n##俨\n##俩\n##俪\n##俬\n##俭\n##修\n##俯\n##俱\n##俳\n##俸\n##俺\n##俾\n##倆\n##倉\n##個\n##倌\n##倍\n##倏\n##們\n##倒\n##倔\n##倖\n##倘\n##候\n##倚\n##倜\n##借\n##倡\n##値\n##倦\n##倩\n##倪\n##倫\n##倬\n##倭\n##倶\n##债\n##值\n##倾\n##偃\n##假\n##偈\n##偉\n##偌\n##偎\n##偏\n##偕\n##做\n##停\n##健\n##側\n##偵\n##偶\n##偷\n##偻\n##偽\n##偿\n##傀\n##傅\n##傍\n##傑\n##傘\n##備\n##傚\n##傢\n##傣\n##傥\n##储\n##傩\n##催\n##傭\n##傲\n##傳\n##債\n##傷\n##傻\n##傾\n##僅\n##働\n##像\n##僑\n##僕\n##僖\n##僚\n##僥\n##僧\n##僭\n##僮\n##僱\n##僵\n##價\n##僻\n##儀\n##儂\n##億\n##儆\n##儉\n##儋\n##儒\n##儕\n##儘\n##償\n##儡\n##優\n##儲\n##儷\n##儼\n##儿\n##兀\n##允\n##元\n##兄\n##充\n##兆\n##兇\n##先\n##光\n##克\n##兌\n##免\n##児\n##兑\n##兒\n##兔\n##兖\n##党\n##兜\n##兢\n##入\n##內\n##全\n##兩\n##八\n##公\n##六\n##兮\n##兰\n##共\n##兲\n##关\n##兴\n##兵\n##其\n##具\n##典\n##兹\n##养\n##兼\n##兽\n##冀\n##内\n##円\n##冇\n##冈\n##冉\n##冊\n##册\n##再\n##冏\n##冒\n##冕\n##冗\n##写\n##军\n##农\n##冠\n##冢\n##冤\n##冥\n##冨\n##冪\n##冬\n##冯\n##冰\n##冲\n##决\n##况\n##冶\n##冷\n##冻\n##冼\n##冽\n##冾\n##净\n##凄\n##准\n##凇\n##凈\n##凉\n##凋\n##凌\n##凍\n##减\n##凑\n##凛\n##凜\n##凝\n##几\n##凡\n##凤\n##処\n##凪\n##凭\n##凯\n##凰\n##凱\n##凳\n##凶\n##凸\n##凹\n##出\n##击\n##函\n##凿\n##刀\n##刁\n##刃\n##分\n##切\n##刈\n##刊\n##刍\n##刎\n##刑\n##划\n##列\n##刘\n##则\n##刚\n##创\n##初\n##删\n##判\n##別\n##刨\n##利\n##刪\n##别\n##刮\n##到\n##制\n##刷\n##券\n##刹\n##刺\n##刻\n##刽\n##剁\n##剂\n##剃\n##則\n##剉\n##削\n##剋\n##剌\n##前\n##剎\n##剐\n##剑\n##剔\n##剖\n##剛\n##剜\n##剝\n##剣\n##剤\n##剥\n##剧\n##剩\n##剪\n##副\n##割\n##創\n##剷\n##剽\n##剿\n##劃\n##劇\n##劈\n##劉\n##劊\n##劍\n##劏\n##劑\n##力\n##劝\n##办\n##功\n##加\n##务\n##劣\n##动\n##助\n##努\n##劫\n##劭\n##励\n##劲\n##劳\n##労\n##劵\n##効\n##劾\n##势\n##勁\n##勃\n##勇\n##勉\n##勋\n##勐\n##勒\n##動\n##勖\n##勘\n##務\n##勛\n##勝\n##勞\n##募\n##勢\n##勤\n##勧\n##勳\n##勵\n##勸\n##勺\n##勻\n##勾\n##勿\n##匀\n##包\n##匆\n##匈\n##匍\n##匐\n##匕\n##化\n##北\n##匙\n##匝\n##匠\n##匡\n##匣\n##匪\n##匮\n##匯\n##匱\n##匹\n##区\n##医\n##匾\n##匿\n##區\n##十\n##千\n##卅\n##升\n##午\n##卉\n##半\n##卍\n##华\n##协\n##卑\n##卒\n##卓\n##協\n##单\n##卖\n##南\n##単\n##博\n##卜\n##卞\n##卟\n##占\n##卡\n##卢\n##卤\n##卦\n##卧\n##卫\n##卮\n##卯\n##印\n##危\n##即\n##却\n##卵\n##卷\n##卸\n##卻\n##卿\n##厂\n##厄\n##厅\n##历\n##厉\n##压\n##厌\n##厕\n##厘\n##厚\n##厝\n##原\n##厢\n##厥\n##厦\n##厨\n##厩\n##厭\n##厮\n##厲\n##厳\n##去\n##县\n##叁\n##参\n##參\n##又\n##叉\n##及\n##友\n##双\n##反\n##収\n##发\n##叔\n##取\n##受\n##变\n##叙\n##叛\n##叟\n##叠\n##叡\n##叢\n##口\n##古\n##句\n##另\n##叨\n##叩\n##只\n##叫\n##召\n##叭\n##叮\n##可\n##台\n##叱\n##史\n##右\n##叵\n##叶\n##号\n##司\n##叹\n##叻\n##叼\n##叽\n##吁\n##吃\n##各\n##吆\n##合\n##吉\n##吊\n##吋\n##同\n##名\n##后\n##吏\n##吐\n##向\n##吒\n##吓\n##吕\n##吖\n##吗\n##君\n##吝\n##吞\n##吟\n##吠\n##吡\n##否\n##吧\n##吨\n##吩\n##含\n##听\n##吭\n##吮\n##启\n##吱\n##吳\n##吴\n##吵\n##吶\n##吸\n##吹\n##吻\n##吼\n##吽\n##吾\n##呀\n##呂\n##呃\n##呆\n##呈\n##告\n##呋\n##呎\n##呐\n##呓\n##呕\n##呗\n##员\n##呛\n##呜\n##呢\n##呤\n##呦\n##周\n##呱\n##呲\n##味\n##呵\n##呷\n##呸\n##呻\n##呼\n##命\n##咀\n##咁\n##咂\n##咄\n##咆\n##咋\n##和\n##咎\n##咏\n##咐\n##咒\n##咔\n##咕\n##咖\n##咗\n##咘\n##咙\n##咚\n##咛\n##咣\n##咤\n##咦\n##咧\n##咨\n##咩\n##咪\n##咫\n##咬\n##咭\n##咯\n##咱\n##咲\n##咳\n##咸\n##咻\n##咽\n##咿\n##哀\n##品\n##哂\n##哄\n##哆\n##哇\n##哈\n##哉\n##哋\n##哌\n##响\n##哎\n##哏\n##哐\n##哑\n##哒\n##哔\n##哗\n##哟\n##員\n##哥\n##哦\n##哧\n##哨\n##哩\n##哪\n##哭\n##哮\n##哲\n##哺\n##哼\n##哽\n##唁\n##唄\n##唆\n##唇\n##唉\n##唏\n##唐\n##唑\n##唔\n##唠\n##唤\n##唧\n##唬\n##售\n##唯\n##唰\n##唱\n##唳\n##唷\n##唸\n##唾\n##啃\n##啄\n##商\n##啉\n##啊\n##問\n##啓\n##啕\n##啖\n##啜\n##啞\n##啟\n##啡\n##啤\n##啥\n##啦\n##啧\n##啪\n##啫\n##啬\n##啮\n##啰\n##啱\n##啲\n##啵\n##啶\n##啷\n##啸\n##啻\n##啼\n##啾\n##喀\n##喂\n##喃\n##善\n##喆\n##喇\n##喉\n##喊\n##喋\n##喎\n##喏\n##喔\n##喘\n##喙\n##喚\n##喜\n##喝\n##喟\n##喧\n##喪\n##喫\n##喬\n##單\n##喰\n##喱\n##喲\n##喳\n##喵\n##営\n##喷\n##喹\n##喺\n##喻\n##喽\n##嗅\n##嗆\n##嗇\n##嗎\n##嗑\n##嗒\n##嗓\n##嗔\n##嗖\n##嗚\n##嗜\n##嗝\n##嗟\n##嗡\n##嗣\n##嗤\n##嗦\n##嗨\n##嗪\n##嗬\n##嗯\n##嗰\n##嗲\n##嗳\n##嗶\n##嗷\n##嗽\n##嘀\n##嘅\n##嘆\n##嘈\n##嘉\n##嘌\n##嘍\n##嘎\n##嘔\n##嘖\n##嘗\n##嘘\n##嘚\n##嘛\n##嘜\n##嘞\n##嘟\n##嘢\n##嘣\n##嘤\n##嘧\n##嘩\n##嘭\n##嘮\n##嘯\n##嘰\n##嘱\n##嘲\n##嘴\n##嘶\n##嘸\n##嘹\n##嘻\n##嘿\n##噁\n##噌\n##噎\n##噓\n##噔\n##噗\n##噙\n##噜\n##噠\n##噢\n##噤\n##器\n##噩\n##噪\n##噬\n##噱\n##噴\n##噶\n##噸\n##噹\n##噻\n##噼\n##嚀\n##嚇\n##嚎\n##嚏\n##嚐\n##嚓\n##嚕\n##嚟\n##嚣\n##嚥\n##嚨\n##嚮\n##嚴\n##嚷\n##嚼\n##囂\n##囉\n##囊\n##囍\n##囑\n##囔\n##囗\n##囚\n##四\n##囝\n##回\n##囟\n##因\n##囡\n##团\n##団\n##囤\n##囧\n##囪\n##囫\n##园\n##困\n##囱\n##囲\n##図\n##围\n##囹\n##固\n##国\n##图\n##囿\n##圃\n##圄\n##圆\n##圈\n##國\n##圍\n##圏\n##園\n##圓\n##圖\n##團\n##圜\n##土\n##圣\n##圧\n##在\n##圩\n##圭\n##地\n##圳\n##场\n##圻\n##圾\n##址\n##坂\n##均\n##坊\n##坍\n##坎\n##坏\n##坐\n##坑\n##块\n##坚\n##坛\n##坝\n##坞\n##坟\n##坠\n##坡\n##坤\n##坦\n##坨\n##坪\n##坯\n##坳\n##坵\n##坷\n##垂\n##垃\n##垄\n##型\n##垒\n##垚\n##垛\n##垠\n##垢\n##垣\n##垦\n##垩\n##垫\n##垭\n##垮\n##垵\n##埂\n##埃\n##埋\n##城\n##埔\n##埕\n##埗\n##域\n##埠\n##埤\n##埵\n##執\n##埸\n##培\n##基\n##埼\n##堀\n##堂\n##堃\n##堅\n##堆\n##堇\n##堑\n##堕\n##堙\n##堡\n##堤\n##堪\n##堯\n##堰\n##報\n##場\n##堵\n##堺\n##堿\n##塊\n##塌\n##塑\n##塔\n##塗\n##塘\n##塚\n##塞\n##塢\n##塩\n##填\n##塬\n##塭\n##塵\n##塾\n##墀\n##境\n##墅\n##墉\n##墊\n##墒\n##墓\n##増\n##墘\n##墙\n##墜\n##增\n##墟\n##墨\n##墩\n##墮\n##墳\n##墻\n##墾\n##壁\n##壅\n##壆\n##壇\n##壊\n##壑\n##壓\n##壕\n##壘\n##壞\n##壟\n##壢\n##壤\n##壩\n##士\n##壬\n##壮\n##壯\n##声\n##売\n##壳\n##壶\n##壹\n##壺\n##壽\n##处\n##备\n##変\n##复\n##夏\n##夔\n##夕\n##外\n##夙\n##多\n##夜\n##够\n##夠\n##夢\n##夥\n##大\n##天\n##太\n##夫\n##夭\n##央\n##夯\n##失\n##头\n##夷\n##夸\n##夹\n##夺\n##夾\n##奂\n##奄\n##奇\n##奈\n##奉\n##奋\n##奎\n##奏\n##奐\n##契\n##奔\n##奕\n##奖\n##套\n##奘\n##奚\n##奠\n##奢\n##奥\n##奧\n##奪\n##奬\n##奮\n##女\n##奴\n##奶\n##奸\n##她\n##好\n##如\n##妃\n##妄\n##妆\n##妇\n##妈\n##妊\n##妍\n##妒\n##妓\n##妖\n##妘\n##妙\n##妝\n##妞\n##妣\n##妤\n##妥\n##妨\n##妩\n##妪\n##妮\n##妲\n##妳\n##妹\n##妻\n##妾\n##姆\n##姉\n##姊\n##始\n##姍\n##姐\n##姑\n##姒\n##姓\n##委\n##姗\n##姚\n##姜\n##姝\n##姣\n##姥\n##姦\n##姨\n##姪\n##姫\n##姬\n##姹\n##姻\n##姿\n##威\n##娃\n##娄\n##娅\n##娆\n##娇\n##娉\n##娑\n##娓\n##娘\n##娛\n##娜\n##娟\n##娠\n##娣\n##娥\n##娩\n##娱\n##娲\n##娴\n##娶\n##娼\n##婀\n##婁\n##婆\n##婉\n##婊\n##婕\n##婚\n##婢\n##婦\n##婧\n##婪\n##婭\n##婴\n##婵\n##婶\n##婷\n##婺\n##婿\n##媒\n##媚\n##媛\n##媞\n##媧\n##媲\n##媳\n##媽\n##媾\n##嫁\n##嫂\n##嫉\n##嫌\n##嫑\n##嫔\n##嫖\n##嫘\n##嫚\n##嫡\n##嫣\n##嫦\n##嫩\n##嫲\n##嫵\n##嫻\n##嬅\n##嬉\n##嬌\n##嬗\n##嬛\n##嬢\n##嬤\n##嬪\n##嬰\n##嬴\n##嬷\n##嬸\n##嬿\n##孀\n##孃\n##子\n##孑\n##孔\n##孕\n##孖\n##字\n##存\n##孙\n##孚\n##孛\n##孜\n##孝\n##孟\n##孢\n##季\n##孤\n##学\n##孩\n##孪\n##孫\n##孬\n##孰\n##孱\n##孳\n##孵\n##學\n##孺\n##孽\n##孿\n##宁\n##它\n##宅\n##宇\n##守\n##安\n##宋\n##完\n##宏\n##宓\n##宕\n##宗\n##官\n##宙\n##定\n##宛\n##宜\n##宝\n##实\n##実\n##宠\n##审\n##客\n##宣\n##室\n##宥\n##宦\n##宪\n##宫\n##宮\n##宰\n##害\n##宴\n##宵\n##家\n##宸\n##容\n##宽\n##宾\n##宿\n##寂\n##寄\n##寅\n##密\n##寇\n##富\n##寐\n##寒\n##寓\n##寛\n##寝\n##寞\n##察\n##寡\n##寢\n##寥\n##實\n##寧\n##寨\n##審\n##寫\n##寬\n##寮\n##寰\n##寵\n##寶\n##寸\n##对\n##寺\n##寻\n##导\n##対\n##寿\n##封\n##専\n##射\n##将\n##將\n##專\n##尉\n##尊\n##尋\n##對\n##導\n##小\n##少\n##尔\n##尕\n##尖\n##尘\n##尚\n##尝\n##尤\n##尧\n##尬\n##就\n##尴\n##尷\n##尸\n##尹\n##尺\n##尻\n##尼\n##尽\n##尾\n##尿\n##局\n##屁\n##层\n##屄\n##居\n##屆\n##屈\n##屉\n##届\n##屋\n##屌\n##屍\n##屎\n##屏\n##屐\n##屑\n##展\n##屜\n##属\n##屠\n##屡\n##屢\n##層\n##履\n##屬\n##屯\n##山\n##屹\n##屿\n##岀\n##岁\n##岂\n##岌\n##岐\n##岑\n##岔\n##岖\n##岗\n##岘\n##岙\n##岚\n##岛\n##岡\n##岩\n##岫\n##岬\n##岭\n##岱\n##岳\n##岷\n##岸\n##峇\n##峋\n##峒\n##峙\n##峡\n##峤\n##峥\n##峦\n##峨\n##峪\n##峭\n##峯\n##峰\n##峴\n##島\n##峻\n##峽\n##崁\n##崂\n##崆\n##崇\n##崎\n##崑\n##崔\n##崖\n##崗\n##崙\n##崛\n##崧\n##崩\n##崭\n##崴\n##崽\n##嵇\n##嵊\n##嵋\n##嵌\n##嵐\n##嵘\n##嵩\n##嵬\n##嵯\n##嶂\n##嶄\n##嶇\n##嶋\n##嶙\n##嶺\n##嶼\n##嶽\n##巅\n##巍\n##巒\n##巔\n##巖\n##川\n##州\n##巡\n##巢\n##工\n##左\n##巧\n##巨\n##巩\n##巫\n##差\n##己\n##已\n##巳\n##巴\n##巷\n##巻\n##巽\n##巾\n##巿\n##币\n##市\n##布\n##帅\n##帆\n##师\n##希\n##帐\n##帑\n##帕\n##帖\n##帘\n##帚\n##帛\n##帜\n##帝\n##帥\n##带\n##帧\n##師\n##席\n##帮\n##帯\n##帰\n##帳\n##帶\n##帷\n##常\n##帼\n##帽\n##幀\n##幂\n##幄\n##幅\n##幌\n##幔\n##幕\n##幟\n##幡\n##幢\n##幣\n##幫\n##干\n##平\n##年\n##并\n##幸\n##幹\n##幺\n##幻\n##幼\n##幽\n##幾\n##广\n##庁\n##広\n##庄\n##庆\n##庇\n##床\n##序\n##庐\n##库\n##应\n##底\n##庖\n##店\n##庙\n##庚\n##府\n##庞\n##废\n##庠\n##度\n##座\n##庫\n##庭\n##庵\n##庶\n##康\n##庸\n##庹\n##庾\n##廁\n##廂\n##廃\n##廈\n##廉\n##廊\n##廓\n##廖\n##廚\n##廝\n##廟\n##廠\n##廢\n##廣\n##廬\n##廳\n##延\n##廷\n##建\n##廿\n##开\n##弁\n##异\n##弃\n##弄\n##弈\n##弊\n##弋\n##式\n##弑\n##弒\n##弓\n##弔\n##引\n##弗\n##弘\n##弛\n##弟\n##张\n##弥\n##弦\n##弧\n##弩\n##弭\n##弯\n##弱\n##張\n##強\n##弹\n##强\n##弼\n##弾\n##彅\n##彆\n##彈\n##彌\n##彎\n##归\n##当\n##录\n##彗\n##彙\n##彝\n##形\n##彤\n##彥\n##彦\n##彧\n##彩\n##彪\n##彫\n##彬\n##彭\n##彰\n##影\n##彷\n##役\n##彻\n##彼\n##彿\n##往\n##征\n##径\n##待\n##徇\n##很\n##徉\n##徊\n##律\n##後\n##徐\n##徑\n##徒\n##従\n##徕\n##得\n##徘\n##徙\n##徜\n##從\n##徠\n##御\n##徨\n##復\n##循\n##徬\n##微\n##徳\n##徴\n##徵\n##德\n##徹\n##徼\n##徽\n##心\n##必\n##忆\n##忌\n##忍\n##忏\n##忐\n##忑\n##忒\n##忖\n##志\n##忘\n##忙\n##応\n##忠\n##忡\n##忤\n##忧\n##忪\n##快\n##忱\n##念\n##忻\n##忽\n##忿\n##怀\n##态\n##怂\n##怅\n##怆\n##怎\n##怏\n##怒\n##怔\n##怕\n##怖\n##怙\n##怜\n##思\n##怠\n##怡\n##急\n##怦\n##性\n##怨\n##怪\n##怯\n##怵\n##总\n##怼\n##恁\n##恃\n##恆\n##恋\n##恍\n##恐\n##恒\n##恕\n##恙\n##恚\n##恢\n##恣\n##恤\n##恥\n##恨\n##恩\n##恪\n##恫\n##恬\n##恭\n##息\n##恰\n##恳\n##恵\n##恶\n##恸\n##恺\n##恻\n##恼\n##恿\n##悄\n##悅\n##悉\n##悌\n##悍\n##悔\n##悖\n##悚\n##悟\n##悠\n##患\n##悦\n##您\n##悩\n##悪\n##悬\n##悯\n##悱\n##悲\n##悴\n##悵\n##悶\n##悸\n##悻\n##悼\n##悽\n##情\n##惆\n##惇\n##惊\n##惋\n##惑\n##惕\n##惘\n##惚\n##惜\n##惟\n##惠\n##惡\n##惦\n##惧\n##惨\n##惩\n##惫\n##惬\n##惭\n##惮\n##惯\n##惰\n##惱\n##想\n##惴\n##惶\n##惹\n##惺\n##愁\n##愆\n##愈\n##愉\n##愍\n##意\n##愕\n##愚\n##愛\n##愜\n##感\n##愣\n##愤\n##愧\n##愫\n##愷\n##愿\n##慄\n##慈\n##態\n##慌\n##慎\n##慑\n##慕\n##慘\n##慚\n##慟\n##慢\n##慣\n##慧\n##慨\n##慫\n##慮\n##慰\n##慳\n##慵\n##慶\n##慷\n##慾\n##憂\n##憊\n##憋\n##憎\n##憐\n##憑\n##憔\n##憚\n##憤\n##憧\n##憨\n##憩\n##憫\n##憬\n##憲\n##憶\n##憾\n##懂\n##懇\n##懈\n##應\n##懊\n##懋\n##懑\n##懒\n##懦\n##懲\n##懵\n##懶\n##懷\n##懸\n##懺\n##懼\n##懾\n##懿\n##戀\n##戈\n##戊\n##戌\n##戍\n##戎\n##戏\n##成\n##我\n##戒\n##戕\n##或\n##战\n##戚\n##戛\n##戟\n##戡\n##戦\n##截\n##戬\n##戮\n##戰\n##戲\n##戳\n##戴\n##戶\n##户\n##戸\n##戻\n##戾\n##房\n##所\n##扁\n##扇\n##扈\n##扉\n##手\n##才\n##扎\n##扑\n##扒\n##打\n##扔\n##払\n##托\n##扛\n##扣\n##扦\n##执\n##扩\n##扪\n##扫\n##扬\n##扭\n##扮\n##扯\n##扰\n##扱\n##扳\n##扶\n##批\n##扼\n##找\n##承\n##技\n##抄\n##抉\n##把\n##抑\n##抒\n##抓\n##投\n##抖\n##抗\n##折\n##抚\n##抛\n##抜\n##択\n##抟\n##抠\n##抡\n##抢\n##护\n##报\n##抨\n##披\n##抬\n##抱\n##抵\n##抹\n##押\n##抽\n##抿\n##拂\n##拄\n##担\n##拆\n##拇\n##拈\n##拉\n##拋\n##拌\n##拍\n##拎\n##拐\n##拒\n##拓\n##拔\n##拖\n##拗\n##拘\n##拙\n##拚\n##招\n##拜\n##拟\n##拡\n##拢\n##拣\n##拥\n##拦\n##拧\n##拨\n##择\n##括\n##拭\n##拮\n##拯\n##拱\n##拳\n##拴\n##拷\n##拼\n##拽\n##拾\n##拿\n##持\n##挂\n##指\n##挈\n##按\n##挎\n##挑\n##挖\n##挙\n##挚\n##挛\n##挝\n##挞\n##挟\n##挠\n##挡\n##挣\n##挤\n##挥\n##挨\n##挪\n##挫\n##振\n##挲\n##挹\n##挺\n##挽\n##挾\n##捂\n##捅\n##捆\n##捉\n##捋\n##捌\n##捍\n##捎\n##捏\n##捐\n##捕\n##捞\n##损\n##捡\n##换\n##捣\n##捧\n##捨\n##捩\n##据\n##捱\n##捲\n##捶\n##捷\n##捺\n##捻\n##掀\n##掂\n##掃\n##掇\n##授\n##掉\n##掌\n##掏\n##掐\n##排\n##掖\n##掘\n##掙\n##掛\n##掠\n##採\n##探\n##掣\n##接\n##控\n##推\n##掩\n##措\n##掬\n##掰\n##掲\n##掳\n##掴\n##掷\n##掸\n##掺\n##揀\n##揃\n##揄\n##揆\n##揉\n##揍\n##描\n##提\n##插\n##揖\n##揚\n##換\n##握\n##揣\n##揩\n##揪\n##揭\n##揮\n##援\n##揶\n##揸\n##揹\n##揽\n##搀\n##搁\n##搂\n##搅\n##損\n##搏\n##搐\n##搓\n##搔\n##搖\n##搗\n##搜\n##搞\n##搡\n##搪\n##搬\n##搭\n##搵\n##搶\n##携\n##搽\n##摀\n##摁\n##摄\n##摆\n##摇\n##摈\n##摊\n##摒\n##摔\n##摘\n##摞\n##摟\n##摧\n##摩\n##摯\n##摳\n##摸\n##摹\n##摺\n##摻\n##撂\n##撃\n##撅\n##撇\n##撈\n##撐\n##撑\n##撒\n##撓\n##撕\n##撚\n##撞\n##撤\n##撥\n##撩\n##撫\n##撬\n##播\n##撮\n##撰\n##撲\n##撵\n##撷\n##撸\n##撻\n##撼\n##撿\n##擀\n##擁\n##擂\n##擄\n##擅\n##擇\n##擊\n##擋\n##操\n##擎\n##擒\n##擔\n##擘\n##據\n##擞\n##擠\n##擡\n##擢\n##擦\n##擬\n##擰\n##擱\n##擲\n##擴\n##擷\n##擺\n##擼\n##擾\n##攀\n##攏\n##攒\n##攔\n##攘\n##攙\n##攜\n##攝\n##攞\n##攢\n##攣\n##攤\n##攥\n##攪\n##攫\n##攬\n##支\n##收\n##攸\n##改\n##攻\n##放\n##政\n##故\n##效\n##敌\n##敍\n##敎\n##敏\n##救\n##敕\n##敖\n##敗\n##敘\n##教\n##敛\n##敝\n##敞\n##敢\n##散\n##敦\n##敬\n##数\n##敲\n##整\n##敵\n##敷\n##數\n##斂\n##斃\n##文\n##斋\n##斌\n##斎\n##斐\n##斑\n##斓\n##斗\n##料\n##斛\n##斜\n##斟\n##斡\n##斤\n##斥\n##斧\n##斩\n##斫\n##斬\n##断\n##斯\n##新\n##斷\n##方\n##於\n##施\n##旁\n##旃\n##旅\n##旋\n##旌\n##旎\n##族\n##旖\n##旗\n##无\n##既\n##日\n##旦\n##旧\n##旨\n##早\n##旬\n##旭\n##旮\n##旱\n##时\n##旷\n##旺\n##旻\n##昀\n##昂\n##昆\n##昇\n##昉\n##昊\n##昌\n##明\n##昏\n##易\n##昔\n##昕\n##昙\n##星\n##映\n##春\n##昧\n##昨\n##昭\n##是\n##昱\n##昴\n##昵\n##昶\n##昼\n##显\n##晁\n##時\n##晃\n##晉\n##晋\n##晌\n##晏\n##晒\n##晓\n##晔\n##晕\n##晖\n##晗\n##晚\n##晝\n##晞\n##晟\n##晤\n##晦\n##晨\n##晩\n##普\n##景\n##晰\n##晴\n##晶\n##晷\n##智\n##晾\n##暂\n##暄\n##暇\n##暈\n##暉\n##暌\n##暐\n##暑\n##暖\n##暗\n##暝\n##暢\n##暧\n##暨\n##暫\n##暮\n##暱\n##暴\n##暸\n##暹\n##曄\n##曆\n##曇\n##曉\n##曖\n##曙\n##曜\n##曝\n##曠\n##曦\n##曬\n##曰\n##曲\n##曳\n##更\n##書\n##曹\n##曼\n##曾\n##替\n##最\n##會\n##月\n##有\n##朋\n##服\n##朐\n##朔\n##朕\n##朗\n##望\n##朝\n##期\n##朦\n##朧\n##木\n##未\n##末\n##本\n##札\n##朮\n##术\n##朱\n##朴\n##朵\n##机\n##朽\n##杀\n##杂\n##权\n##杆\n##杈\n##杉\n##李\n##杏\n##材\n##村\n##杓\n##杖\n##杜\n##杞\n##束\n##杠\n##条\n##来\n##杨\n##杭\n##杯\n##杰\n##東\n##杳\n##杵\n##杷\n##杼\n##松\n##板\n##极\n##构\n##枇\n##枉\n##枋\n##析\n##枕\n##林\n##枚\n##果\n##枝\n##枢\n##枣\n##枪\n##枫\n##枭\n##枯\n##枰\n##枱\n##枳\n##架\n##枷\n##枸\n##柄\n##柏\n##某\n##柑\n##柒\n##染\n##柔\n##柘\n##柚\n##柜\n##柞\n##柠\n##柢\n##查\n##柩\n##柬\n##柯\n##柱\n##柳\n##柴\n##柵\n##査\n##柿\n##栀\n##栃\n##栄\n##栅\n##标\n##栈\n##栉\n##栋\n##栎\n##栏\n##树\n##栓\n##栖\n##栗\n##校\n##栩\n##株\n##样\n##核\n##根\n##格\n##栽\n##栾\n##桀\n##桁\n##桂\n##桃\n##桅\n##框\n##案\n##桉\n##桌\n##桎\n##桐\n##桑\n##桓\n##桔\n##桜\n##桠\n##桡\n##桢\n##档\n##桥\n##桦\n##桧\n##桨\n##桩\n##桶\n##桿\n##梁\n##梅\n##梆\n##梏\n##梓\n##梗\n##條\n##梟\n##梢\n##梦\n##梧\n##梨\n##梭\n##梯\n##械\n##梳\n##梵\n##梶\n##检\n##棂\n##棄\n##棉\n##棋\n##棍\n##棒\n##棕\n##棗\n##棘\n##棚\n##棟\n##棠\n##棣\n##棧\n##森\n##棱\n##棲\n##棵\n##棹\n##棺\n##椁\n##椅\n##椋\n##植\n##椎\n##椒\n##検\n##椪\n##椭\n##椰\n##椹\n##椽\n##椿\n##楂\n##楊\n##楓\n##楔\n##楚\n##楝\n##楞\n##楠\n##楣\n##楨\n##楫\n##業\n##楮\n##極\n##楷\n##楸\n##楹\n##楼\n##楽\n##概\n##榄\n##榆\n##榈\n##榉\n##榔\n##榕\n##榖\n##榛\n##榜\n##榨\n##榫\n##榭\n##榮\n##榱\n##榴\n##榷\n##榻\n##槁\n##槃\n##構\n##槌\n##槍\n##槎\n##槐\n##槓\n##様\n##槛\n##槟\n##槤\n##槭\n##槲\n##槳\n##槻\n##槽\n##槿\n##樁\n##樂\n##樊\n##樑\n##樓\n##標\n##樞\n##樟\n##模\n##樣\n##権\n##横\n##樫\n##樯\n##樱\n##樵\n##樸\n##樹\n##樺\n##樽\n##樾\n##橄\n##橇\n##橋\n##橐\n##橘\n##橙\n##機\n##橡\n##橢\n##橫\n##橱\n##橹\n##橼\n##檀\n##檄\n##檎\n##檐\n##檔\n##檗\n##檜\n##檢\n##檬\n##檯\n##檳\n##檸\n##檻\n##櫃\n##櫚\n##櫛\n##櫥\n##櫸\n##櫻\n##欄\n##權\n##欒\n##欖\n##欠\n##次\n##欢\n##欣\n##欧\n##欲\n##欸\n##欺\n##欽\n##款\n##歆\n##歇\n##歉\n##歌\n##歎\n##歐\n##歓\n##歙\n##歛\n##歡\n##止\n##正\n##此\n##步\n##武\n##歧\n##歩\n##歪\n##歯\n##歲\n##歳\n##歴\n##歷\n##歸\n##歹\n##死\n##歼\n##殁\n##殃\n##殆\n##殇\n##殉\n##殊\n##残\n##殒\n##殓\n##殖\n##殘\n##殞\n##殡\n##殤\n##殭\n##殯\n##殲\n##殴\n##段\n##殷\n##殺\n##殼\n##殿\n##毀\n##毁\n##毂\n##毅\n##毆\n##毋\n##母\n##毎\n##每\n##毒\n##毓\n##比\n##毕\n##毗\n##毘\n##毙\n##毛\n##毡\n##毫\n##毯\n##毽\n##氈\n##氏\n##氐\n##民\n##氓\n##气\n##氖\n##気\n##氙\n##氛\n##氟\n##氡\n##氢\n##氣\n##氤\n##氦\n##氧\n##氨\n##氪\n##氫\n##氮\n##氯\n##氰\n##氲\n##水\n##氷\n##永\n##氹\n##氾\n##汀\n##汁\n##求\n##汆\n##汇\n##汉\n##汎\n##汐\n##汕\n##汗\n##汙\n##汛\n##汝\n##汞\n##江\n##池\n##污\n##汤\n##汨\n##汩\n##汪\n##汰\n##汲\n##汴\n##汶\n##汹\n##決\n##汽\n##汾\n##沁\n##沂\n##沃\n##沅\n##沈\n##沉\n##沌\n##沏\n##沐\n##沒\n##沓\n##沖\n##沙\n##沛\n##沟\n##没\n##沢\n##沣\n##沥\n##沦\n##沧\n##沪\n##沫\n##沭\n##沮\n##沱\n##河\n##沸\n##油\n##治\n##沼\n##沽\n##沾\n##沿\n##況\n##泄\n##泉\n##泊\n##泌\n##泓\n##法\n##泗\n##泛\n##泞\n##泠\n##泡\n##波\n##泣\n##泥\n##注\n##泪\n##泫\n##泮\n##泯\n##泰\n##泱\n##泳\n##泵\n##泷\n##泸\n##泻\n##泼\n##泽\n##泾\n##洁\n##洄\n##洋\n##洒\n##洗\n##洙\n##洛\n##洞\n##津\n##洩\n##洪\n##洮\n##洱\n##洲\n##洵\n##洶\n##洸\n##洹\n##活\n##洼\n##洽\n##派\n##流\n##浃\n##浄\n##浅\n##浆\n##浇\n##浊\n##测\n##济\n##浏\n##浑\n##浒\n##浓\n##浔\n##浙\n##浚\n##浜\n##浣\n##浦\n##浩\n##浪\n##浬\n##浮\n##浯\n##浴\n##海\n##浸\n##涂\n##涅\n##涇\n##消\n##涉\n##涌\n##涎\n##涓\n##涔\n##涕\n##涙\n##涛\n##涝\n##涞\n##涟\n##涠\n##涡\n##涣\n##涤\n##润\n##涧\n##涨\n##涩\n##涪\n##涮\n##涯\n##液\n##涵\n##涸\n##涼\n##涿\n##淀\n##淄\n##淅\n##淆\n##淇\n##淋\n##淌\n##淑\n##淒\n##淖\n##淘\n##淙\n##淚\n##淞\n##淡\n##淤\n##淦\n##淨\n##淩\n##淪\n##淫\n##淬\n##淮\n##深\n##淳\n##淵\n##混\n##淹\n##淺\n##添\n##淼\n##清\n##済\n##渉\n##渊\n##渋\n##渍\n##渎\n##渐\n##渔\n##渗\n##渙\n##渚\n##減\n##渝\n##渠\n##渡\n##渣\n##渤\n##渥\n##渦\n##温\n##測\n##渭\n##港\n##渲\n##渴\n##游\n##渺\n##渾\n##湃\n##湄\n##湊\n##湍\n##湖\n##湘\n##湛\n##湟\n##湧\n##湫\n##湮\n##湯\n##湳\n##湾\n##湿\n##満\n##溃\n##溅\n##溉\n##溏\n##源\n##準\n##溜\n##溝\n##溟\n##溢\n##溥\n##溧\n##溪\n##溫\n##溯\n##溱\n##溴\n##溶\n##溺\n##溼\n##滁\n##滂\n##滄\n##滅\n##滇\n##滋\n##滌\n##滑\n##滓\n##滔\n##滕\n##滙\n##滚\n##滝\n##滞\n##滟\n##满\n##滢\n##滤\n##滥\n##滦\n##滨\n##滩\n##滬\n##滯\n##滲\n##滴\n##滷\n##滸\n##滾\n##滿\n##漁\n##漂\n##漆\n##漉\n##漏\n##漓\n##演\n##漕\n##漠\n##漢\n##漣\n##漩\n##漪\n##漫\n##漬\n##漯\n##漱\n##漲\n##漳\n##漸\n##漾\n##漿\n##潆\n##潇\n##潋\n##潍\n##潑\n##潔\n##潘\n##潛\n##潜\n##潞\n##潟\n##潢\n##潤\n##潦\n##潧\n##潭\n##潮\n##潰\n##潴\n##潸\n##潺\n##潼\n##澀\n##澄\n##澆\n##澈\n##澍\n##澎\n##澗\n##澜\n##澡\n##澤\n##澧\n##澱\n##澳\n##澹\n##激\n##濁\n##濂\n##濃\n##濑\n##濒\n##濕\n##濘\n##濛\n##濟\n##濠\n##濡\n##濤\n##濫\n##濬\n##濮\n##濯\n##濱\n##濺\n##濾\n##瀅\n##瀆\n##瀉\n##瀋\n##瀏\n##瀑\n##瀕\n##瀘\n##瀚\n##瀛\n##瀝\n##瀞\n##瀟\n##瀧\n##瀨\n##瀬\n##瀰\n##瀾\n##灌\n##灏\n##灑\n##灘\n##灝\n##灞\n##灣\n##火\n##灬\n##灭\n##灯\n##灰\n##灵\n##灶\n##灸\n##灼\n##災\n##灾\n##灿\n##炀\n##炁\n##炅\n##炉\n##炊\n##炎\n##炒\n##炔\n##炕\n##炖\n##炙\n##炜\n##炫\n##炬\n##炭\n##炮\n##炯\n##炳\n##炷\n##炸\n##点\n##為\n##炼\n##炽\n##烁\n##烂\n##烃\n##烈\n##烊\n##烏\n##烘\n##烙\n##烛\n##烟\n##烤\n##烦\n##烧\n##烨\n##烩\n##烫\n##烬\n##热\n##烯\n##烷\n##烹\n##烽\n##焉\n##焊\n##焕\n##焖\n##焗\n##焘\n##焙\n##焚\n##焜\n##無\n##焦\n##焯\n##焰\n##焱\n##然\n##焼\n##煅\n##煉\n##煊\n##煌\n##煎\n##煒\n##煖\n##煙\n##煜\n##煞\n##煤\n##煥\n##煦\n##照\n##煨\n##煩\n##煮\n##煲\n##煸\n##煽\n##熄\n##熊\n##熏\n##熒\n##熔\n##熙\n##熟\n##熠\n##熨\n##熬\n##熱\n##熵\n##熹\n##熾\n##燁\n##燃\n##燄\n##燈\n##燉\n##燊\n##燎\n##燒\n##燔\n##燕\n##燙\n##燜\n##營\n##燥\n##燦\n##燧\n##燭\n##燮\n##燴\n##燻\n##燼\n##燿\n##爆\n##爍\n##爐\n##爛\n##爪\n##爬\n##爭\n##爰\n##爱\n##爲\n##爵\n##父\n##爷\n##爸\n##爹\n##爺\n##爻\n##爽\n##爾\n##牆\n##片\n##版\n##牌\n##牍\n##牒\n##牙\n##牛\n##牝\n##牟\n##牠\n##牡\n##牢\n##牦\n##牧\n##物\n##牯\n##牲\n##牴\n##牵\n##特\n##牺\n##牽\n##犀\n##犁\n##犄\n##犊\n##犍\n##犒\n##犢\n##犧\n##犬\n##犯\n##状\n##犷\n##犸\n##犹\n##狀\n##狂\n##狄\n##狈\n##狎\n##狐\n##狒\n##狗\n##狙\n##狞\n##狠\n##狡\n##狩\n##独\n##狭\n##狮\n##狰\n##狱\n##狸\n##狹\n##狼\n##狽\n##猎\n##猕\n##猖\n##猗\n##猙\n##猛\n##猜\n##猝\n##猥\n##猩\n##猪\n##猫\n##猬\n##献\n##猴\n##猶\n##猷\n##猾\n##猿\n##獄\n##獅\n##獎\n##獐\n##獒\n##獗\n##獠\n##獣\n##獨\n##獭\n##獰\n##獲\n##獵\n##獷\n##獸\n##獺\n##獻\n##獼\n##獾\n##玄\n##率\n##玉\n##王\n##玑\n##玖\n##玛\n##玟\n##玠\n##玥\n##玩\n##玫\n##玮\n##环\n##现\n##玲\n##玳\n##玷\n##玺\n##玻\n##珀\n##珂\n##珅\n##珈\n##珉\n##珊\n##珍\n##珏\n##珐\n##珑\n##珙\n##珞\n##珠\n##珣\n##珥\n##珩\n##珪\n##班\n##珮\n##珲\n##珺\n##現\n##球\n##琅\n##理\n##琇\n##琉\n##琊\n##琍\n##琏\n##琐\n##琛\n##琢\n##琥\n##琦\n##琨\n##琪\n##琬\n##琮\n##琰\n##琲\n##琳\n##琴\n##琵\n##琶\n##琺\n##琼\n##瑀\n##瑁\n##瑄\n##瑋\n##瑕\n##瑗\n##瑙\n##瑚\n##瑛\n##瑜\n##瑞\n##瑟\n##瑠\n##瑣\n##瑤\n##瑩\n##瑪\n##瑯\n##瑰\n##瑶\n##瑾\n##璀\n##璁\n##璃\n##璇\n##璉\n##璋\n##璎\n##璐\n##璜\n##璞\n##璟\n##璧\n##璨\n##環\n##璽\n##璿\n##瓊\n##瓏\n##瓒\n##瓜\n##瓢\n##瓣\n##瓤\n##瓦\n##瓮\n##瓯\n##瓴\n##瓶\n##瓷\n##甄\n##甌\n##甕\n##甘\n##甙\n##甚\n##甜\n##生\n##產\n##産\n##甥\n##甦\n##用\n##甩\n##甫\n##甬\n##甭\n##甯\n##田\n##由\n##甲\n##申\n##电\n##男\n##甸\n##町\n##画\n##甾\n##畀\n##畅\n##界\n##畏\n##畑\n##畔\n##留\n##畜\n##畝\n##畢\n##略\n##畦\n##番\n##畫\n##異\n##畲\n##畳\n##畴\n##當\n##畸\n##畹\n##畿\n##疆\n##疇\n##疊\n##疏\n##疑\n##疔\n##疖\n##疗\n##疙\n##疚\n##疝\n##疟\n##疡\n##疣\n##疤\n##疥\n##疫\n##疮\n##疯\n##疱\n##疲\n##疳\n##疵\n##疸\n##疹\n##疼\n##疽\n##疾\n##痂\n##病\n##症\n##痈\n##痉\n##痊\n##痍\n##痒\n##痔\n##痕\n##痘\n##痙\n##痛\n##痞\n##痠\n##痢\n##痣\n##痤\n##痧\n##痨\n##痪\n##痫\n##痰\n##痱\n##痴\n##痹\n##痺\n##痼\n##痿\n##瘀\n##瘁\n##瘋\n##瘍\n##瘓\n##瘘\n##瘙\n##瘟\n##瘠\n##瘡\n##瘢\n##瘤\n##瘦\n##瘧\n##瘩\n##瘪\n##瘫\n##瘴\n##瘸\n##瘾\n##療\n##癇\n##癌\n##癒\n##癖\n##癜\n##癞\n##癡\n##癢\n##癣\n##癥\n##癫\n##癬\n##癮\n##癱\n##癲\n##癸\n##発\n##登\n##發\n##白\n##百\n##皂\n##的\n##皆\n##皇\n##皈\n##皋\n##皎\n##皑\n##皓\n##皖\n##皙\n##皚\n##皮\n##皰\n##皱\n##皴\n##皺\n##皿\n##盂\n##盃\n##盅\n##盆\n##盈\n##益\n##盎\n##盏\n##盐\n##监\n##盒\n##盔\n##盖\n##盗\n##盘\n##盛\n##盜\n##盞\n##盟\n##盡\n##監\n##盤\n##盥\n##盧\n##盪\n##目\n##盯\n##盱\n##盲\n##直\n##相\n##盹\n##盼\n##盾\n##省\n##眈\n##眉\n##看\n##県\n##眙\n##眞\n##真\n##眠\n##眦\n##眨\n##眩\n##眯\n##眶\n##眷\n##眸\n##眺\n##眼\n##眾\n##着\n##睁\n##睇\n##睏\n##睐\n##睑\n##睛\n##睜\n##睞\n##睡\n##睢\n##督\n##睥\n##睦\n##睨\n##睪\n##睫\n##睬\n##睹\n##睽\n##睾\n##睿\n##瞄\n##瞅\n##瞇\n##瞋\n##瞌\n##瞎\n##瞑\n##瞒\n##瞓\n##瞞\n##瞟\n##瞠\n##瞥\n##瞧\n##瞩\n##瞪\n##瞬\n##瞭\n##瞰\n##瞳\n##瞻\n##瞼\n##瞿\n##矇\n##矍\n##矗\n##矚\n##矛\n##矜\n##矢\n##矣\n##知\n##矩\n##矫\n##短\n##矮\n##矯\n##石\n##矶\n##矽\n##矾\n##矿\n##码\n##砂\n##砌\n##砍\n##砒\n##研\n##砖\n##砗\n##砚\n##砝\n##砣\n##砥\n##砧\n##砭\n##砰\n##砲\n##破\n##砷\n##砸\n##砺\n##砼\n##砾\n##础\n##硅\n##硐\n##硒\n##硕\n##硝\n##硫\n##硬\n##确\n##硯\n##硼\n##碁\n##碇\n##碉\n##碌\n##碍\n##碎\n##碑\n##碓\n##碗\n##碘\n##碚\n##碛\n##碟\n##碣\n##碧\n##碩\n##碰\n##碱\n##碳\n##碴\n##確\n##碼\n##碾\n##磁\n##磅\n##磊\n##磋\n##磐\n##磕\n##磚\n##磡\n##磨\n##磬\n##磯\n##磲\n##磷\n##磺\n##礁\n##礎\n##礙\n##礡\n##礦\n##礪\n##礫\n##礴\n##示\n##礼\n##社\n##祀\n##祁\n##祂\n##祇\n##祈\n##祉\n##祎\n##祐\n##祕\n##祖\n##祗\n##祚\n##祛\n##祜\n##祝\n##神\n##祟\n##祠\n##祢\n##祥\n##票\n##祭\n##祯\n##祷\n##祸\n##祺\n##祿\n##禀\n##禁\n##禄\n##禅\n##禍\n##禎\n##福\n##禛\n##禦\n##禧\n##禪\n##禮\n##禱\n##禹\n##禺\n##离\n##禽\n##禾\n##禿\n##秀\n##私\n##秃\n##秆\n##秉\n##秋\n##种\n##科\n##秒\n##秘\n##租\n##秣\n##秤\n##秦\n##秧\n##秩\n##秭\n##积\n##称\n##秸\n##移\n##秽\n##稀\n##稅\n##程\n##稍\n##税\n##稔\n##稗\n##稚\n##稜\n##稞\n##稟\n##稠\n##稣\n##種\n##稱\n##稲\n##稳\n##稷\n##稹\n##稻\n##稼\n##稽\n##稿\n##穀\n##穂\n##穆\n##穌\n##積\n##穎\n##穗\n##穢\n##穩\n##穫\n##穴\n##究\n##穷\n##穹\n##空\n##穿\n##突\n##窃\n##窄\n##窈\n##窍\n##窑\n##窒\n##窓\n##窕\n##窖\n##窗\n##窘\n##窜\n##窝\n##窟\n##窠\n##窥\n##窦\n##窨\n##窩\n##窪\n##窮\n##窯\n##窺\n##窿\n##竄\n##竅\n##竇\n##竊\n##立\n##竖\n##站\n##竜\n##竞\n##竟\n##章\n##竣\n##童\n##竭\n##端\n##競\n##竹\n##竺\n##竽\n##竿\n##笃\n##笆\n##笈\n##笋\n##笏\n##笑\n##笔\n##笙\n##笛\n##笞\n##笠\n##符\n##笨\n##第\n##笹\n##笺\n##笼\n##筆\n##等\n##筊\n##筋\n##筍\n##筏\n##筐\n##筑\n##筒\n##答\n##策\n##筛\n##筝\n##筠\n##筱\n##筲\n##筵\n##筷\n##筹\n##签\n##简\n##箇\n##箋\n##箍\n##箏\n##箐\n##箔\n##箕\n##算\n##箝\n##管\n##箩\n##箫\n##箭\n##箱\n##箴\n##箸\n##節\n##篁\n##範\n##篆\n##篇\n##築\n##篑\n##篓\n##篙\n##篝\n##篠\n##篡\n##篤\n##篩\n##篪\n##篮\n##篱\n##篷\n##簇\n##簌\n##簍\n##簡\n##簦\n##簧\n##簪\n##簫\n##簷\n##簸\n##簽\n##簾\n##簿\n##籁\n##籃\n##籌\n##籍\n##籐\n##籟\n##籠\n##籤\n##籬\n##籮\n##籲\n##米\n##类\n##籼\n##籽\n##粄\n##粉\n##粑\n##粒\n##粕\n##粗\n##粘\n##粟\n##粤\n##粥\n##粧\n##粪\n##粮\n##粱\n##粲\n##粳\n##粵\n##粹\n##粼\n##粽\n##精\n##粿\n##糅\n##糊\n##糍\n##糕\n##糖\n##糗\n##糙\n##糜\n##糞\n##糟\n##糠\n##糧\n##糬\n##糯\n##糰\n##糸\n##系\n##糾\n##紀\n##紂\n##約\n##紅\n##紉\n##紊\n##紋\n##納\n##紐\n##紓\n##純\n##紗\n##紘\n##紙\n##級\n##紛\n##紜\n##素\n##紡\n##索\n##紧\n##紫\n##紮\n##累\n##細\n##紳\n##紹\n##紺\n##終\n##絃\n##組\n##絆\n##経\n##結\n##絕\n##絞\n##絡\n##絢\n##給\n##絨\n##絮\n##統\n##絲\n##絳\n##絵\n##絶\n##絹\n##綁\n##綏\n##綑\n##經\n##継\n##続\n##綜\n##綠\n##綢\n##綦\n##綫\n##綬\n##維\n##綱\n##網\n##綴\n##綵\n##綸\n##綺\n##綻\n##綽\n##綾\n##綿\n##緊\n##緋\n##総\n##緑\n##緒\n##緘\n##線\n##緝\n##緞\n##締\n##緣\n##編\n##緩\n##緬\n##緯\n##練\n##緹\n##緻\n##縁\n##縄\n##縈\n##縛\n##縝\n##縣\n##縫\n##縮\n##縱\n##縴\n##縷\n##總\n##績\n##繁\n##繃\n##繆\n##繇\n##繋\n##織\n##繕\n##繚\n##繞\n##繡\n##繩\n##繪\n##繫\n##繭\n##繳\n##繹\n##繼\n##繽\n##纂\n##續\n##纍\n##纏\n##纓\n##纔\n##纖\n##纜\n##纠\n##红\n##纣\n##纤\n##约\n##级\n##纨\n##纪\n##纫\n##纬\n##纭\n##纯\n##纰\n##纱\n##纲\n##纳\n##纵\n##纶\n##纷\n##纸\n##纹\n##纺\n##纽\n##纾\n##线\n##绀\n##练\n##组\n##绅\n##细\n##织\n##终\n##绊\n##绍\n##绎\n##经\n##绑\n##绒\n##结\n##绔\n##绕\n##绘\n##给\n##绚\n##绛\n##络\n##绝\n##绞\n##统\n##绡\n##绢\n##绣\n##绥\n##绦\n##继\n##绩\n##绪\n##绫\n##续\n##绮\n##绯\n##绰\n##绳\n##维\n##绵\n##绶\n##绷\n##绸\n##绻\n##综\n##绽\n##绾\n##绿\n##缀\n##缄\n##缅\n##缆\n##缇\n##缈\n##缉\n##缎\n##缓\n##缔\n##缕\n##编\n##缘\n##缙\n##缚\n##缜\n##缝\n##缠\n##缢\n##缤\n##缥\n##缨\n##缩\n##缪\n##缭\n##缮\n##缰\n##缱\n##缴\n##缸\n##缺\n##缽\n##罂\n##罄\n##罌\n##罐\n##网\n##罔\n##罕\n##罗\n##罚\n##罡\n##罢\n##罩\n##罪\n##置\n##罰\n##署\n##罵\n##罷\n##罹\n##羁\n##羅\n##羈\n##羊\n##羌\n##美\n##羔\n##羚\n##羞\n##羟\n##羡\n##羣\n##群\n##羥\n##羧\n##羨\n##義\n##羯\n##羲\n##羸\n##羹\n##羽\n##羿\n##翁\n##翅\n##翊\n##翌\n##翎\n##習\n##翔\n##翘\n##翟\n##翠\n##翡\n##翦\n##翩\n##翰\n##翱\n##翳\n##翹\n##翻\n##翼\n##耀\n##老\n##考\n##耄\n##者\n##耆\n##耋\n##而\n##耍\n##耐\n##耒\n##耕\n##耗\n##耘\n##耙\n##耦\n##耨\n##耳\n##耶\n##耷\n##耸\n##耻\n##耽\n##耿\n##聂\n##聆\n##聊\n##聋\n##职\n##聒\n##联\n##聖\n##聘\n##聚\n##聞\n##聪\n##聯\n##聰\n##聲\n##聳\n##聴\n##聶\n##職\n##聽\n##聾\n##聿\n##肃\n##肄\n##肅\n##肆\n##肇\n##肉\n##肋\n##肌\n##肏\n##肓\n##肖\n##肘\n##肚\n##肛\n##肝\n##肠\n##股\n##肢\n##肤\n##肥\n##肩\n##肪\n##肮\n##肯\n##肱\n##育\n##肴\n##肺\n##肽\n##肾\n##肿\n##胀\n##胁\n##胃\n##胄\n##胆\n##背\n##胍\n##胎\n##胖\n##胚\n##胛\n##胜\n##胝\n##胞\n##胡\n##胤\n##胥\n##胧\n##胫\n##胭\n##胯\n##胰\n##胱\n##胳\n##胴\n##胶\n##胸\n##胺\n##能\n##脂\n##脅\n##脆\n##脇\n##脈\n##脉\n##脊\n##脍\n##脏\n##脐\n##脑\n##脓\n##脖\n##脘\n##脚\n##脛\n##脣\n##脩\n##脫\n##脯\n##脱\n##脲\n##脳\n##脸\n##脹\n##脾\n##腆\n##腈\n##腊\n##腋\n##腌\n##腎\n##腐\n##腑\n##腓\n##腔\n##腕\n##腥\n##腦\n##腩\n##腫\n##腭\n##腮\n##腰\n##腱\n##腳\n##腴\n##腸\n##腹\n##腺\n##腻\n##腼\n##腾\n##腿\n##膀\n##膈\n##膊\n##膏\n##膑\n##膘\n##膚\n##膛\n##膜\n##膝\n##膠\n##膦\n##膨\n##膩\n##膳\n##膺\n##膻\n##膽\n##膾\n##膿\n##臀\n##臂\n##臃\n##臆\n##臉\n##臊\n##臍\n##臓\n##臘\n##臟\n##臣\n##臥\n##臧\n##臨\n##自\n##臬\n##臭\n##至\n##致\n##臺\n##臻\n##臼\n##臾\n##舀\n##舂\n##舅\n##舆\n##與\n##興\n##舉\n##舊\n##舌\n##舍\n##舎\n##舐\n##舒\n##舔\n##舖\n##舗\n##舛\n##舜\n##舞\n##舟\n##航\n##舫\n##般\n##舰\n##舱\n##舵\n##舶\n##舷\n##舸\n##船\n##舺\n##舾\n##艇\n##艋\n##艘\n##艙\n##艦\n##艮\n##良\n##艰\n##艱\n##色\n##艳\n##艷\n##艹\n##艺\n##艾\n##节\n##芃\n##芈\n##芊\n##芋\n##芍\n##芎\n##芒\n##芙\n##芜\n##芝\n##芡\n##芥\n##芦\n##芩\n##芪\n##芫\n##芬\n##芭\n##芮\n##芯\n##花\n##芳\n##芷\n##芸\n##芹\n##芻\n##芽\n##芾\n##苁\n##苄\n##苇\n##苋\n##苍\n##苏\n##苑\n##苒\n##苓\n##苔\n##苕\n##苗\n##苛\n##苜\n##苞\n##苟\n##苡\n##苣\n##若\n##苦\n##苫\n##苯\n##英\n##苷\n##苹\n##苻\n##茁\n##茂\n##范\n##茄\n##茅\n##茉\n##茎\n##茏\n##茗\n##茜\n##茧\n##茨\n##茫\n##茬\n##茭\n##茯\n##茱\n##茲\n##茴\n##茵\n##茶\n##茸\n##茹\n##茼\n##荀\n##荃\n##荆\n##草\n##荊\n##荏\n##荐\n##荒\n##荔\n##荖\n##荘\n##荚\n##荞\n##荟\n##荠\n##荡\n##荣\n##荤\n##荥\n##荧\n##荨\n##荪\n##荫\n##药\n##荳\n##荷\n##荸\n##荻\n##荼\n##荽\n##莅\n##莆\n##莉\n##莊\n##莎\n##莒\n##莓\n##莖\n##莘\n##莞\n##莠\n##莢\n##莧\n##莪\n##莫\n##莱\n##莲\n##莴\n##获\n##莹\n##莺\n##莽\n##莿\n##菀\n##菁\n##菅\n##菇\n##菈\n##菊\n##菌\n##菏\n##菓\n##菖\n##菘\n##菜\n##菟\n##菠\n##菡\n##菩\n##華\n##菱\n##菲\n##菸\n##菽\n##萁\n##萃\n##萄\n##萊\n##萋\n##萌\n##萍\n##萎\n##萘\n##萝\n##萤\n##营\n##萦\n##萧\n##萨\n##萩\n##萬\n##萱\n##萵\n##萸\n##萼\n##落\n##葆\n##葉\n##著\n##葚\n##葛\n##葡\n##董\n##葦\n##葩\n##葫\n##葬\n##葭\n##葯\n##葱\n##葳\n##葵\n##葷\n##葺\n##蒂\n##蒋\n##蒐\n##蒔\n##蒙\n##蒜\n##蒞\n##蒟\n##蒡\n##蒨\n##蒲\n##蒸\n##蒹\n##蒻\n##蒼\n##蒿\n##蓁\n##蓄\n##蓆\n##蓉\n##蓋\n##蓑\n##蓓\n##蓖\n##蓝\n##蓟\n##蓦\n##蓬\n##蓮\n##蓼\n##蓿\n##蔑\n##蔓\n##蔔\n##蔗\n##蔘\n##蔚\n##蔡\n##蔣\n##蔥\n##蔫\n##蔬\n##蔭\n##蔵\n##蔷\n##蔺\n##蔻\n##蔼\n##蔽\n##蕁\n##蕃\n##蕈\n##蕉\n##蕊\n##蕎\n##蕙\n##蕤\n##蕨\n##蕩\n##蕪\n##蕭\n##蕲\n##蕴\n##蕻\n##蕾\n##薄\n##薅\n##薇\n##薈\n##薊\n##薏\n##薑\n##薔\n##薙\n##薛\n##薦\n##薨\n##薩\n##薪\n##薬\n##薯\n##薰\n##薹\n##藉\n##藍\n##藏\n##藐\n##藓\n##藕\n##藜\n##藝\n##藤\n##藥\n##藩\n##藹\n##藻\n##藿\n##蘆\n##蘇\n##蘊\n##蘋\n##蘑\n##蘚\n##蘭\n##蘸\n##蘼\n##蘿\n##虎\n##虏\n##虐\n##虑\n##虔\n##處\n##虚\n##虛\n##虜\n##虞\n##號\n##虢\n##虧\n##虫\n##虬\n##虱\n##虹\n##虻\n##虽\n##虾\n##蚀\n##蚁\n##蚂\n##蚊\n##蚌\n##蚓\n##蚕\n##蚜\n##蚝\n##蚣\n##蚤\n##蚩\n##蚪\n##蚯\n##蚱\n##蚵\n##蛀\n##蛆\n##蛇\n##蛊\n##蛋\n##蛎\n##蛐\n##蛔\n##蛙\n##蛛\n##蛟\n##蛤\n##蛭\n##蛮\n##蛰\n##蛳\n##蛹\n##蛻\n##蛾\n##蜀\n##蜂\n##蜃\n##蜆\n##蜇\n##蜈\n##蜊\n##蜍\n##蜒\n##蜓\n##蜕\n##蜗\n##蜘\n##蜚\n##蜜\n##蜡\n##蜢\n##蜥\n##蜱\n##蜴\n##蜷\n##蜻\n##蜿\n##蝇\n##蝈\n##蝉\n##蝌\n##蝎\n##蝕\n##蝗\n##蝙\n##蝟\n##蝠\n##蝦\n##蝨\n##蝴\n##蝶\n##蝸\n##蝼\n##螂\n##螃\n##融\n##螞\n##螢\n##螨\n##螯\n##螳\n##螺\n##蟀\n##蟄\n##蟆\n##蟋\n##蟎\n##蟑\n##蟒\n##蟠\n##蟬\n##蟲\n##蟹\n##蟻\n##蟾\n##蠅\n##蠍\n##蠔\n##蠕\n##蠛\n##蠟\n##蠡\n##蠢\n##蠣\n##蠱\n##蠶\n##蠹\n##蠻\n##血\n##衄\n##衅\n##衆\n##行\n##衍\n##術\n##衔\n##街\n##衙\n##衛\n##衝\n##衞\n##衡\n##衢\n##衣\n##补\n##表\n##衩\n##衫\n##衬\n##衮\n##衰\n##衲\n##衷\n##衹\n##衾\n##衿\n##袁\n##袂\n##袄\n##袅\n##袈\n##袋\n##袍\n##袒\n##袖\n##袜\n##袞\n##袤\n##袪\n##被\n##袭\n##袱\n##裁\n##裂\n##装\n##裆\n##裊\n##裏\n##裔\n##裕\n##裘\n##裙\n##補\n##裝\n##裟\n##裡\n##裤\n##裨\n##裱\n##裳\n##裴\n##裸\n##裹\n##製\n##裾\n##褂\n##複\n##褐\n##褒\n##褓\n##褔\n##褚\n##褥\n##褪\n##褫\n##褲\n##褶\n##褻\n##襁\n##襄\n##襟\n##襠\n##襪\n##襬\n##襯\n##襲\n##西\n##要\n##覃\n##覆\n##覇\n##見\n##規\n##覓\n##視\n##覚\n##覦\n##覧\n##親\n##覬\n##観\n##覷\n##覺\n##覽\n##觀\n##见\n##观\n##规\n##觅\n##视\n##览\n##觉\n##觊\n##觎\n##觐\n##觑\n##角\n##觞\n##解\n##觥\n##触\n##觸\n##言\n##訂\n##計\n##訊\n##討\n##訓\n##訕\n##訖\n##託\n##記\n##訛\n##訝\n##訟\n##訣\n##訥\n##訪\n##設\n##許\n##訳\n##訴\n##訶\n##診\n##註\n##証\n##詆\n##詐\n##詔\n##評\n##詛\n##詞\n##詠\n##詡\n##詢\n##詣\n##試\n##詩\n##詫\n##詬\n##詭\n##詮\n##詰\n##話\n##該\n##詳\n##詹\n##詼\n##誅\n##誇\n##誉\n##誌\n##認\n##誓\n##誕\n##誘\n##語\n##誠\n##誡\n##誣\n##誤\n##誥\n##誦\n##誨\n##說\n##説\n##読\n##誰\n##課\n##誹\n##誼\n##調\n##諄\n##談\n##請\n##諏\n##諒\n##論\n##諗\n##諜\n##諡\n##諦\n##諧\n##諫\n##諭\n##諮\n##諱\n##諳\n##諷\n##諸\n##諺\n##諾\n##謀\n##謁\n##謂\n##謄\n##謊\n##謎\n##謐\n##謔\n##謗\n##謙\n##講\n##謝\n##謠\n##謨\n##謬\n##謹\n##謾\n##譁\n##證\n##譎\n##譏\n##識\n##譙\n##譚\n##譜\n##警\n##譬\n##譯\n##議\n##譲\n##譴\n##護\n##譽\n##讀\n##變\n##讓\n##讚\n##讞\n##计\n##订\n##认\n##讥\n##讧\n##讨\n##让\n##讪\n##讫\n##训\n##议\n##讯\n##记\n##讲\n##讳\n##讴\n##讶\n##讷\n##许\n##讹\n##论\n##讼\n##讽\n##设\n##访\n##诀\n##证\n##诃\n##评\n##诅\n##识\n##诈\n##诉\n##诊\n##诋\n##词\n##诏\n##译\n##试\n##诗\n##诘\n##诙\n##诚\n##诛\n##话\n##诞\n##诟\n##诠\n##诡\n##询\n##诣\n##诤\n##该\n##详\n##诧\n##诩\n##诫\n##诬\n##语\n##误\n##诰\n##诱\n##诲\n##说\n##诵\n##诶\n##请\n##诸\n##诺\n##读\n##诽\n##课\n##诿\n##谀\n##谁\n##调\n##谄\n##谅\n##谆\n##谈\n##谊\n##谋\n##谌\n##谍\n##谎\n##谏\n##谐\n##谑\n##谒\n##谓\n##谔\n##谕\n##谗\n##谘\n##谙\n##谚\n##谛\n##谜\n##谟\n##谢\n##谣\n##谤\n##谥\n##谦\n##谧\n##谨\n##谩\n##谪\n##谬\n##谭\n##谯\n##谱\n##谲\n##谴\n##谶\n##谷\n##豁\n##豆\n##豇\n##豈\n##豉\n##豊\n##豌\n##豎\n##豐\n##豔\n##豚\n##象\n##豢\n##豪\n##豫\n##豬\n##豹\n##豺\n##貂\n##貅\n##貌\n##貓\n##貔\n##貘\n##貝\n##貞\n##負\n##財\n##貢\n##貧\n##貨\n##販\n##貪\n##貫\n##責\n##貯\n##貰\n##貳\n##貴\n##貶\n##買\n##貸\n##費\n##貼\n##貽\n##貿\n##賀\n##賁\n##賂\n##賃\n##賄\n##資\n##賈\n##賊\n##賑\n##賓\n##賜\n##賞\n##賠\n##賡\n##賢\n##賣\n##賤\n##賦\n##質\n##賬\n##賭\n##賴\n##賺\n##購\n##賽\n##贅\n##贈\n##贊\n##贍\n##贏\n##贓\n##贖\n##贛\n##贝\n##贞\n##负\n##贡\n##财\n##责\n##贤\n##败\n##账\n##货\n##质\n##贩\n##贪\n##贫\n##贬\n##购\n##贮\n##贯\n##贰\n##贱\n##贲\n##贴\n##贵\n##贷\n##贸\n##费\n##贺\n##贻\n##贼\n##贾\n##贿\n##赁\n##赂\n##赃\n##资\n##赅\n##赈\n##赊\n##赋\n##赌\n##赎\n##赏\n##赐\n##赓\n##赔\n##赖\n##赘\n##赚\n##赛\n##赝\n##赞\n##赠\n##赡\n##赢\n##赣\n##赤\n##赦\n##赧\n##赫\n##赭\n##走\n##赳\n##赴\n##赵\n##赶\n##起\n##趁\n##超\n##越\n##趋\n##趕\n##趙\n##趟\n##趣\n##趨\n##足\n##趴\n##趵\n##趸\n##趺\n##趾\n##跃\n##跄\n##跆\n##跋\n##跌\n##跎\n##跑\n##跖\n##跚\n##跛\n##距\n##跟\n##跡\n##跤\n##跨\n##跩\n##跪\n##路\n##跳\n##践\n##跷\n##跹\n##跺\n##跻\n##踉\n##踊\n##踌\n##踏\n##踐\n##踝\n##踞\n##踟\n##踢\n##踩\n##踪\n##踮\n##踱\n##踴\n##踵\n##踹\n##蹂\n##蹄\n##蹇\n##蹈\n##蹉\n##蹊\n##蹋\n##蹑\n##蹒\n##蹙\n##蹟\n##蹣\n##蹤\n##蹦\n##蹩\n##蹬\n##蹭\n##蹲\n##蹴\n##蹶\n##蹺\n##蹼\n##蹿\n##躁\n##躇\n##躉\n##躊\n##躋\n##躍\n##躏\n##躪\n##身\n##躬\n##躯\n##躲\n##躺\n##軀\n##車\n##軋\n##軌\n##軍\n##軒\n##軟\n##転\n##軸\n##軼\n##軽\n##軾\n##較\n##載\n##輒\n##輓\n##輔\n##輕\n##輛\n##輝\n##輟\n##輩\n##輪\n##輯\n##輸\n##輻\n##輾\n##輿\n##轄\n##轅\n##轆\n##轉\n##轍\n##轎\n##轟\n##车\n##轧\n##轨\n##轩\n##转\n##轭\n##轮\n##软\n##轰\n##轲\n##轴\n##轶\n##轻\n##轼\n##载\n##轿\n##较\n##辄\n##辅\n##辆\n##辇\n##辈\n##辉\n##辊\n##辍\n##辐\n##辑\n##输\n##辕\n##辖\n##辗\n##辘\n##辙\n##辛\n##辜\n##辞\n##辟\n##辣\n##辦\n##辨\n##辩\n##辫\n##辭\n##辮\n##辯\n##辰\n##辱\n##農\n##边\n##辺\n##辻\n##込\n##辽\n##达\n##迁\n##迂\n##迄\n##迅\n##过\n##迈\n##迎\n鸮\n##鳝\n丌\n狲\n媁\n肜\n浠\n鲚\n冔\n`\n螫\n儁\n倸\n寔\n郾\n鋈\n诌\n邽\n鮡\n澣\n鳜\n旴\n頵\n鼒\n枂\n鸻\n瑭\n蓂\n烔\n鹩\n侂\n厓\n隰\n嗥\n邾\n镊\n鷉\n鮗\n奁\n偰\n浛\n豕\n诒\n乀\n琚\n倛\n猇\n##7\n﨑\n桭\n珹\n芴\n浈\n烚\n渟\n聻\n菰\n禤\n##z\n毬\n沇\n瑈\n仱\n赟\n榘\n魈\n栌\n疃\n芟\n焞\n弢\n勍\n洡\n廆\n遹\n猯\n鳟\n娸\n埙\n溲\n樕\n彊\n鲀\n綡\n汊\n觌\n丏\n##姬\n龑\n蝣\n慠\n尙\n纡\n鲻\n耔\n犛\n訢\n荭\n##路\n尭\n##宇\n刂\n佾\n舲\n淯\n苾\n瓿\n甍\n##麦\n纮\n縻\n垔\n钶\n椤\n##横\n刿\n绋\n瘿\n沔\n闱\n诇\n镃\n铖\n茪\n楩\n耜\n靑\n樨\n蠊\n俤\n诳\n鑙\n苅\n戆\n莛\n蜉\n棪\n螋\n砮\n囃\n渑\n葶\n髁\n魉\n蓠\n虓\n蚶\n菝\n’\n魑\n##庆\n喾\n媜\n##久\n珧\n鲾\n噘\n茕\n繻\n枏\n垲\n昺\n僯\n濉\n喈\n鹆\n嵚\n暁\n暻\n溷\n蚧\n顗\n瓉\n鋆\n蠖\n茌\n姸\n坭\n沆\n鳐\n傈\n仉\n仵\n弨\n雠\n##牛\n炥\n昝\n鳊\n鮣\n嵃\n鸲\n濋\n阗\n琩\n圉\n杲\n##中\n堉\n鲯\n缃\n鼔\n缵\n嫮\n渌\n螈\n衜\n笡\n惗\n溚\n鹬\n蟛\n棓\n珌\n呒\n飏\n咥\n炘\n浉\n鹠\n僳\n嶦\n婳\n姽\n褴\n鉽\n愬\n蒳\n廼\n鴴\n伷\n芘\n枬\n玙\n錩\n霡\n唛\n骙\n##0\n砜\n垅\n戋\n##2\n棰\n祶\n滏\n冴\n巯\n坜\n蝓\n砀\n鯝\n琤\n魢\n侒\n翕\n帏\n囓\n钫\n轱\n埝\n鏊\n砦\n繮\n䶮\n耰\n鼯\n雱\n畇\n茆\n愔\n懔\n秈\n狍\n諴\n駉\n椆\n哞\n曷\n蛣\n媺\n镔\n琎\n杺\n渼\n酡\n澕\n筭\n盉\n姁\n##契\n罴\n旒\n溆\n枵\n##4\n哙\n莳\n鬪\n鹚\n褡\n镤\n鲬\n孒\n狃\n螭\n犴\n鞮\n柽\n蕶\n笪\n蟳\n郯\n鸺\n甑\n皝\n##5\n榤\n甃\n埚\n逑\n剀\n渕\n鼱\n楯\n螟\n狨\n葜\n伱\n楢\n镬\n鳚\n##袁\n玹\n杪\n鲣\n鱵\n樗\n##说\n鄀\n暟\n焌\n勣\n棻\n蛸\n豜\n淠\n畊\n##9\n##邕\n匦\n沩\n嵛\n釪\n鰧\n姮\n劬\n镝\n琭\n蒾\n蜑\n埈\n掟\n薫\n躄\n鲿\n鹨\n逄\n䳍\n彳\n巣\n敭\n喑\n絾\n崚\n鮈\n樋\n邴\n蝾\n曈\n尐\n祹\n爀\n杌\n暘\n苙\n昳\n陔\n呔\n茛\n桫\n熯\n茳\n飔\n熞\n##板\n蝮\n吇\n猟\n墭\n禶\n蟴\n鹱\n捊\n邡\n鲔\n烆\n泅\n棅\n鰶\n煐\n陉\n曧\n劼\n婞\n莜\n柃\n穰\n裢\n―\n蛄\n瀍\n戨\n郗\n锬\n桷\n蝽\n朲\n蛩\n穸\n‘\n洚\n漭\n锗\n镠\n猞\n饫\n悫\n崃\n藁\n榧\n籹\n橚\n帙\n滉\n侪\n琯\n骀\n##婉\n璘\n荇\n霙\n坻\n纟\n猢\n袴\n嘏\n蜩\n鱚\n訸\n謇\n嫀\n撖\n燹\n鳇\n猡\n柷\n鰕\n蒗\n娫\n僾\n霨\n芶\n槑\n缬\n瑒\n堎\n姄\n—\n潶\n鲆\n噰\n汸\n蒽\n焓\n嫒\n霂\n麐\n鮋\n胪\n尪\n煕\n沚\n熜\n荑\n##1\n傒\n鲐\n疋\n黦\n浐\n匑\n膤\n笕\n宬\n逯\n轸\n##o\n晸\n邠\n镫\n祓\n熳\n噵\n鸫\n毳\n涢\n蟜\n熀\n镹\n彲\n塍\n鹪\n鳢\n鲵\n犰\n嫄\n骢\n蓚\n莙\n##恪\n孮\n垧\n仫\n蛉\n##德\n鸰\n崀\n锜\n…\n鵙\n媣\n瞹\n镏\n琱\n颀\n##鲢\n峁\n鳽\n槊\n锒\n鶤\n淝\n漷\n鳎\n鄯\n垕\n茈\n皛\n蕅\n鹡\n浧\n錞\n##须\n淽\n薷\n”\n蠃\n##瑞\n酴\n忞\n鲂\n鵖\n鲩\n鑨\n##院\n箬\n褀\n粦\n翀\n亍\n芠\n凖\n##日\n##金\n玞\n狟\n辁\n畠\n瑑\nI\n貟\n琸\n虨\n榬\n駌\n摭\n狳\n渃\n頨\n蛱\n爨\n郞\n莀\n##赵\n蓹\n洊\n哓\n髆\n儚\n湴\n璈\n繸\n蠼\n踽\n鲇\n禚\n娡\n姏\n卲\n烺\n垍\n訏\n嫼\n揅\n黾\n垌\n鯙\n郄\n盦\n牮\n晄\n峘\n簕\n鰁\n垡\n诜\n箓\n鈜\n溍\n##弋\n##月\n凫\n倓\n頔\n枍\n鲎\n阍\n祙\n橑\n淓\n漘\n鰆\n荦\n璠\n氿\n隩\n筼\n圪\n炟\n浞\n浥\n儇\n禥\n鱲\n鳠\n鳱\n栒\n蛞\n##w\n魃\n鱥\n藨\n沶\n禵\n瘣\n##巨\n岿\n寳\n昃\n玢\n鹎\n赜\n贽\n裒\n鳔\n寀\n蓍\n鄠\n勄\n纁\n礽\n腧\nK\n吔\n湦\nЮ\n垞\n俦\n祧\n鉁\n颏\n翯\n峠\n崱\n瑷\n霔\n遘\n娈\n鄣\n坣\n掮\n蛃\n箎\n鮄\n鄄\n鹀\n蕺\n鬯\n巘\n翾\n昣\n锷\n堓\n翷\n鞨\n枖\n衎\n锝\n溎\n埭\n廙\n阏\n鱓\n戢\n徯\n魮\n酆\n烰\n龢\n颿\n##卵\n鰺\n窉\n垱\n汣\n蓥\n剡\n禑\n绂\n蝰\n肸\n湉\n榊\n昖\n勰\n鏸\n骓\n茔\n骎\n洳\n钖\n陬\n窳\n蠓\n绨\n栊\n鮀\n獴\n氵\n鶲\n诂\n爿\n愼\n燚\n慥\n栘\n禩\n鱇\n逦\n捑\n媪\n鼢\n鲧\n洧\n桄\n黟\n鹮\n澔\n俅\n鴗\n锴\n镒\n鳒\n焻\n羙\n##书\n濞\n熥\n墪\n珽\n沺\n鲳\n鲅\n翮\n訇\n凊\n旸\n挵\n轵\n瀹\n鷧\n尒\n蚖\n睟\n蘅\n虿\n郏\n杬\n鱊\n笳\n##h\n钍\n嵴\n鲋\n魣\n洺\n##斑\n##a\n樘\n黧\n茀\n娌\n牻\n塽\n辔\n镡\n晙\n劢\n掦\n汯\n蚬\n##3\n##ン\nT\n曟\n岄\n薮\n##e\n鯥\n瑔\n澂\n苎\n靺\n瓃\n盺\n穉\n䴕\n鮻\n樰\n枧\n煝\n瑮\n恽\n咺\n苴\n崟\n柭\n┷\n羴\n仦\n廾\n櫱\n趼\n翥\n逖\n偲\n壦\n佺\n棫\n淛\n屺\n蜣\n猼\n莣\n夼\n螅\n锘\n墡\n##道\n怰\n怿\n薾\n唞\n##光\n堈\n珒\n玎\n旼\n澪\n铧\n蜾\n檠\nⅫ\n麿\n淏\n菋\n赉\n缡\n皃\n塱\n畈\n翃\n捭\n犇\n朏\n##有\n襞\n昡\n妯\n䗉\n黼\n燠\n瓘\n揺\n鲃\n暠\n寤\n鬘\n##8\n猊\n棨\n罘\n鲹\n琹\n玗\n柝\n伋\n##耕\n弇\n翙\n毖\n葇\n槇\n鲠\n缦\n圀\n艚\n魰\n媸\n玦\n硖\n##充\n嬲\n榑\n旑\n坃\n椴\n潕\n絔\n铱\n犼\n椛\n佴\n鲼\n厣\n鸬\n錡\n棐\n蛏\n㬎\n瘰\n缒\n鹍\n迳\n芨\n砬\n骝\n贠\n糀\n##鱼\n昰\n##网\n鵾\n屾\n鹲\n鮠\n芗\n嶷\n皞\n撄\n垇\n尓\n##纹\n魟\n篦\n鱾\n誴\n铼\n桕\n炤\n鱂\n爟\n崾\n鹟\n戣\n鲭\n梿\n韫\n铍\n瓖\n俣\n铳\n谡\n缶\n垴\n垟\n冣\n涑\n##6\n蓭\n墫\n巎\n瑱\n蠋\n鳾\n楤\n蒴\n崮\n鐭\n姌\n鮟\n鷟\n捜\n絅\n璗\n朊\n莸\n廌\n荩\n郃\n妵\n豳\n亶\n鹗\n溦\n廑\n峄\n蛘\n煃\n浵\n##s\n贇\n沨\n辂\n羄\n茮\n韮\n缑\n恂\n螽\n楳\n酃\n垸\n谠\n鳯\n竑\n鮰\n晥\n楙\n邗\n怲\n蜞\n谰\n镱\n菻\n殛\n煇\n鯒\n頀\n璥\n葊\n晽\n瞫\n鴷\n斝\n岢\n銤\n莼\n筮\n冮\n颎\n枞\n妫\n鸊\n聃\n瑂\n黻\n鳤\n鲴\n媖\n訾\n晧\n烜\nⅧ\n狴\n亓\n岵\n黡\n仡\n嫫\n玏\n彟\n灊\n##v\n玘\n鉲\n鸶\n暕\n稃\n挿\n卨\n莯\n觯\n谖\n硚\n戯\n蒧\n郇\n##浚\n庥\n鸀\n鲮\n琄\n##微\n奭\n滃\n宍\n隗\n荛\n鮊\n髭\n##椿\n釄\n醻\n柍\n甡\n玚\nㄖ\n苈\n聡\n眀\n铗\n鮁\n纥\n梉\n滵\nM\n颙\n妺\n驩\n晳\n芏\n璩\n婲\n垿\n钇\n巑\n鮶\n绉\n婼\n汭\n尛\n洢\n跗\n枥\n鼩\n##n\n“\n鳀\n爌\n笶\n苌\n窅\n垓\n栞\n嵨\n翚\n鲥\n譞\n俋\n箣\n悒\n袓\n镧\n鳉\n碞\n旳\n筜\n悆\n鄚\n仚\n漈\n鋐\n厶\n獛\n愽\n梼\n滘\n俆\n鯻\n闳\n蒉\n鲽\n嫤\n鸱\n墱\n柟\n瞽\n匏\n姵\n鲡\n嫊\n嫱\n炆\n菫\n鱺\n溁\n沬\n魾\n唢\n菴\n玭\n汜\n鳡\n眭\n鲉\n荿\n玡\n锽\n胼\n鹛\nⅦ\n寯\n郓\n嵒\n辿\n耏\n栻\n蟌\n觚\n郿\n蓨\n锶\n"
  },
  {
    "path": "config.py",
    "content": "# -*- coding: utf-8 -*-\n\nclass Config(object):\n    # -----------数据集选择--------------------#\n    dataset = 'small'       # large(没有合并type关系)/small(合并type关系)\n    naNum = 2               # 每个例子中补充的最大NA关系数目\n    tag_nums = 19*2+1       # tag类型数量\n    rel_nums = 50           # 关系数量\n\n    # -------------dir ----------------#\n    bert_model_dir = './bert-base-chinese/bert-base-chinese.tar.gz'\n    bert_vocab_dir = './bert-base-chinese/vocab.txt'\n    bert_vocab_unk = './bert-base-chinese/vocab.txt'\n\n    npy_data_root = './data/'+dataset+'/npy_data/'\n    origin_data_root = './data/'+dataset+'/origin_data/'\n    json_data_root = './data/'+dataset+'/json_data/'\n\n    id2type_dir = json_data_root + 'id2type.json'\n    type2id_dir = json_data_root + 'type2id.json'\n    tag2id_dir = json_data_root + 'tag2id.json'\n    r2id_dir = json_data_root + 'r2id.json'\n    id2r_dir = json_data_root + 'id2r.json'\n    id2tag_dir = json_data_root + 'id2tag.json'\n    type2types_dir = json_data_root + 'type2types.json'\n\n    schema_dir_old = origin_data_root + 'all_50_schemas_old'\n    schema_dir_new = origin_data_root + 'all_50_schemas_new'\n    train_data_dir = origin_data_root + 'train_data.json'\n    dev_data_dir = origin_data_root + 'dev_data.json'\n    test1_data_dir = origin_data_root + 'test1_data_postag.json'\n    test2_data_dir = origin_data_root + 'test2_data_postag.json'\n\n    log_dir = './log'\n    #  -------------- 模型超参数 -----------#\n    k = 9\n    filters = [5, 9, 13]               # CNN卷积核宽度\n    filter_num = 230 # CNN卷积核个数\n    seq_length = 180\n    tuple_max_len = 13\n    bert_hidden_size = 768   # bert隐层维度，固定\n    lam = 0.85           # 越大tag越重要`\n\n    # --------------main.py ----------------#\n    load_ckpt = False\n    ckpt_path = './checkpoints/BERT_CNN_CRF_sl:180_k:[5, 9, 13]_fn:230_lam:0.85_lr:3e-05_epoch:9'\n    num_workers = 1\n    seed = 9979\n    epochs = 10\n    batch_size = 20\n    use_gpu = 1\n    gpu_id = 0\n    # ------------optimizer ------------------#\n    lr = 3e-5\n    full_finetuning = True\n    optimizer = 'Adam'\n    model = 'BERT_MUL_CNN'  # 'BERT_CNN_CRF'\n    clip_grad = 2  # 梯度的最大值\n\n    # ----------预测数据集----------#\n    case = 1 # 0:dev(并测试数据质量) 1:test1, 2:test2\n\n    def parse(self, kwargs):\n        '''\n        user can update the default hyperparamter\n        '''\n        for k, v in kwargs.items():\n            if not hasattr(self, k):\n                raise Exception('opt has No key: {}'.format(k))\n            setattr(self, k, v)\n\n        print('*************************************************')\n        print('user config:')\n        for k, v in self.__class__.__dict__.items():\n            if not k.startswith('__'):\n                print(\"{} => {}\".format(k, getattr(self, k)))\n\n        print('*************************************************')\nopt = Config()\n"
  },
  {
    "path": "data/Data.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport re\nimport os\nimport sys\nimport numpy as np\nimport pickle\n\nfrom torch.utils.data import Dataset\n\nclass Data(Dataset):\n    def __init__(self, opt, case=0):\n        # 0:train, 1:dev, 2 :test\n        data_root = opt.npy_data_root\n        if case == 0:\n            now = 'train/'\n        elif case == 1:\n            now = 'dev/'\n        elif case == 2:\n            now = 'test1/'\n        elif case == 3:\n            now = 'test2/'\n        data_path = data_root + now\n        sens = np.load(data_path+'sens.npy')\n        if case < 2:\n            rels = np.load(data_path+'relations.npy')\n            tags = np.load(data_path+'tags.npy')\n            assert len(sens) == len(tags)\n            self.data = list(zip(sens, tags, rels))\n        else:\n            self.data = list(zip(sens, sens, sens))\n\n    def __len__(self):\n        return len(self.data)\n\n    def __getitem__(self, idx):\n        assert idx < len(self)\n        return self.data[idx]\n\n"
  },
  {
    "path": "data/__init__.py",
    "content": "from .Data import Data\n"
  },
  {
    "path": "data/small/json_data/.ipynb_checkpoints/tag2id_id2tag-checkpoint.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import json\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def write2json(path, data):\\n\",\n    \"    with open(path, 'w') as f:\\n\",\n    \"        f.write(json.dumps(data, ensure_ascii=False))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tag2id = {}\\n\",\n    \"id2tag = {}\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"type2id = json.loads(open('type2id.json', 'r').readline())\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tag2id['O'] = 0\\n\",\n    \"id2tag[0] = 'O'\\n\",\n    \"for type_ in type2id.keys():\\n\",\n    \"    if type_ != 'O':\\n\",\n    \"        B_tag = 'B-'+type_\\n\",\n    \"        I_tag = 'I-'+type_\\n\",\n    \"        tag2id[B_tag] = 2*(type2id[type_]-1) + 1\\n\",\n    \"        tag2id[I_tag] = 2*(type2id[type_]-1) + 2\\n\",\n    \"        id2tag[2*(type2id[type_]-1) + 1] = B_tag\\n\",\n    \"        id2tag[2*(type2id[type_]-1) + 2] = I_tag\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"write2json('tag2id.json', tag2id)\\n\",\n    \"write2json('id2tag.json', id2tag)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "data/small/json_data/id2r.json",
    "content": "{\"0\": \"祖籍\", \"1\": \"父亲\", \"2\": \"总部地点\", \"3\": \"出生地\", \"4\": \"目\", \"5\": \"面积\", \"6\": \"简称\", \"7\": \"上映时间\", \"8\": \"妻子\", \"9\": \"所属专辑\", \"10\": \"注册资本\", \"11\": \"首都\", \"12\": \"导演\", \"13\": \"字\", \"14\": \"身高\", \"15\": \"出品公司\", \"16\": \"修业年限\", \"17\": \"出生日期\", \"18\": \"制片人\", \"19\": \"母亲\", \"20\": \"编剧\", \"21\": \"国籍\", \"22\": \"海拔\", \"23\": \"连载网站\", \"24\": \"丈夫\", \"25\": \"朝代\", \"26\": \"民族\", \"27\": \"号\", \"28\": \"出版社\", \"29\": \"主持人\", \"30\": \"专业代码\", \"31\": \"歌手\", \"32\": \"作词\", \"33\": \"主角\", \"34\": \"董事长\", \"35\": \"成立日期\", \"36\": \"毕业院校\", \"37\": \"占地面积\", \"38\": \"官方语言\", \"39\": \"邮政编码\", \"40\": \"人口数量\", \"41\": \"所在城市\", \"42\": \"作者\", \"43\": \"作曲\", \"44\": \"气候\", \"45\": \"嘉宾\", \"46\": \"主演\", \"47\": \"改编自\", \"48\": \"创始人\", \"49\": \"NA\"}"
  },
  {
    "path": "data/small/json_data/id2tag.json",
    "content": "{\"1\": \"B-地点\", \"2\": \"I-地点\", \"3\": \"B-人物\", \"4\": \"I-人物\", \"5\": \"B-机构\", \"6\": \"I-机构\", \"7\": \"B-生物\", \"8\": \"I-生物\", \"9\": \"B-Number\", \"10\": \"I-Number\", \"11\": \"B-Text\", \"12\": \"I-Text\", \"13\": \"B-Date\", \"14\": \"I-Date\", \"15\": \"B-作品\", \"16\": \"I-作品\", \"17\": \"B-音乐专辑\", \"18\": \"I-音乐专辑\", \"19\": \"B-歌曲\", \"20\": \"I-歌曲\", \"21\": \"B-国家\", \"22\": \"I-国家\", \"23\": \"B-学科专业\", \"24\": \"I-学科专业\", \"25\": \"B-网站\", \"26\": \"I-网站\", \"27\": \"B-书籍\", \"28\": \"I-书籍\", \"29\": \"B-出版社\", \"30\": \"I-出版社\", \"31\": \"B-电视综艺\", \"32\": \"I-电视综艺\", \"33\": \"B-学校\", \"34\": \"I-学校\", \"35\": \"B-语言\", \"36\": \"I-语言\", \"37\": \"B-气候\", \"38\": \"I-气候\", \"0\": \"O\"}"
  },
  {
    "path": "data/small/json_data/id2type.json",
    "content": "{\"1\": \"地点\", \"2\": \"人物\", \"3\": \"机构\", \"4\": \"生物\", \"5\": \"Number\", \"6\": \"Text\", \"7\": \"Date\", \"8\": \"作品\", \"9\": \"音乐专辑\", \"10\": \"歌曲\", \"11\": \"国家\", \"12\": \"学科专业\", \"13\": \"网站\", \"14\": \"书籍\", \"15\": \"出版社\", \"16\": \"电视综艺\", \"17\": \"学校\", \"18\": \"语言\", \"19\": \"气候\", \"0\": \"O\"}"
  },
  {
    "path": "data/small/json_data/r2id.json",
    "content": "{\"祖籍\": 0, \"父亲\": 1, \"总部地点\": 2, \"出生地\": 3, \"目\": 4, \"面积\": 5, \"简称\": 6, \"上映时间\": 7, \"妻子\": 8, \"所属专辑\": 9, \"注册资本\": 10, \"首都\": 11, \"导演\": 12, \"字\": 13, \"身高\": 14, \"出品公司\": 15, \"修业年限\": 16, \"出生日期\": 17, \"制片人\": 18, \"母亲\": 19, \"编剧\": 20, \"国籍\": 21, \"海拔\": 22, \"连载网站\": 23, \"丈夫\": 24, \"朝代\": 25, \"民族\": 26, \"号\": 27, \"出版社\": 28, \"主持人\": 29, \"专业代码\": 30, \"歌手\": 31, \"作词\": 32, \"主角\": 33, \"董事长\": 34, \"成立日期\": 35, \"毕业院校\": 36, \"占地面积\": 37, \"官方语言\": 38, \"邮政编码\": 39, \"人口数量\": 40, \"所在城市\": 41, \"作者\": 42, \"作曲\": 43, \"气候\": 44, \"嘉宾\": 45, \"主演\": 46, \"改编自\": 47, \"创始人\": 48, \"NA\": 49}"
  },
  {
    "path": "data/small/json_data/tag2id.json",
    "content": "{\"B-地点\": 1, \"I-地点\": 2, \"B-人物\": 3, \"I-人物\": 4, \"B-机构\": 5, \"I-机构\": 6, \"B-生物\": 7, \"I-生物\": 8, \"B-Number\": 9, \"I-Number\": 10, \"B-Text\": 11, \"I-Text\": 12, \"B-Date\": 13, \"I-Date\": 14, \"B-作品\": 15, \"I-作品\": 16, \"B-音乐专辑\": 17, \"I-音乐专辑\": 18, \"B-歌曲\": 19, \"I-歌曲\": 20, \"B-国家\": 21, \"I-国家\": 22, \"B-学科专业\": 23, \"I-学科专业\": 24, \"B-网站\": 25, \"I-网站\": 26, \"B-书籍\": 27, \"I-书籍\": 28, \"B-出版社\": 29, \"I-出版社\": 30, \"B-电视综艺\": 31, \"I-电视综艺\": 32, \"B-学校\": 33, \"I-学校\": 34, \"B-语言\": 35, \"I-语言\": 36, \"B-气候\": 37, \"I-气候\": 38, \"O\": 0}"
  },
  {
    "path": "data/small/json_data/type2id.json",
    "content": "{\"地点\": 1, \"人物\": 2, \"机构\": 3, \"生物\": 4, \"Number\": 5, \"Text\": 6, \"Date\": 7, \"作品\": 8, \"音乐专辑\": 9, \"歌曲\": 10, \"国家\": 11, \"学科专业\": 12, \"网站\": 13, \"书籍\": 14, \"出版社\": 15, \"电视综艺\": 16, \"学校\": 17, \"语言\": 18, \"气候\": 19, \"O\": 0}"
  },
  {
    "path": "data/small/json_data/type2types.json",
    "content": "{\"地点\": [\"地点\", \"人物\", \"机构\", \"国家\"], \"Text\": [\"地点\", \"人物\", \"学科专业\", \"机构\"], \"音乐专辑\": [\"歌曲\"], \"语言\": [\"国家\"], \"学科专业\": [], \"学校\": [\"人物\"], \"国家\": [\"人物\"], \"网站\": [\"书籍\"], \"气候\": [\"地点\"], \"电视综艺\": [], \"歌曲\": [], \"机构\": [\"作品\"], \"Date\": [\"人物\", \"作品\", \"机构\"], \"出版社\": [\"书籍\"], \"人物\": [\"电视综艺\", \"歌曲\", \"机构\", \"人物\", \"作品\", \"书籍\"], \"Number\": [\"地点\", \"人物\", \"学科专业\", \"机构\"], \"生物\": [\"生物\"], \"作品\": [\"作品\"], \"O\": [], \"书籍\": []}"
  },
  {
    "path": "data/small/origin_data/all_50_schemas_new",
    "content": "{\"object_type\": \"地点\", \"predicate\": \"祖籍\", \"subject_type\": \"人物\"}\n{\"object_type\": \"人物\", \"predicate\": \"父亲\", \"subject_type\": \"人物\"}\n{\"object_type\": \"地点\", \"predicate\": \"总部地点\", \"subject_type\": \"机构\"}\n{\"object_type\": \"地点\", \"predicate\": \"出生地\", \"subject_type\": \"人物\"}\n{\"object_type\": \"生物\", \"predicate\": \"目\", \"subject_type\": \"生物\"}\n{\"object_type\": \"Number\", \"predicate\": \"面积\", \"subject_type\": \"地点\"}\n{\"object_type\": \"Text\", \"predicate\": \"简称\", \"subject_type\": \"机构\"}\n{\"object_type\": \"Date\", \"predicate\": \"上映时间\", \"subject_type\": \"作品\"}\n{\"object_type\": \"人物\", \"predicate\": \"妻子\", \"subject_type\": \"人物\"}\n{\"object_type\": \"音乐专辑\", \"predicate\": \"所属专辑\", \"subject_type\": \"歌曲\"}\n{\"object_type\": \"Number\", \"predicate\": \"注册资本\", \"subject_type\": \"机构\"}\n{\"object_type\": \"地点\", \"predicate\": \"首都\", \"subject_type\": \"国家\"}\n{\"object_type\": \"人物\", \"predicate\": \"导演\", \"subject_type\": \"作品\"}\n{\"object_type\": \"Text\", \"predicate\": \"字\", \"subject_type\": \"人物\"}\n{\"object_type\": \"Number\", \"predicate\": \"身高\", \"subject_type\": \"人物\"}\n{\"object_type\": \"机构\", \"predicate\": \"出品公司\", \"subject_type\": \"作品\"}\n{\"object_type\": \"Number\", \"predicate\": \"修业年限\", \"subject_type\": \"学科专业\"}\n{\"object_type\": \"Date\", \"predicate\": \"出生日期\", \"subject_type\": \"人物\"}\n{\"object_type\": \"人物\", \"predicate\": \"制片人\", \"subject_type\": \"作品\"}\n{\"object_type\": \"人物\", \"predicate\": \"母亲\", \"subject_type\": \"人物\"}\n{\"object_type\": \"人物\", \"predicate\": \"编剧\", \"subject_type\": \"作品\"}\n{\"object_type\": \"国家\", \"predicate\": \"国籍\", \"subject_type\": \"人物\"}\n{\"object_type\": \"Number\", \"predicate\": \"海拔\", \"subject_type\": \"地点\"}\n{\"object_type\": \"网站\", \"predicate\": \"连载网站\", \"subject_type\": \"书籍\"}\n{\"object_type\": \"人物\", \"predicate\": \"丈夫\", \"subject_type\": \"人物\"}\n{\"object_type\": \"Text\", \"predicate\": \"朝代\", \"subject_type\": \"人物\"}\n{\"object_type\": \"Text\", \"predicate\": \"民族\", \"subject_type\": \"人物\"}\n{\"object_type\": \"Text\", \"predicate\": \"号\", \"subject_type\": \"人物\"}\n{\"object_type\": \"出版社\", \"predicate\": \"出版社\", \"subject_type\": \"书籍\"}\n{\"object_type\": \"人物\", \"predicate\": \"主持人\", \"subject_type\": \"电视综艺\"}\n{\"object_type\": \"Text\", \"predicate\": \"专业代码\", \"subject_type\": \"学科专业\"}\n{\"object_type\": \"人物\", \"predicate\": \"歌手\", \"subject_type\": \"歌曲\"}\n{\"object_type\": \"人物\", \"predicate\": \"作词\", \"subject_type\": \"歌曲\"}\n{\"object_type\": \"人物\", \"predicate\": \"主角\", \"subject_type\": \"书籍\"}\n{\"object_type\": \"人物\", \"predicate\": \"董事长\", \"subject_type\": \"机构\"}\n{\"object_type\": \"Date\", \"predicate\": \"成立日期\", \"subject_type\": \"机构\"}\n{\"object_type\": \"学校\", \"predicate\": \"毕业院校\", \"subject_type\": \"人物\"}\n{\"object_type\": \"Number\", \"predicate\": \"占地面积\", \"subject_type\": \"机构\"}\n{\"object_type\": \"语言\", \"predicate\": \"官方语言\", \"subject_type\": \"国家\"}\n{\"object_type\": \"Text\", \"predicate\": \"邮政编码\", \"subject_type\": \"地点\"}\n{\"object_type\": \"Number\", \"predicate\": \"人口数量\", \"subject_type\": \"地点\"}\n{\"object_type\": \"地点\", \"predicate\": \"所在城市\", \"subject_type\": \"地点\"}\n{\"object_type\": \"人物\", \"predicate\": \"作者\", \"subject_type\": \"书籍\"}\n{\"object_type\": \"Date\", \"predicate\": \"成立日期\", \"subject_type\": \"机构\"}\n{\"object_type\": \"人物\", \"predicate\": \"作曲\", \"subject_type\": \"歌曲\"}\n{\"object_type\": \"气候\", \"predicate\": \"气候\", \"subject_type\": \"地点\"}\n{\"object_type\": \"人物\", \"predicate\": \"嘉宾\", \"subject_type\": \"电视综艺\"}\n{\"object_type\": \"人物\", \"predicate\": \"主演\", \"subject_type\": \"作品\"}\n{\"object_type\": \"作品\", \"predicate\": \"改编自\", \"subject_type\": \"作品\"}\n{\"object_type\": \"人物\", \"predicate\": \"创始人\", \"subject_type\": \"机构\"}\n"
  },
  {
    "path": "data/small/origin_data/all_50_schemas_old",
    "content": "{\"object_type\": \"地点\", \"predicate\": \"祖籍\", \"subject_type\": \"人物\"}\n{\"object_type\": \"人物\", \"predicate\": \"父亲\", \"subject_type\": \"人物\"}\n{\"object_type\": \"地点\", \"predicate\": \"总部地点\", \"subject_type\": \"企业\"}\n{\"object_type\": \"地点\", \"predicate\": \"出生地\", \"subject_type\": \"人物\"}\n{\"object_type\": \"目\", \"predicate\": \"目\", \"subject_type\": \"生物\"}\n{\"object_type\": \"Number\", \"predicate\": \"面积\", \"subject_type\": \"行政区\"}\n{\"object_type\": \"Text\", \"predicate\": \"简称\", \"subject_type\": \"机构\"}\n{\"object_type\": \"Date\", \"predicate\": \"上映时间\", \"subject_type\": \"影视作品\"}\n{\"object_type\": \"人物\", \"predicate\": \"妻子\", \"subject_type\": \"人物\"}\n{\"object_type\": \"音乐专辑\", \"predicate\": \"所属专辑\", \"subject_type\": \"歌曲\"}\n{\"object_type\": \"Number\", \"predicate\": \"注册资本\", \"subject_type\": \"企业\"}\n{\"object_type\": \"城市\", \"predicate\": \"首都\", \"subject_type\": \"国家\"}\n{\"object_type\": \"人物\", \"predicate\": \"导演\", \"subject_type\": \"影视作品\"}\n{\"object_type\": \"Text\", \"predicate\": \"字\", \"subject_type\": \"历史人物\"}\n{\"object_type\": \"Number\", \"predicate\": \"身高\", \"subject_type\": \"人物\"}\n{\"object_type\": \"企业\", \"predicate\": \"出品公司\", \"subject_type\": \"影视作品\"}\n{\"object_type\": \"Number\", \"predicate\": \"修业年限\", \"subject_type\": \"学科专业\"}\n{\"object_type\": \"Date\", \"predicate\": \"出生日期\", \"subject_type\": \"人物\"}\n{\"object_type\": \"人物\", \"predicate\": \"制片人\", \"subject_type\": \"影视作品\"}\n{\"object_type\": \"人物\", \"predicate\": \"母亲\", \"subject_type\": \"人物\"}\n{\"object_type\": \"人物\", \"predicate\": \"编剧\", \"subject_type\": \"影视作品\"}\n{\"object_type\": \"国家\", \"predicate\": \"国籍\", \"subject_type\": \"人物\"}\n{\"object_type\": \"Number\", \"predicate\": \"海拔\", \"subject_type\": \"地点\"}\n{\"object_type\": \"网站\", \"predicate\": \"连载网站\", \"subject_type\": \"网络小说\"}\n{\"object_type\": \"人物\", \"predicate\": \"丈夫\", \"subject_type\": \"人物\"}\n{\"object_type\": \"Text\", \"predicate\": \"朝代\", \"subject_type\": \"历史人物\"}\n{\"object_type\": \"Text\", \"predicate\": \"民族\", \"subject_type\": \"人物\"}\n{\"object_type\": \"Text\", \"predicate\": \"号\", \"subject_type\": \"历史人物\"}\n{\"object_type\": \"出版社\", \"predicate\": \"出版社\", \"subject_type\": \"书籍\"}\n{\"object_type\": \"人物\", \"predicate\": \"主持人\", \"subject_type\": \"电视综艺\"}\n{\"object_type\": \"Text\", \"predicate\": \"专业代码\", \"subject_type\": \"学科专业\"}\n{\"object_type\": \"人物\", \"predicate\": \"歌手\", \"subject_type\": \"歌曲\"}\n{\"object_type\": \"人物\", \"predicate\": \"作词\", \"subject_type\": \"歌曲\"}\n{\"object_type\": \"人物\", \"predicate\": \"主角\", \"subject_type\": \"网络小说\"}\n{\"object_type\": \"人物\", \"predicate\": \"董事长\", \"subject_type\": \"企业\"}\n{\"object_type\": \"Date\", \"predicate\": \"成立日期\", \"subject_type\": \"机构\"}\n{\"object_type\": \"学校\", \"predicate\": \"毕业院校\", \"subject_type\": \"人物\"}\n{\"object_type\": \"Number\", \"predicate\": \"占地面积\", \"subject_type\": \"机构\"}\n{\"object_type\": \"语言\", \"predicate\": \"官方语言\", \"subject_type\": \"国家\"}\n{\"object_type\": \"Text\", \"predicate\": \"邮政编码\", \"subject_type\": \"行政区\"}\n{\"object_type\": \"Number\", \"predicate\": \"人口数量\", \"subject_type\": \"行政区\"}\n{\"object_type\": \"城市\", \"predicate\": \"所在城市\", \"subject_type\": \"景点\"}\n{\"object_type\": \"人物\", \"predicate\": \"作者\", \"subject_type\": \"图书作品\"}\n{\"object_type\": \"Date\", \"predicate\": \"成立日期\", \"subject_type\": \"企业\"}\n{\"object_type\": \"人物\", \"predicate\": \"作曲\", \"subject_type\": \"歌曲\"}\n{\"object_type\": \"气候\", \"predicate\": \"气候\", \"subject_type\": \"行政区\"}\n{\"object_type\": \"人物\", \"predicate\": \"嘉宾\", \"subject_type\": \"电视综艺\"}\n{\"object_type\": \"人物\", \"predicate\": \"主演\", \"subject_type\": \"影视作品\"}\n{\"object_type\": \"作品\", \"predicate\": \"改编自\", \"subject_type\": \"影视作品\"}\n{\"object_type\": \"人物\", \"predicate\": \"创始人\", \"subject_type\": \"企业\"}\n"
  },
  {
    "path": "data/small/origin_data/切词测试.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Better speed can be achieved with apex installed from https://www.github.com/nvidia/apex.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from pytorch_pretrained_bert import BertTokenizer\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tokenizer = BertTokenizer.from_pretrained('../../../bert-base-chinese/vocab_unk.txt', do_lower_case=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_positions(data_list, map_str):\\n\",\n    \"    map_str = tokenizer.tokenize(map_str)\\n\",\n    \"    map_str = [i.replace('#', '') for i in map_str]\\n\",\n    \"    map_str = ''.join(map_str)\\n\",\n    \"    # 如果只由一个词组成\\n\",\n    \"    for word in data_list:\\n\",\n    \"        if map_str.lower() in word.lower():\\n\",\n    \"            start_id = end_id = data_list.index(word)\\n\",\n    \"            return start_id, end_id\\n\",\n    \"\\n\",\n    \"    start_id = -1\\n\",\n    \"    end_id = -1\\n\",\n    \"    for idx, word in enumerate(data_list):\\n\",\n    \"        if start_id != - 1 and end_id != -1:\\n\",\n    \"            return start_id, end_id\\n\",\n    \"        if map_str.startswith(word):\\n\",\n    \"            start_id = end_id = idx\\n\",\n    \"            while end_id+1 < len(data_list) and data_list[end_id+1] in map_str:\\n\",\n    \"                if \\\"\\\".join(data_list[start_id:end_id+2]) == map_str:\\n\",\n    \"                    print(\\\"\\\".join(data_list[start_id:end_id+2]))\\n\",\n    \"                    return start_id, end_id+1\\n\",\n    \"                end_id += 1\\n\",\n    \"            find_str = \\\"\\\"\\n\",\n    \"            for idx in range(start_id, end_id+1):\\n\",\n    \"                find_str = find_str + data_list[idx]\\n\",\n    \"            if find_str != map_str:\\n\",\n    \"                pre_extend = (data_list[start_id-1] if start_id > 0 else \\\"\\\") + find_str\\n\",\n    \"                last_extend = find_str + (data_list[end_id+1] if end_id < len(data_list)-1 else \\\"\\\")\\n\",\n    \"                pre_last_extend = (data_list[start_id-1] if start_id > 0 else \\\"\\\")+ find_str + (data_list[end_id+1] if end_id < len(data_list)-1 else \\\"\\\")\\n\",\n    \"                print(\\\"need:{} \\\\nfind:{} \\\\n pre:{}\\\\n last:{} \\\\n pre_las:{}\\\".format(map_str,find_str, pre_extend,pre_extend,pre_last_extend))\\n\",\n    \"                if map_str in pre_extend:\\n\",\n    \"                    start_id -= 1\\n\",\n    \"                elif map_str in last_extend:\\n\",\n    \"                    end_id += 1\\n\",\n    \"                elif map_str in pre_last_extend:\\n\",\n    \"                    start_id -= 1\\n\",\n    \"                    end_id += 1\\n\",\n    \"                else:\\n\",\n    \"                    start_id = -1\\n\",\n    \"                    end_id = -1\\n\",\n    \"    if start_id != -1 and end_id != -1:\\n\",\n    \"        return start_id, end_id\\n\",\n    \"    for idx, word in enumerate(data_list[:-1]):\\n\",\n    \"        if map_str in (word+data_list[idx+1]):\\n\",\n    \"            return idx, idx+1\\n\",\n    \"    # print(\\\"word_list{}  map_str {} loss\\\".format(data_list, map_str))\\n\",\n    \"    return start_id, end_id\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"text = '《李烈钧自述》是2011年11月1日人民日报出版社出版的图书，作者是李烈钧'\\n\",\n    \"word_list = tokenizer.tokenize(text)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"人民日报出版社\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(14, 20)\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"get_positions(word_list, '人民日报出版社')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['机', '械', '工', '业', '出', '版', '社']\"\n      ]\n     },\n     \"execution_count\": 33,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"word_list[10:17]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "data/small/origin_data/统计实体类别数目.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import json\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def load_data(path):\\n\",\n    \"    '''\\n\",\n    \"    加载数据，返回json数组.\\n\",\n    \"    '''\\n\",\n    \"    data = []\\n\",\n    \"    data_lines = open(path, encoding='utf-8').readlines()\\n\",\n    \"    for line in data_lines:\\n\",\n    \"        line_json = json.loads(line)\\n\",\n    \"        if len(line_json['postag']) == 0:\\n\",\n    \"            continue\\n\",\n    \"        if 'spo_list' in line_json.keys() and len(line_json['spo_list']) == 0:\\n\",\n    \"            continue\\n\",\n    \"        data.append(line_json)\\n\",\n    \"    return data\\n\",\n    \"train_data = load_data('./train_data.json')\\n\",\n    \"dev_data = load_data('./dev_data.json')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 统计类别数目\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_type2num(datas):\\n\",\n    \"    type2num = {}\\n\",\n    \"    for data in datas:\\n\",\n    \"        spo_list = data['spo_list']\\n\",\n    \"        for spo in spo_list:\\n\",\n    \"            obj_type = spo['object_type']\\n\",\n    \"            sbj_type = spo['subject_type']\\n\",\n    \"#             if obj_type == \\\"机构\\\" or sbj_type == '机构':\\n\",\n    \"#                 print(data['text'])\\n\",\n    \"#                 print(data['spo_list'])\\n\",\n    \"            if obj_type not in type2num.keys():\\n\",\n    \"                type2num[obj_type] = 1\\n\",\n    \"            else:\\n\",\n    \"                type2num[obj_type] += 1\\n\",\n    \"            if sbj_type not in type2num.keys():\\n\",\n    \"                type2num[sbj_type] = 1\\n\",\n    \"            else:\\n\",\n    \"                type2num[sbj_type] += 1\\n\",\n    \"    return type2num\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"type_num_train = get_type2num(train_data)\\n\",\n    \"type_num_dev = get_type2num(dev_data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 50,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'人物': 292928, '影视作品': 100202, '目': 10327, '生物': 10327, 'Number': 5276, 'Date': 39704, '国家': 12800, '网站': 12876, '网络小说': 13126, '图书作品': 33848, '歌曲': 54654, '地点': 24147, '气候': 920, '行政区': 2014, 'Text': 20193, '历史人物': 7682, '学校': 11514, '企业': 19388, '出版社': 17706, '书籍': 17706, '音乐专辑': 10399, '城市': 972, '景点': 575, '电视综艺': 2879, '机构': 5309, '作品': 553, '语言': 145, '学科专业': 46}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(type_num_train)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 51,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'地点': 2904, '人物': 36535, 'Date': 4961, '歌曲': 6614, '企业': 2509, '影视作品': 12505, '图书作品': 4393, '出版社': 2272, '书籍': 2272, '国家': 1717, 'Text': 2532, '目': 1268, '生物': 1268, '机构': 653, '网站': 1657, '网络小说': 1696, '音乐专辑': 1287, 'Number': 686, '学校': 1433, '历史人物': 951, '电视综艺': 379, '城市': 124, '景点': 77, '作品': 71, '行政区': 231, '气候': 103, '学科专业': 5, '语言': 15}\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(type_num_dev)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.7\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "helpData.py",
    "content": "import json\nimport os\nimport re\nimport numpy as np\nfrom pytorch_pretrained_bert import BertTokenizer\nimport metrics\nfrom config import opt\n\ndef load_data(path, case=0):\n    '''\n    加载数据，字典数据列表.\n    0:加载原始json数据\n    1:加载schema数据\n    '''\n    data = []\n    if case == 1:\n        data_lines = open(path, encoding='utf-8').readlines()\n        for line in data_lines:\n            line_json = json.loads(line)\n            data.append(line_json)\n        return data\n    data_lines = open(path, encoding='utf-8').readlines()\n    for line in data_lines:\n        line_json = json.loads(line)\n        if line_json.get('postag', None) is None or len(line_json['postag']) == 0:\n            continue\n        if 'spo_list' in line_json.keys() and len(line_json['spo_list']) == 0:\n            continue\n        data.append(line_json)\n    return data\n\ndef write2file(data, path):\n    with open(path, 'w') as f:\n        f.write(json.dumps(data, ensure_ascii=False))\n\nclass DataHelper(object):\n    def __init__(self, opt):\n        self.opt = opt\n        self.tokenizer = BertTokenizer.from_pretrained(opt.bert_vocab_unk, do_lower_case=True)\n        self.id2r, self.r2id = None, None\n        self.id2tag, self.tag2id = None, None\n        self.id2type, self.type2id = None, None\n        self.type2types = None\n        self.get_relations()\n\n        self.origin_train_data = self.down2topForDatas(load_data(self.opt.train_data_dir))\n        self.origin_dev_data = self.down2topForDatas(load_data(self.opt.dev_data_dir))\n        self.origin_test1_data = load_data(self.opt.test1_data_dir)\n\n    def get_relations(self):\n        \"\"\"\n        得到所有的xx2xx文件\n        \"\"\"\n        origin_50_schema = load_data(self.opt.schema_dir_old, case=1)\n        new_50_schema = load_data(self.opt.schema_dir_new, case=1)\n        self.down2top = {}  # 记录类别的上下为关系\n        for old, new in zip(origin_50_schema, new_50_schema):\n            old_sample_obj_type = old['object_type']\n            old_sample_sbj_type = old['subject_type']\n            new_sample_obj_type = new['object_type']\n            new_sample_sbj_type = new['subject_type']\n            top_obj, top_sbj = self.down2top.get(old_sample_obj_type, None), self.down2top.get(old_sample_sbj_type, None)\n            assert (top_obj == None or top_obj == new_sample_obj_type) \\\n                and (top_sbj == None or top_sbj == new_sample_sbj_type)\n            self.down2top[old_sample_obj_type] = new_sample_obj_type\n            self.down2top[old_sample_sbj_type] = new_sample_sbj_type\n        print(\"上下位关系为:{}\".format(self.down2top))\n\n        self.r2id= {}\n        self.id2r = {}\n        self.id2tag = {}\n        self.tag2id = {}\n        self.id2type = {}\n        self.type2id = {}\n        exist_ent_type, exist_rel_type = set(), set()\n        for sample in new_50_schema:\n            obj, r, sbj = sample['object_type'], sample['predicate'], sample['subject_type']\n            if obj not in exist_ent_type:\n                self.id2type[len(exist_ent_type)+1] = obj\n                self.id2tag[2*len(exist_ent_type)+1]='B-'+ obj\n                self.id2tag[2*len(exist_ent_type)+2]='I-'+ obj\n                exist_ent_type.add(obj)\n            if sbj not in exist_ent_type:\n                self.id2type[len(exist_ent_type)+1] = sbj\n                self.id2tag[2*len(exist_ent_type)+1]='B-'+sbj\n                self.id2tag[2*len(exist_ent_type)+2]='I-'+sbj\n                exist_ent_type.add(sbj)\n            if r not in exist_rel_type:\n                # 49给NA\n                self.id2r[len(exist_rel_type)] = r\n                exist_rel_type.add(r)\n\n        self.id2r[len(exist_rel_type)] = 'NA'\n        exist_rel_type.add('NA')\n        self.id2tag[0] = 'O'\n        exist_ent_type.add('O')\n        self.id2type[0] = 'O'\n\n        print(\"实体类型数目为:{};关系数目为:{}\".format(len(exist_ent_type), len(exist_rel_type)))\n        self.r2id = {self.id2r[idx]:idx for idx in self.id2r.keys()}\n        self.tag2id = {self.id2tag[idx]: idx for idx in self.id2tag.keys()}\n        self.type2id = {self.id2type[idx]: idx for idx in self.id2type.keys()}\n\n        self.type2types = {ent:set() for ent in exist_ent_type}\n        for sample in new_50_schema:\n            obj, r, sbj = sample['object_type'], sample['predicate'], sample['subject_type']\n            self.type2types[obj].add(sbj)\n\n        self.type2types = {ent: list(self.type2types[ent]) for ent in self.type2types.keys()}\n\n        # 写入文件\n        print(\"写入xx2xx数据到目录{}..\".format(self.opt.json_data_root))\n        write2file(self.id2r, self.opt.id2r_dir)\n        write2file(self.r2id, self.opt.r2id_dir)\n        write2file(self.id2tag, self.opt.id2tag_dir)\n        write2file(self.tag2id, self.opt.tag2id_dir)\n        write2file(self.id2type, self.opt.id2type_dir)\n        write2file(self.type2id, self.opt.type2id_dir)\n        write2file(self.type2types, self.opt.type2types_dir)\n\n    def down2topForDatas(self, datas):\n        topDatas = []\n        for data in datas:\n            text = data['text']\n            downSpoList = data['spo_list']\n            topSpoList = []\n            for spo in downSpoList:\n                spo['object_type'] = self.down2top[spo['object_type']]\n                spo['subject_type'] = self.down2top[spo['subject_type']]\n                topSpoList.append(spo)\n            dataUnit = {}\n            dataUnit['text'] = text\n            dataUnit['spo_list'] = topSpoList\n            topDatas.append(dataUnit)\n        return topDatas\n\n    def get_positions(self, data_list, map_str):\n        \"\"\"\n        返回实体在单词列表中的位置\n        sample:\n        >> input: ['球','星','姚'，'明', ...., ], '姚明'\n        >> return: (2, 3)\n        \"\"\"\n        map_str = map_str.strip().replace(' ', '$')\n        map_str = self.tokenizer.tokenize(map_str)\n        map_str = [i.replace('#', '') for i in map_str]\n        map_str = ''.join(map_str)\n        data_list = [i.replace('#', '') for i in data_list]\n        # 如果只由一个词组成\n        for word in data_list:\n            if map_str.lower() in word.lower():\n                start_id = end_id = data_list.index(word)\n                return start_id, end_id\n\n        start_id = -1\n        end_id = -1\n        for idx, word in enumerate(data_list):\n            if start_id != - 1 and end_id != -1:\n                return start_id, end_id\n            if map_str.startswith(word):\n                start_id = end_id = idx\n                while end_id+1 < len(data_list) and data_list[end_id+1] in map_str:\n                    if \"\".join(data_list[start_id:end_id+2]) == map_str:\n                        # print(\"\".join(data_list[start_id:end_id+3]))\n                        return start_id, end_id+1\n                    end_id += 1\n                find_str = \"\"\n                for idx in range(start_id, end_id+1):\n                    find_str = find_str + data_list[idx]\n                if find_str != map_str:\n                    pre_extend = (data_list[start_id-1] if start_id > 0 else \"\") + find_str\n                    last_extend = find_str + (data_list[end_id+1] if end_id < len(data_list)-1 else \"\")\n                    pre_last_extend = (data_list[start_id-1] if start_id > 0 else \"\")+ find_str + (data_list[end_id+1] if end_id < len(data_list)-1 else \"\")\n                    if map_str in pre_extend:\n                        start_id -= 1\n                    elif map_str in last_extend:\n                        end_id += 1\n                    elif map_str in pre_last_extend:\n                        start_id -= 1\n                        end_id += 1\n                    else:\n                        start_id = -1\n                        end_id = -1\n        if start_id != -1 and end_id != -1:\n            return start_id, end_id\n        for idx, word in enumerate(data_list[:-1]):\n            if map_str in (word+data_list[idx+1]):\n                return idx,idx+1\n        # print(\"word_list{}  map_str {} loss\".format(data_list, map_str))\n        return start_id, end_id\n\n    def get_tag(self, word_list, entity_list, type_list):\n        '''\n        得到一个句子的tag标签\n        sampple:\n        >> input: ['球'，'星', '姚'， '明', ...], ['姚明']， ['人物']\n        >> return: ['O', 'O', 'id(B-人物), id(I-人物)']\n        '''\n        word_list = [word.replace('#', '')for word in word_list]\n        tag_list = [0] * len(word_list)\n        for entity, type_ in zip(entity_list, type_list):\n            start_id, end_id = self.get_positions(word_list, entity)\n            if start_id == -1 or end_id == -1:\n                continue\n            # 补充书名号\n            #  if start_id > 0 and end_id < len(word_list)-1:\n            #      if word_list[start_id-1] == '《' and word_list[end_id+1] == '》':\n            #          start_id -= 1\n            #          end_id += 1\n            Bid = 2 * (self.type2id[type_]-1) + 1\n            Iid = 2 * (self.type2id[type_]-1) + 2\n            tag_list[start_id] = Bid\n            if start_id < end_id:\n                for idx in range(start_id+1, end_id+1):\n                    tag_list[idx] = Iid\n        return tag_list\n\n    def get_entity_list_and_type_list(self, data_list):\n        \"\"\"\n        得到实体和对应的类型列表，一一对应\n        sample:\n        >> input: [姚明，NBA]\n        >> return:[人，组织]\n        \"\"\"\n        entity_list, type_list = [], []\n        for unit in data_list:\n            entity_list.append(unit['object'])\n            type_list.append(unit['object_type'])\n            entity_list.append(unit['subject'])\n            type_list.append(unit['subject_type'])\n        return entity_list, type_list\n\n\n    def get_sample_exist_entity2rlation(self, word_list, spo_list):\n        \"\"\"\n        给定句子的 bert切词列表, 一句话的spo_list\n        返回该句话存在的头实体尾实体位置及对应的关系字典\n        {(obj_s, obj_e, sbj_s, sbj_e): r}\n        \"\"\"\n        golden_map = {}\n        word_list = [word.replace('#', '')for word in word_list]\n        for spo in spo_list:\n            obj = spo['object']\n            sbj = spo['subject']\n            o_s, o_e = self.get_positions(word_list, obj)\n            # if o_s > 0 and o_e < len(word_list)-1:\n            #     if word_list[o_s-1] == '《' and word_list[o_e+1] == '》':\n            #         o_s -= 1\n            #         o_e += 1\n            s_s, s_e = self.get_positions(word_list, sbj)\n            # if s_s > 0 and s_e < len(word_list)-1:\n            #     if word_list[s_s-1] == '《' and word_list[s_e+1] == '》':\n            #         s_s -= 1\n            #         s_e += 1\n            r = self.r2id[spo['predicate']]\n            golden_map[(o_s, o_e, s_s, s_e)] = r\n        return golden_map\n\n    def get_sample_all_entity2relation(self, tags_list, golden_map):\n        \"\"\"\n        返回一个句子所有可能实体组合极其关系\n        [[s1, e1, s2, e2, r],\n         [s1, e1, s2, e2, 0]\n         ...]]\n        \"\"\"\n        all_entity = []\n        NA_entity = []\n        NA_num = 0\n        rel_num = 0\n        tags_list = [self.id2tag[i] for i in tags_list]\n        ent_and_position = metrics.get_entities(tags_list)\n        for ent1 in ent_and_position:\n            for ent2 in ent_and_position:\n                if ent2 == ent1:\n                    continue\n                ent2_for_ent1 = self.type2types.get(ent1[0], [])\n                if ent2[0] not in ent2_for_ent1:\n                    continue\n                entity_tuple = (ent1[1], ent1[2], ent2[1], ent2[2])\n                # 0代表关系为NA\n                re = golden_map.get(entity_tuple, self.r2id['NA'])\n                ent_list = [entity_tuple[i] for i in range(4)]\n                ent_list.append(re)\n                if re == self.r2id['NA']:\n                    NA_entity.append(ent_list)\n                else:\n                    all_entity.append(ent_list)\n        rel_num = len(all_entity)\n        if len(NA_entity) > 0:\n            all_entity.extend(NA_entity[:min(2,len(NA_entity))])\n            NA_num =  min(opt.naNum, len(NA_entity))\n        return all_entity, rel_num, NA_num\n\n    def get_sens_and_tags_and_entsRel(self, datas, case=0):\n        rel_max_sen = -1\n        exceed_length_num = 0\n        NA_num = 0\n        max_r_num = 0\n        all_rel_num = 0\n        sens, tags, ent_rel = [], [], []\n        PAD = self.tokenizer.convert_tokens_to_ids(['[PAD]'])\n        O_tag = [self.type2id['O']]\n        for data in datas:\n            text = data['text']\n            # 一共修改3处， util中一处 此文件两处去掉首位空格，然后将空格替换为@\n            text = text.strip().replace(' ', '$')\n            word_list = self.tokenizer.tokenize(text)\n            sen = self.tokenizer.convert_tokens_to_ids(word_list)\n            rel_max_sen = max(rel_max_sen, len(word_list))\n            if len(word_list) > self.opt.seq_length:\n                exceed_length_num += 1\n\n            if len(word_list) < self.opt.seq_length:\n                sen = sen + PAD * (self.opt.seq_length - len(sen))\n            else:\n                sen = sen[:self.opt.seq_length]\n            sens.append(sen)\n\n            if case >= 2:\n                continue\n            entity_list, type_list = self.get_entity_list_and_type_list(data['spo_list'])\n            #__import__('ipdb').set_trace()\n            # '▌1999年：「喜剧之王」前两年的贺岁档其实都有星爷，只不过作品票房一直跟不上'\n            tag = self.get_tag(word_list, entity_list, type_list)\n            assert len(word_list) == len(tag)\n            if len(word_list) < self.opt.seq_length:\n                tag = tag + O_tag * (self.opt.seq_length - len(tag))\n            else:\n                tag = tag[:self.opt.seq_length]\n            tags.append(tag)\n\n            # __import__('ipdb').set_trace()\n            exist_map = self.get_sample_exist_entity2rlation(word_list, data['spo_list'])\n            if case == 0:\n                all_e2r, rel_num, NAs = self.get_sample_all_entity2relation(tag, exist_map)\n                NA_num += NAs\n            else:\n                all_e2r = []\n                for key in exist_map.keys():\n                    e2r = [key[0], key[1], key[2], key[3], exist_map[key]]\n                    all_e2r.append(e2r)\n            all_rel_num += len(exist_map)\n            max_r_num = max(max_r_num, len(all_e2r))\n            ent_rel.append(all_e2r)\n        sens = np.array(sens)\n        tags = np.array(tags)\n        ent_rel = np.array(ent_rel)\n\n        root_path = self.opt.npy_data_root\n        if case == 0:\n            branch = 'train/'\n        if case == 1:\n            branch = 'dev/'\n        if case == 2:\n            branch = 'test1/'\n        if case == 3:\n            branch = 'test2/'\n        data_root = root_path + branch\n        print(\"存在关系数:{};NA关系数{}; 每句话中最大关系数(含NA):{}\".format(all_rel_num, NA_num, max_r_num))\n        print(\"真实最大长度{}; 设置最大长度{}; 超过长度数{}\".format(rel_max_sen, self.opt.seq_length, exceed_length_num))\n        print(\"saving data in {}\".format(data_root))\n        np.save(data_root+'sens', sens)\n        if case < 2:\n            np.save(data_root+'tags', tags)\n            np.save(data_root+'relations', ent_rel)\n    def process_data(self):\n        if self.origin_train_data is not None:\n            print(\"process train data\")\n            self.get_sens_and_tags_and_entsRel(self.origin_train_data, case=0)\n        if self.origin_dev_data is not None:\n            print(\"process dev data\")\n            self.get_sens_and_tags_and_entsRel(self.origin_dev_data, case=1)\n        if self.origin_test1_data is not None:\n            print(\"process test1 data\")\n            self.get_sens_and_tags_and_entsRel(self.origin_test1_data, case=2)\n        print(\"确定数据质量...\")\n        metrics.judge_data_quality(self.opt)\n\n\nif __name__ == '__main__':\n    dataHelper = DataHelper(opt)\n    dataHelper.process_data()\n"
  },
  {
    "path": "main.py",
    "content": "# -*- encoding: utf-8 -*-\nimport time\nimport random\nimport models\nimport torch\nimport logging\nimport fire\nimport json\nimport numpy as np\nimport torch.optim as optim\n\nfrom tqdm import trange\nfrom torch.optim.lr_scheduler import LambdaLR\nfrom torch.utils.data import DataLoader\nimport utils\nimport config\nfrom data import Data\nfrom metrics import f1_score, f1_score_ent_rel, eval_file\nfrom config import opt\n\ndef load_data(path):\n    '''\n    加载数据，返回json数组.\n    '''\n    data = []\n    data_lines = open(path, encoding='utf-8').readlines()\n    for line in data_lines:\n        line_json = json.loads(line)\n        if len(line_json['postag']) == 0:\n            continue\n        if 'spo_list' in line_json.keys() and len(line_json['spo_list']) == 0:\n            continue\n        data.append(line_json)\n    return data\n\ndef now():\n    return str(time.strftime('%Y-%m-%d %H:%M:%S'))\n\n\ndef collate_fn(batch):\n    data, label, rel = zip(*batch)\n    return data, label, rel\n\ndef set_up(opt):\n    random.seed(opt.seed)\n    np.random.seed(opt.seed)\n    torch.manual_seed(opt.seed)\n    if opt.use_gpu:\n        torch.cuda.manual_seed_all(opt.seed)\n\n\ndef train(**kwargs):\n\n    # 1 config\n    opt.parse(kwargs)\n    set_up(opt)\n    if opt.use_gpu:\n        torch.cuda.set_device(opt.gpu_id)\n    # 2 model\n    model = getattr(models, opt.model)(opt)\n    if opt.use_gpu:\n        model.cuda()\n    if opt.load_ckpt:\n        logging.info(\"{} load ckpt from {}\".format(now(), opt.ckpt))\n        model.load(opt.ckpt_path)\n\n    # 3 data\n    train_data = Data(opt, case=0)\n    train_data_loader = DataLoader(train_data, opt.batch_size, shuffle=False, num_workers=opt.num_workers, collate_fn=collate_fn)\n    dev_data = Data(opt, case=1)\n    dev_data_loader = DataLoader(dev_data, batch_size=opt.batch_size, shuffle=False, num_workers=opt.num_workers, collate_fn=collate_fn)\n\n    utils.set_logger(opt.log_dir)\n    logging.info(\"lamba: {}, na num: {}, data set:{}\".format(opt.lam, opt.naNum, opt.dataset))\n    logging.info(\"CNN k:{}, filter num:{}, seq length:{}, tuple max length:{}\".format(opt.filters, opt.filter_num, opt.seq_length, opt.tuple_max_len))\n    logging.info('{};train data: {}; dev data: {}'.format(now(), len(train_data), len(dev_data)))\n\n    # 4 optimiezer\n    train_steps = (len(train_data) + opt.batch_size - 1) // opt.batch_size\n    dev_steps = (len(dev_data) + opt.batch_size - 1) // opt.batch_size\n\n    if opt.full_finetuning:\n        param_optimizer = list(model.named_parameters())\n        no_decay = ['bias', 'LayerNorm.bias', 'LayerNorm.weight']\n        # no_decay = ['bias', 'gamma', 'beta']\n        optimizer_grouped_parameters = [\n            {'params': [p for n, p in param_optimizer if not any(nd in n for nd in no_decay)],\n             'weight_decay_rate': 0.01},\n            {'params': [p for n, p in param_optimizer if any(nd in n for nd in no_decay)],\n             'weight_decay_rate': 0.0}\n        ]\n    else:\n        param_optimizer = list(model.classifier.named_parameters())\n        optimizer_grouped_parameters = [{'params': [p for n, p in param_optimizer]}]\n    optimizer = optim.Adam(optimizer_grouped_parameters, lr=opt.lr)\n    scheduler = LambdaLR(optimizer, lr_lambda=lambda epoch: 1/(1 + 0.95*epoch))\n    # training\n    for epoch in range(opt.epochs):\n        logging.info(\"{}; epoch:{}/{};training....\".format(now(), epoch, opt.epochs))\n        model.train()\n        scheduler.step()\n        loss_avg = utils.RunningAverage()\n        loss_tag_avg = utils.RunningAverage()\n        loss_rel_avg = utils.RunningAverage()\n\n        data_interator = enumerate(train_data_loader)\n        t = trange(train_steps)\n        for i in t:\n            idx, data = next(data_interator)\n            sens , tags = list(map(lambda x: torch.LongTensor(x), data[:2]))\n            entRels = data[-1]\n            if opt.use_gpu:\n                sens = sens.cuda()\n                tags = tags.cuda()\n            loss_tags, loss_rels = model(sens, tags, entRels)\n            loss = opt.lam * loss_tags + (1-opt.lam)*loss_rels\n            # 梯度裁剪\n            model.zero_grad()\n            loss.backward()\n            torch.nn.utils.clip_grad_norm_(parameters=model.parameters(), max_norm=opt.clip_grad)\n            optimizer.step()\n\n            loss_avg.update(loss.item())\n            loss_tag_avg.update(loss_tags.item())\n            loss_rel_avg.update(loss_rels.item())\n            t.set_postfix(loss='{:05.3f}/{:05.3f}'.format(loss_avg(), loss.item()), \\\n                          tag_loss='{:05.3f}/{:05.3f}'.format(loss_tag_avg(), loss_tags.item()), \\\n                          rel_loss='{:05.3f}/{:05.3f}'.format(loss_rel_avg(), loss_rels.item()))\n\n        print(\"saving model ..\")\n        model.save(opt, epoch)\n        #print(\"evaluate train set: \")\n        #evaluate(opt, model, train_steps, train_data_loader, epoch, case='train')\n        print(\"evaluate dev set: \")\n        evaluate(opt, model, dev_steps, dev_data_loader, epoch, case='dev')\n\n\ndef evaluate(opt, model, steps, data_loader, epoch, case='dev'):\n    model.eval()\n    predicts = []\n    goldens = []\n    g_entRel_t = []\n    p_entRel_t = []\n    tag2id = json.loads(open(opt.tag2id_dir, 'r').readline())\n    id2tag = {tag2id[k]: k for k in tag2id.keys()}\n    with torch.no_grad():\n        data_interator = enumerate(data_loader)\n        t = trange(steps)\n        for i in t:\n            idx, data = next(data_interator)\n            sens, g_tags = list(map(lambda x: torch.LongTensor(x), data[:2]))\n            g_entRel = data[-1]\n            if opt.use_gpu:\n                sens = sens.cuda()\n                g_tags = g_tags.cuda()\n            p_tags, all_out = model(sens, None, None)\n            if 'crf' not in opt.model.lower():\n                p_tags = torch.max(p_tags, 2)[1]\n            if opt.use_gpu:\n                g_tags = g_tags.cpu()\n                if 'crf' not in opt.model.lower():\n                    p_tags = p_tags.cpu()\n            g_tags = g_tags.tolist()\n            goldens.extend([id2tag.get(idx) for indices in g_tags for idx in indices])\n            if 'crf' not in opt.model.lower():\n                p_tags = p_tags.tolist()\n            predicts.extend([id2tag.get(idx) for indices in p_tags for idx in indices])\n            g_entRel_t.extend(g_entRel)\n            p_entRel_t.extend(all_out)\n        # 测试单纯的位置对应准确率\n    assert len(g_entRel_t) == len(p_entRel_t)\n    p_t, r_t, f_t = f1_score_ent_rel(g_entRel_t, p_entRel_t)\n    logging.info(\"epoch {}; POS: pre: {}; rel: {}; f1: {}\".format(epoch, p_t, r_t, f_t))\n\n    # 测试实际转换为文字的准确率\n    if case =='dev':\n        data_path = opt.dev_data_dir\n    else:\n        data_path = opt.train_data_dir\n    json_data = load_data(data_path)\n    # assert len(json_data) == len(p_entRel_t)\n    predict_data =  utils.get_text_spolist(opt, p_entRel_t, json_data)\n    p, r, f = eval_file(predict_data, data_path)\n    logging.info(\"epoch {}; REL: pre:{};rel:{};f1:{}\".format(epoch, p,r,f))\n\n    assert len(g_tags) == len(p_tags)\n    p, r, f = f1_score(goldens, predicts)\n    logging.info(\"epoch {}; NER: pre: {}; rel: {}; f1: {}\".format(epoch, p, r, f))\n\ndef tofile(**kwargs):\n    opt.parse(kwargs)\n    if opt.use_gpu:\n        torch.cuda.set_device(opt.gpu_id)\n    # 2 model\n    model = getattr(models, opt.model)(opt)\n    if opt.use_gpu:\n        model.cuda()\n    print(\"{} load ckpt from: {}\".format(now(), opt.ckpt_path))\n    model.load(opt.ckpt_path)\n    model.eval()\n    data = Data(opt, case=opt.case+1)\n    data_loader = DataLoader(data, batch_size=opt.batch_size, shuffle=False, num_workers=opt.num_workers, collate_fn=collate_fn)\n    print(\"predict case:{},data num:{}\".format(opt.case, len(data)))\n\n\n\n    tag2id = json.loads(open(opt.tag2id_dir, 'r').readline())\n    id2tag = {tag2id[k]: k for k in tag2id.keys()}\n\n    steps = (len(data) + opt.batch_size - 1) // opt.batch_size\n    data_interator = enumerate(data_loader)\n    t = trange(steps)\n    p_entRel_t = []\n    dev_entRel_t = []\n    pred_tags = []\n    true_tags = []\n    with torch.no_grad():\n        for i in t:\n            idx, data = next(data_interator)\n            sens, true_tag = list(map(lambda x: torch.LongTensor(x), data[:2]))\n            dev_entRel = data[-1]\n            if opt.use_gpu:\n                sens = sens.cuda()\n            p_tags, all_out = model(sens, None, None)\n            if 'crf' not in opt.model.lower():\n                p_tags = torch.max(p_tags, 2)[1]\n            if opt.use_gpu:\n                if 'crf' not in opt.model.lower():\n                    p_tags = p_tags.cpu()\n            p_entRel_t.extend(all_out)\n            dev_entRel_t.extend(dev_entRel)\n            true_tags.extend(true_tag.tolist())\n            if 'crf' not in opt.model.lower():\n                pred_tags.extend(p_tags.tolist())\n            else:\n                pred_tags.extend(p_tags)\n\n    if opt.case == 0:\n        data_path = opt.dev_data_dir\n    elif opt.case == 1:\n        data_path = opt.test1_data_dir\n    else:\n        data_path = opt.test2_data_dir\n    json_data = load_data(data_path)[:len(true_tags)]\n    # assert len(json_data) == len(p_entRel_t)\n    predict_data =  utils.get_text_spolist(opt, p_entRel_t, json_data)\n    if opt.case == 0:\n        p, r, f = eval_file(predict_data, opt.dev_data_dir)\n        print(\"predict res: pre:{};rel:{};f1:{}\".format(p,r,f))\n    with open('out/pred_out', 'w') as f:\n        for p_data in predict_data:\n            f.write(json.dumps(p_data, ensure_ascii=False)+'\\n')\n\n    if opt.case == 0:\n        dev_data = utils.get_text_spolist(opt,dev_entRel_t, json_data)\n        p, r, f = eval_file(dev_data, opt.dev_data_dir)\n        print(\"origin dev res: pre:{};rel:{};f1:{}\".format(p,r,f))\n        with open('./out/true_out', 'w') as f:\n            for p_data in dev_data:\n                f.write(json.dumps(p_data, ensure_ascii=False)+'\\n')\n        utils.write_tags(opt, true_tags, pred_tags, json_data, './out/tag_out', id2tag)\n\nif __name__ == \"__main__\":\n    fire.Fire()\n"
  },
  {
    "path": "metrics.py",
    "content": "\"\"\"Thanks to https://github.com/chakki-works/seqeval\nMetrics to assess performance on sequence labeling task given prediction\nFunctions named as ``*_score`` return a scalar value to maximize: the higher\nthe better\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom collections import defaultdict\nimport numpy as np\nimport json\nimport utils\n\ndef load_data(path):\n    '''\n    加载数据，返回json数组.\n    '''\n    data = []\n    data_lines = open(path, encoding='utf-8').readlines()\n    for line in data_lines:\n        line_json = json.loads(line)\n        if len(line_json['postag']) == 0:\n            continue\n        if 'spo_list' in line_json.keys() and len(line_json['spo_list']) == 0:\n            continue\n        data.append(line_json)\n    return data\n\ndef f1_score_ent_rel(g_entRel, p_entRel):\n    \"\"\"\n    g_entRel [[[s1,e1, s2, e2, r],[]], [[], []], ....]\n    \"\"\"\n    acc, pre, rel = 0.0, 0.0, 0.0\n    # 针对dev， 没有对dev补NA关系\n    #   train, need\n    for idx, g_sen in enumerate(g_entRel):\n        p_sen = p_entRel[idx]\n        pre += len(p_sen)\n        rel += len(g_sen)\n        for p_s in p_sen:\n            if p_s in g_sen:\n                acc+=1\n    p = 100 * acc / pre if pre > 0 else 0\n    r = 100 * acc / rel if rel > 0 else 0\n    f1 = 2 * p * r / (p + r) if p + r > 0 else 0\n    return p, r, f1\n\ndef get_entities(seq, suffix=False):\n    \"\"\"Gets entities from sequence.\n\n    Args:\n        seq (list): sequence of labels.\n\n    Returns:\n        list: list of (chunk_type, chunk_start, chunk_end).\n\n    Example:\n        >>> from seqeval.metrics.sequence_labeling import get_entities\n        >>> seq = ['B-PER', 'I-PER', 'O', 'B-LOC']\n        >>> get_entities(seq)\n        [('PER', 0, 1), ('LOC', 3, 3)]\n    \"\"\"\n    # for nested list\n    if any(isinstance(s, list) for s in seq):\n        seq = [item for sublist in seq for item in sublist + ['O']]\n\n    prev_tag = 'O'\n    prev_type = ''\n    begin_offset = 0\n    chunks = []\n    for i, chunk in enumerate(seq + ['O']):\n        if suffix:\n            tag = chunk[-1]\n            type_ = chunk.split('-')[0]\n        else:\n            tag = chunk[0]\n            type_ = chunk.split('-')[-1]\n\n        if end_of_chunk(prev_tag, tag, prev_type, type_):\n            chunks.append((prev_type, begin_offset, i-1))\n        if start_of_chunk(prev_tag, tag, prev_type, type_):\n            begin_offset = i\n        prev_tag = tag\n        prev_type = type_\n\n    return chunks\n\n\ndef end_of_chunk(prev_tag, tag, prev_type, type_):\n    \"\"\"Checks if a chunk ended between the previous and current word.\n\n    Args:\n        prev_tag: previous chunk tag.\n        tag: current chunk tag.\n        prev_type: previous type.\n        type_: current type.\n\n    Returns:\n        chunk_end: boolean.\n    \"\"\"\n    chunk_end = False\n\n    if prev_tag == 'E': chunk_end = True\n    if prev_tag == 'S': chunk_end = True\n\n    if prev_tag == 'B' and tag == 'B': chunk_end = True\n    if prev_tag == 'B' and tag == 'S': chunk_end = True\n    if prev_tag == 'B' and tag == 'O': chunk_end = True\n    if prev_tag == 'I' and tag == 'B': chunk_end = True\n    if prev_tag == 'I' and tag == 'S': chunk_end = True\n    if prev_tag == 'I' and tag == 'O': chunk_end = True\n\n    if prev_tag != 'O' and prev_tag != '.' and prev_type != type_:\n        chunk_end = True\n\n    return chunk_end\n\n\ndef start_of_chunk(prev_tag, tag, prev_type, type_):\n    \"\"\"Checks if a chunk started between the previous and current word.\n\n    Args:\n        prev_tag: previous chunk tag.\n        tag: current chunk tag.\n        prev_type: previous type.\n        type_: current type.\n\n    Returns:\n        chunk_start: boolean.\n    \"\"\"\n    chunk_start = False\n\n    if tag == 'B': chunk_start = True\n    if tag == 'S': chunk_start = True\n\n    if prev_tag == 'E' and tag == 'E': chunk_start = True\n    if prev_tag == 'E' and tag == 'I': chunk_start = True\n    if prev_tag == 'S' and tag == 'E': chunk_start = True\n    if prev_tag == 'S' and tag == 'I': chunk_start = True\n    if prev_tag == 'O' and tag == 'E': chunk_start = True\n    if prev_tag == 'O' and tag == 'I': chunk_start = True\n\n    if tag != 'O' and tag != '.' and prev_type != type_:\n        chunk_start = True\n\n    return chunk_start\n\n\ndef f1_score(y_true, y_pred, average='micro', digits=2, suffix=False):\n    \"\"\"Compute the F1 score.\n\n    The F1 score can be interpreted as a weighted average of the precision and\n    recall, where an F1 score reaches its best value at 1 and worst score at 0.\n    The relative contribution of precision and recall to the F1 score are\n    equal. The formula for the F1 score is::\n\n        F1 = 2 * (precision * recall) / (precision + recall)\n\n    Args:\n        y_true : 2d array. Ground truth (correct) target values.\n        y_pred : 2d array. Estimated targets as returned by a tagger.\n\n    Returns:\n        score : float.\n\n    Example:\n        >>> from seqeval.metrics import f1_score\n        >>> y_true = [['O', 'O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'O'], ['B-PER', 'I-PER', 'O']]\n        >>> y_pred = [['O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'I-MISC', 'O'], ['B-PER', 'I-PER', 'O']]\n        >>> f1_score(y_true, y_pred)\n        0.50\n    \"\"\"\n    true_entities = set(get_entities(y_true, suffix))\n    pred_entities = set(get_entities(y_pred, suffix))\n\n    nb_correct = len(true_entities & pred_entities)\n    nb_pred = len(pred_entities)\n    nb_true = len(true_entities)\n\n    p = 100 * nb_correct / nb_pred if nb_pred > 0 else 0\n    r = 100 * nb_correct / nb_true if nb_true > 0 else 0\n    score = 2 * p * r / (p + r) if p + r > 0 else 0\n\n    return p, r, score\n\n\ndef accuracy_score(y_true, y_pred):\n    \"\"\"Accuracy classification score.\n\n    In multilabel classification, this function computes subset accuracy:\n    the set of labels predicted for a sample must *exactly* match the\n    corresponding set of labels in y_true.\n\n    Args:\n        y_true : 2d array. Ground truth (correct) target values.\n        y_pred : 2d array. Estimated targets as returned by a tagger.\n\n    Returns:\n        score : float.\n\n    Example:\n        >>> from seqeval.metrics import accuracy_score\n        >>> y_true = [['O', 'O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'O'], ['B-PER', 'I-PER', 'O']]\n        >>> y_pred = [['O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'I-MISC', 'O'], ['B-PER', 'I-PER', 'O']]\n        >>> accuracy_score(y_true, y_pred)\n        0.80\n    \"\"\"\n    if any(isinstance(s, list) for s in y_true):\n        y_true = [item for sublist in y_true for item in sublist]\n        y_pred = [item for sublist in y_pred for item in sublist]\n\n    nb_correct = sum(y_t==y_p for y_t, y_p in zip(y_true, y_pred))\n    nb_true = len(y_true)\n\n    score = nb_correct / nb_true\n\n    return score\n\n\ndef classification_report(y_true, y_pred, digits=2, suffix=False):\n    \"\"\"Build a text report showing the main classification metrics.\n\n    Args:\n        y_true : 2d array. Ground truth (correct) target values.\n        y_pred : 2d array. Estimated targets as returned by a classifier.\n        digits : int. Number of digits for formatting output floating point values.\n\n    Returns:\n        report : string. Text summary of the precision, recall, F1 score for each class.\n\n    Examples:\n        >>> from seqeval.metrics import classification_report\n        >>> y_true = [['O', 'O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'O'], ['B-PER', 'I-PER', 'O']]\n        >>> y_pred = [['O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'I-MISC', 'O'], ['B-PER', 'I-PER', 'O']]\n        >>> print(classification_report(y_true, y_pred))\n                     precision    recall  f1-score   support\n        <BLANKLINE>\n               MISC       0.00      0.00      0.00         1\n                PER       1.00      1.00      1.00         1\n        <BLANKLINE>\n        avg / total       0.50      0.50      0.50         2\n        <BLANKLINE>\n    \"\"\"\n    true_entities = set(get_entities(y_true, suffix))\n    pred_entities = set(get_entities(y_pred, suffix))\n\n    name_width = 0\n    d1 = defaultdict(set)\n    d2 = defaultdict(set)\n    for e in true_entities:\n        d1[e[0]].add((e[1], e[2]))\n        name_width = max(name_width, len(e[0]))\n    for e in pred_entities:\n        d2[e[0]].add((e[1], e[2]))\n\n    last_line_heading = 'avg / total'\n    width = max(name_width, len(last_line_heading), digits)\n\n    headers = [\"precision\", \"recall\", \"f1-score\", \"support\"]\n    head_fmt = u'{:>{width}s} ' + u' {:>9}' * len(headers)\n    report = head_fmt.format(u'', *headers, width=width)\n    report += u'\\n\\n'\n\n    row_fmt = u'{:>{width}s} ' + u' {:>9.{digits}f}' * 3 + u' {:>9}\\n'\n\n    ps, rs, f1s, s = [], [], [], []\n    for type_name, true_entities in d1.items():\n        pred_entities = d2[type_name]\n        nb_correct = len(true_entities & pred_entities)\n        nb_pred = len(pred_entities)\n        nb_true = len(true_entities)\n\n        p = 100 * nb_correct / nb_pred if nb_pred > 0 else 0\n        r = 100 * nb_correct / nb_true if nb_true > 0 else 0\n        f1 = 2 * p * r / (p + r) if p + r > 0 else 0\n\n        report += row_fmt.format(*[type_name, p, r, f1, nb_true], width=width, digits=digits)\n\n        ps.append(p)\n        rs.append(r)\n        f1s.append(f1)\n        s.append(nb_true)\n\n    report += u'\\n'\n\n    # compute averages\n    report += row_fmt.format(last_line_heading,\n                             np.average(ps, weights=s),\n                             np.average(rs, weights=s),\n                             np.average(f1s, weights=s),\n                             np.sum(s),\n                             width=width, digits=digits)\n\n    return report\n\ndef get_sent2triple_set(json_datas):\n    sen2set = {}\n    for data in json_datas:\n        sent = data['text']\n        spo_set = set()\n        for spo_item in data['spo_list']:\n            s = spo_item['subject'].lower()\n            o = spo_item['object'].lower()\n            r = spo_item['predicate']\n            if r == 'NA':\n                continue\n            spo_set.add((o, r, s))\n        sen2set[sent] = spo_set\n    return sen2set\n\ndef eval_file(predict_json, golden_file_path):\n    '''\n    传入两个数据格式如下文件\n    {\"text\": \"《离开》是由张宇谱曲，演唱\",\n    \"spo_list\": [{\"subject\": \"离开\", \"predicate\": \"歌手\", \"object\": \"张宇\", \"subject_type\": \"歌曲\", \"object_type\": \"人物\"},\n    {\"subject\": \"离开\", \"predicate\": \"作词\", \"object\": \"张宇\", \"subject_type\": \"歌曲\", \"object_type\": \"人物\"}]}\n    '''\n    correct_sum, predict_sum, recall_sum = 0.0, 0.0, 0.0\n    golden_data = load_data(golden_file_path)[:len(predict_json)]\n    pred_sent2set = get_sent2triple_set(predict_json)\n    golden_sent2set = get_sent2triple_set(golden_data)\n    for sent in golden_sent2set.keys():\n        golden_set = golden_sent2set[sent]\n        pred_set = pred_sent2set.get(sent, set())\n        recall_sum += len(golden_set)\n        predict_sum += len(pred_set)\n        for each in pred_set:\n            if each in golden_set:\n                correct_sum += 1\n    pre = correct_sum / predict_sum\n    rel = correct_sum / recall_sum\n    f1_num = pre + rel\n    if f1_num == 0:\n        f1_num = 10000\n    f1 = 2*pre*rel/f1_num\n    return 100*pre, 100*rel, 100*f1\n\ndef judge_data_quality(opt):\n    train_npy_data = np.load(opt.npy_data_root+'train/relations.npy')\n    dev_npy_data = np.load(opt.npy_data_root+'dev/relations.npy')\n    train_data = []\n    dev_data= []\n    for i in train_npy_data:\n        train_data.append(i)\n    for i in dev_npy_data:\n        dev_data.append(i)\n    json_data = load_data(opt.train_data_dir)\n    train_data =  utils.get_text_spolist(opt, train_data, json_data)\n    json_data = load_data(opt.dev_data_dir)\n    dev_data =  utils.get_text_spolist(opt, dev_data, json_data)\n    print(\"judge train data..\")\n    p, r, f = eval_file(train_data, opt.train_data_dir)\n    print(\"train_data p:{};r:{};f1:{}\".format(p, r, f))\n    print(\"judge dev data..\")\n    p, r, f = eval_file(dev_data, opt.dev_data_dir)\n    print(\"dev_data p:{};r:{};f1:{}\".format(p, r, f))\n"
  },
  {
    "path": "models/BERT_CNN_CRF.py",
    "content": "from .BasicModule import BasicModule\nfrom pytorch_pretrained_bert import BertForTokenClassification\nimport torch.nn as nn\nfrom metrics import get_entities\nimport json\nimport torch\nimport torch.nn.functional as F\nfrom torch.nn import CrossEntropyLoss\nfrom modules import Encoder\nfrom torchcrf import CRF\nclass BERT_CNN_CRF(BasicModule):\n    def __init__(self, opt):\n        super(BERT_CNN_CRF, self).__init__()\n        self.opt = opt\n        self.bertForToken = BertForTokenClassification.from_pretrained(self.opt.bert_model_dir, num_labels=self.opt.tag_nums)\n        # tag分类\n        self.num_labels = self.opt.tag_nums\n        self.crf = CRF(self.opt.tag_nums, batch_first=True)\n\n        # 关系分类\n        self.type_emb = nn.Embedding(3, self.opt.bert_hidden_size)\n        self.rel_cnns = Encoder(enc_method='cnn', filters_num=self.opt.filter_num, filters=self.opt.filters, f_dim=self.opt.bert_hidden_size)\n        self.classifier_rels = nn.Linear(len(self.opt.filters)*self.opt.filter_num, self.opt.rel_nums)\n\n        self.id2tag = json.loads(open(opt.id2tag_dir, 'r').readline())\n        self.type2types = json.loads(open(opt.type2types_dir, 'r').readline())\n\n        self.init_weights()\n    def init_weights(self):\n        nn.init.xavier_uniform_(self.classifier_rels.weight)\n        nn.init.xavier_uniform_(self.type_emb.weight)\n        for p in self.crf.parameters():\n            torch.nn.init.uniform_(p, 0, 1)\n\n\n    def match_entities(self, tags_lists):\n        \"\"\"\n        返回Batch个句子中所有可能存在关系的实体对\n        [[s1, e1, s2, e2, r],\n         [s1, e1, s2, e2, 0]\n         ...]]\n        \"\"\"\n        tags_lists = torch.max(tags_lists,2)[1]\n        if self.opt.use_gpu:\n            tags_lists = tags_lists.cpu()\n        tags_lists = tags_lists.tolist()\n        all_entitys = []\n        for tags_list in tags_lists:\n            all_entity = []\n            tags_list = [self.id2tag[str(i)] for i in tags_list]\n            ent_and_position = get_entities(tags_list)\n            for ent1 in ent_and_position:\n                for ent2 in ent_and_position:\n                    if ent2 == ent1:\n                        continue\n                    ent2_for_ent1 = self.type2types.get(ent1[0],[])\n                    if ent2[0]not in ent2_for_ent1:\n                        continue\n                    all_entity.append([ent1[1], ent1[2], ent2[1], ent2[2], 0])\n            all_entitys.append(all_entity)\n        return all_entitys\n\n\n    def get_ent_pair_matrix(self, positions, sen_matrix):\n        '''\n        position: [s1, e1, s2, e2]\n        sent_matrix: 对应句子的bert输出\n        返回，该pair的cnn输入句子\n        '''\n        s1, e1, s2, e2 = positions\n        type_obj = torch.zeros(e1-s1+1).long()\n        type_sbj = torch.ones(e2-s2+1).long()\n        if e1 < s2:\n            m_s = e1+1\n            m_e = s2-1\n        else:\n            m_s = e2+1\n            m_e = s1-1\n        type_mid = torch.ones(m_e-m_s+1).long() * 2\n        if self.opt.use_gpu:\n            type_obj = type_obj.cuda()\n            type_sbj = type_sbj.cuda()\n            type_mid = type_mid.cuda()\n        obj_vecs = sen_matrix[s1:e1+1,:] + self.type_emb(type_obj)\n        sbj_vecs = sen_matrix[s2:e2+1,:] + self.type_emb(type_sbj)\n        mid_vecs = sen_matrix[m_s:m_e+1,:] + self.type_emb(type_mid)\n\n        sample_matrix = torch.cat([obj_vecs, sbj_vecs, mid_vecs], 0)\n        if sample_matrix.size(0) < self.opt.tuple_max_len:\n            length = sample_matrix.size(0)\n            pad = torch.zeros(self.opt.tuple_max_len - sample_matrix.size(0), self.opt.bert_hidden_size)\n            if self.opt.use_gpu:\n                pad = pad.cuda()\n            sample_matrix = torch.cat([sample_matrix, pad], 0)\n        else:\n            length = self.opt.tuple_max_len\n            sample_matrix = sample_matrix[:self.opt.tuple_max_len,:]\n        return sample_matrix, length\n\n    def forward(self, batch_data, tags=None, entRels=None):\n        batch_masks = batch_data.gt(0)   # 用于长度的mask\n        '''\n        B: 批大小, L: 句子最大, N: Toekn的类别数\n        input\n            - batch_data: torch.LongTensor (B,L) 输入数据\n            - token_type_ids: torch.LongTensor 两句话时才有， 标记是那一句话的词\n            - attention_mask: torch.LongTensor (B,L) 用来对长度的mask\n            - tags: torch.LongTensor (B)数据标签\n            - entRels: [[[s1,e1,s2,e2,r], []]; [[],[]]]\n        output\n            train : tags的损失和关系的损失\n            predict: [[[s1, e1, s2, e2, r], []],[[],[]]]\n        '''\n        # 训练\n        sequence_output, _ = self.bertForToken.bert(batch_data, token_type_ids=None, attention_mask=batch_masks, output_all_encoded_layers=False)\n        sequence_output = self.bertForToken.dropout(sequence_output)  # (B, L, H)\n        logits = self.bertForToken.classifier(sequence_output)\n\n        all_rels, all_tuples, lengths = [], [], []\n        if tags is None:\n            entRels = self.match_entities(logits)\n        for idx, sen_ent_rels in enumerate(entRels):\n            sen_matrix = sequence_output[idx,:,:]\n            for sample in sen_ent_rels:\n                # sample [s1, e1, s2, e2, r]\n                sample_matrix, length = self.get_ent_pair_matrix(sample[:4], sen_matrix)\n                if tags is not None:\n                    all_rels.append(sample[-1])\n                lengths.append(length)\n                all_tuples.append(sample_matrix.unsqueeze(0))\n        lengths = torch.LongTensor(lengths)\n        if self.opt.use_gpu:\n            lengths = lengths.cuda()\n        all_tuples = torch.cat(all_tuples, 0)  # (B * tule_num, 1, tuple_max_len, bert_hidden_size)\n        all_tuples = self.rel_cnns(all_tuples, lengths)\n        all_tuples = [F.max_pool1d(i, i.size(2)).relu().squeeze(2) for i in all_tuples]\n        all_tuples = torch.cat(all_tuples, 1)\n        out = self.classifier_rels(all_tuples)  # (B*tuple_num/B*P, 50)\n\n        if tags is not None:\n            loss_fct = CrossEntropyLoss()\n            loss_tags = -self.crf(logits, tags)\n            all_rels = torch.LongTensor(all_rels)\n            if self.opt.use_gpu:\n                all_rels = all_rels.cuda()\n            loss_rels = loss_fct(out, all_rels)\n            return loss_tags, loss_rels\n\n        tags_out = self.crf.decode(logits)\n        all_out = []\n        idx = 0\n        sum_case = sum([len(i) for i in entRels])\n        out = torch.max(out, 1)[1]\n        assert sum_case == len(out)\n        for entRel in entRels:\n            sen_pair = []\n            for t, e in enumerate(entRel):\n                entPostion = entRel[t]\n                entPostion[-1] = out[idx].item()\n                idx+=1\n                if entPostion[-1] == 49:\n                    continue\n                sen_pair.append(entPostion)\n            all_out.append(sen_pair)\n        return tags_out, all_out\n"
  },
  {
    "path": "models/BERT_MUL_CNN.py",
    "content": "from .BasicModule import BasicModule\nfrom pytorch_pretrained_bert import BertForTokenClassification\nimport torch.nn as nn\nfrom metrics import get_entities\nimport json\nimport torch\nimport torch.nn.functional as F\nfrom torch.nn import CrossEntropyLoss\nfrom modules import Encoder\n\nclass BERT_MUL_CNN(BasicModule):\n    def __init__(self, opt):\n        super(BERT_MUL_CNN, self).__init__()\n        self.opt = opt\n        self.bertForToken = BertForTokenClassification.from_pretrained(self.opt.bert_model_dir, num_labels=self.opt.tag_nums)\n\n        # tag分类\n        self.num_labels = self.opt.tag_nums\n\n        # 关系分类\n        self.type_emb = nn.Embedding(3, self.opt.bert_hidden_size)\n        self.rel_cnns = Encoder(enc_method='cnn', filters_num=self.opt.filter_num, filters=self.opt.filters, f_dim=self.opt.bert_hidden_size)\n        self.classifier_rels = nn.Linear(len(self.opt.filters)*self.opt.filter_num, self.opt.rel_nums)\n\n        self.id2tag = json.loads(open(opt.id2tag_dir, 'r').readline())\n        self.type2types = json.loads(open(opt.type2types_dir, 'r').readline())\n\n        self.init_weights()\n    def init_weights(self):\n        nn.init.xavier_uniform_(self.classifier_rels.weight)\n        nn.init.xavier_uniform_(self.type_emb.weight)\n\n    def match_entities(self, tags_lists):\n        \"\"\"\n        返回Batch个句子中所有可能存在关系的实体对\n        [[s1, e1, s2, e2, r],\n         [s1, e1, s2, e2, 0]\n         ...]]\n        \"\"\"\n        tags_lists = torch.max(tags_lists,2)[1]\n        if self.opt.use_gpu:\n            tags_lists = tags_lists.cpu()\n        tags_lists = tags_lists.tolist()\n        all_entitys = []\n        for tags_list in tags_lists:\n            all_entity = []\n            tags_list = [self.id2tag[str(i)] for i in tags_list]\n            ent_and_position = get_entities(tags_list)\n            for ent1 in ent_and_position:\n                for ent2 in ent_and_position:\n                    if ent2 == ent1:\n                        continue\n                    ent2_for_ent1 = self.type2types.get(ent1[0],[])\n                    if ent2[0]not in ent2_for_ent1:\n                        continue\n                    all_entity.append([ent1[1], ent1[2], ent2[1], ent2[2], 0])\n            all_entitys.append(all_entity)\n        return all_entitys\n\n\n    def get_ent_pair_matrix(self, positions, sen_matrix):\n        '''\n        position: [s1, e1, s2, e2]\n        sent_matrix: 对应句子的bert输出\n        返回，该pair的cnn输入句子\n        '''\n        s1, e1, s2, e2 = positions\n        type_obj = torch.zeros(e1-s1+1).long()\n        type_sbj = torch.ones(e2-s2+1).long()\n        if e1 < s2:\n            m_s = e1+1\n            m_e = s2-1\n        else:\n            m_s = e2+1\n            m_e = s1-1\n        type_mid = torch.ones(m_e-m_s+1).long() * 2\n        if self.opt.use_gpu:\n            type_obj = type_obj.cuda()\n            type_sbj = type_sbj.cuda()\n            type_mid = type_mid.cuda()\n        obj_vecs = sen_matrix[s1:e1+1,:] + self.type_emb(type_obj)\n        sbj_vecs = sen_matrix[s2:e2+1,:] + self.type_emb(type_sbj)\n        mid_vecs = sen_matrix[m_s:m_e+1,:] + self.type_emb(type_mid)\n\n        sample_matrix = torch.cat([obj_vecs, sbj_vecs, mid_vecs], 0)\n        if sample_matrix.size(0) < self.opt.tuple_max_len:\n            length = sample_matrix.size(0)\n            pad = torch.zeros(self.opt.tuple_max_len - sample_matrix.size(0), self.opt.bert_hidden_size)\n            if self.opt.use_gpu:\n                pad = pad.cuda()\n            sample_matrix = torch.cat([sample_matrix, pad], 0)\n        else:\n            length = self.opt.tuple_max_len\n            sample_matrix = sample_matrix[:self.opt.tuple_max_len,:]\n        return sample_matrix, length\n\n    def forward(self, batch_data, tags=None, entRels=None):\n        batch_masks = batch_data.gt(0)   # 用于长度的mask\n        '''\n        B: 批大小, L: 句子最大, N: Toekn的类别数\n        input\n            - batch_data: torch.LongTensor (B,L) 输入数据\n            - token_type_ids: torch.LongTensor 两句话时才有， 标记是那一句话的词\n            - attention_mask: torch.LongTensor (B,L) 用来对长度的mask\n            - tags: torch.LongTensor (B)数据标签\n            - entRels: [[[s1,e1,s2,e2,r], []]; [[],[]]]\n        output\n            train : tags的损失和关系的损失\n            predict: [[[s1, e1, s2, e2, r], []],[[],[]]]\n        '''\n        # 训练\n        sequence_output, _ = self.bertForToken.bert(batch_data, token_type_ids=None, attention_mask=batch_masks, output_all_encoded_layers=False)\n        sequence_output = self.bertForToken.dropout(sequence_output)  # (B, L, H)\n        logits = self.bertForToken.classifier(sequence_output)\n\n        all_rels, all_tuples, lengths = [], [], []\n        if tags is None:\n            entRels = self.match_entities(logits)\n        for idx, sen_ent_rels in enumerate(entRels):\n            sen_matrix = sequence_output[idx,:,:]\n            for sample in sen_ent_rels:\n                # sample [s1, e1, s2, e2, r]\n                sample_matrix, length = self.get_ent_pair_matrix(sample[:4], sen_matrix)\n                if tags is not None:\n                    all_rels.append(sample[-1])\n                lengths.append(length)\n                all_tuples.append(sample_matrix.unsqueeze(0))\n        lengths = torch.LongTensor(lengths)\n        if self.opt.use_gpu:\n            lengths = lengths.cuda()\n        all_tuples = torch.cat(all_tuples, 0)  # (B * tule_num, 1, tuple_max_len, bert_hidden_size)\n        all_tuples = self.rel_cnns(all_tuples, lengths)\n        all_tuples = [F.max_pool1d(i, i.size(2)).relu().squeeze(2) for i in all_tuples]\n        all_tuples = torch.cat(all_tuples, 1)\n        out = self.classifier_rels(all_tuples)  # (B*tuple_num/B*P, 50)\n\n        if tags is not None:\n            loss_fct = CrossEntropyLoss()\n            loss_tags = loss_fct(logits.view(-1, self.num_labels), tags.view(-1))\n            all_rels = torch.LongTensor(all_rels)\n            if self.opt.use_gpu:\n                all_rels = all_rels.cuda()\n            loss_rels = loss_fct(out, all_rels)\n            return loss_tags, loss_rels\n\n        all_out = []\n        idx = 0\n        sum_case = sum([len(i) for i in entRels])\n        out = torch.max(out, 1)[1]\n        assert sum_case == len(out)\n        for entRel in entRels:\n            sen_pair = []\n            for t, e in enumerate(entRel):\n                entPostion = entRel[t]\n                entPostion[-1] = out[idx].item()\n                idx+=1\n                if entPostion[-1] == 49:\n                    continue\n                sen_pair.append(entPostion)\n            all_out.append(sen_pair)\n        return logits, all_out\n"
  },
  {
    "path": "models/BasicModule.py",
    "content": "import torch\nimport time\n\n\nclass BasicModule(torch.nn.Module):\n    '''\n    封装了nn.Module,主要是提供了save和load两个方法\n    '''\n\n    def __init__(self):\n        super(BasicModule, self).__init__()\n\n    def load(self, path):\n        '''\n        可加载指定路径的模型\n        '''\n        self.load_state_dict(torch.load(path, map_location=lambda storage, loc: storage))\n        # self.load_state_dict(torch.load(path))\n\n    def save(self, opt, epoch=0):\n        '''\n        保存模型，默认使用“模型名字+时间”作为文件名\n        '''\n        name = './checkpoints/{}_sl:{}_k:{}_fn:{}_lam:{}_lr:{}_epoch:{}'.format(opt.model,\\\n                                                                       opt.seq_length,\\\n                                                                       opt.filters, \\\n                                                                       opt.filter_num,\\\n                                                                       opt.lam,\\\n                                                                       opt.lr,\\\n                                                                        epoch)\n        torch.save(self.state_dict(), name)\n        return name\n"
  },
  {
    "path": "models/__init__.py",
    "content": "from .BERT_MUL_CNN import BERT_MUL_CNN"
  },
  {
    "path": "modules/__init__.py",
    "content": "from .embedder import Embedder\nfrom .attenter import Attenter\nfrom .encoder import Encoder"
  },
  {
    "path": "modules/attenter.py",
    "content": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nclass Attenter(nn.Module):\n\n    def __init__(self, att_method='Hdot', f_dim=None, q_dim=None, q_num=None):\n        super(Attenter, self).__init__()\n        \"\"\"\n        input:\n            f_dim: dimension of input vectors\n            q_dim: dimension of query vectors\n            att_method:\n                'Hdot':  QHW: a very simple att att_method\n\n                'Cat'*:  tanh(H[W;q]+b): A complex att att_method, we just accept 1-dimension query vector\n\n                'Tdot1': QTanh(HW+b):\n                        att_method from paper:\n                        \"Coevolutionary Recommendation Model: Mutual Learning between Ratings and Reviews\"\n\n                'Tdot2': Tanh(QHW+b):\n                        att_method from parer:\n                        \"HAMI: Neural Gender Prediction for Chinese Microblogging with Hierarchical Attention and Multi-channel Input\n        \"\"\"\n        self.att_method = att_method\n\n        if self.att_method == 'Hdot':\n            self.H = nn.Parameter(torch.randn(f_dim, q_dim))\n\n        elif self.att_method == 'Tdot1':\n            self.L = nn.Linear(f_dim, q_dim)\n\n        elif self.att_method == 'Tdot2':\n            self.H = nn.Parameter(torch.randn(f_dim, q_dim))\n            self.att_bias = nn.Parameter(torch.randn(1, 1, q_num))\n\n        elif self.att_method == 'Cat':\n            self.L = nn.Linear(f_dim+q_dim, 1)\n\n        self.init_weight()\n\n    def init_weight(self):\n        if self.att_method == 'Hdot':\n            nn.init.xavier_normal_(self.H)\n\n        elif self.att_method == 'Tdot1' or self.att_method == 'Cat':\n            nn.init.xavier_normal_(self.L.weight)\n            nn.init.uniform_(self.L.bias)\n\n        elif self.att_method == 'Tdot2':\n            nn.init.xavier_normal_(self.H)\n            nn.init.uniform_(self.att_bias)\n\n    def sequence_mask(self, sequence_length, max_len=None):\n        \"\"\"\n        Accept length vector, and return mask matrix.\n        refer:https://github.com/spro/practical-pytorch/blob/master/seq2seq-translation/masked_cross_entropy.py#L5\n        \"\"\"\n        if max_len is None:\n            max_len = sequence_length.data.max()\n        batch_size = sequence_length.size(0)\n        seq_range = torch.LongTensor(range(0, max_len))\n        seq_range_expand = seq_range.unsqueeze(0).expand(batch_size, max_len)\n        if sequence_length.is_cuda:\n            seq_range_expand = seq_range_expand.cuda()\n        seq_length_expand = (sequence_length.unsqueeze(1).expand_as(seq_range_expand))\n        return seq_range_expand < seq_length_expand\n\n    def Mask(self, inputs, sqe_len=None):\n        \"\"\"\n        A simper vision mask att_method just for input size (B, L, K)\n        refer: https://github.com/bojone/attention/blob/master/attention_tf.py\n        \"\"\"\n\n        \"\"\"\n        inputs: (B, L, K), the possibilities we need to mask\n        sqe_len: (B)\n\n        \"\"\"\n        if sqe_len is None:\n            return inputs\n        mask = self.sequence_mask(sqe_len, input.size(1))  # (B, L)\n        mask = mask.unsqueeze(-1)      # (B, L, 1)\n        outputs = inputs - (1 - mask).float() * 1e12\n        return outputs\n\n    def forward(self, W, Q, sqe_len=None):\n        \"\"\"\n        input:\n            W: sematic vectors    (B:batchSize/None, L: numberOfVector, f_dim: featureDim)\n            Q: query vectors      (K:numberOfQueryVector, q_dim: queryVectorFeatureDim)\n        sqe_len:\n            the lengths of sentence in word level\n\n        tip: K = 1 when attention att_method is Cat\n        ouput:\n            result: (B, K, f_dim)\n        \"\"\"\n        if len(W.size()) == 2:\n            W = W.unsqueeze(0)\n\n        if self.att_method == 'Hdot':\n            V = torch.matmul(W, self.H)                               # (B, L, q_dim)\n            A = torch.matmul(V, Q.t())                                # (B, L, K)\n\n        elif self.att_method == 'Tdot1':\n            V = self.L(W).tanh()                                      # (B, L, q_dim)\n            A = torch.matmul(V, Q.t())                                # (B, L, K)\n\n        elif self.att_method == 'Tdot2':\n            V = torch.matmul(W, self.H)                               # (B, L, q_dim)\n            A = torch.matmul(V, Q.t()) + self.att_bias                # (B, L, K)\n            A = A.tanh()                                              # (B, L, K)\n\n        elif self.att_method == 'Cat':\n            zeros = torch.zeros(W.size(0), W.size(1), Q.size(1))\n            if Q.is_cuda:\n                zeros = zeros.cuda()\n            extend_q = zeros + Q.squeeze(0)                           # (B, L, q_dim)\n            V = torch.cat([W, extend_q], -1)                          # (B, L, f_dim + q_dim)\n            A = self.L(V).tanh()                                      # (B, L, K)  tip:K = 1\n\n        if not sqe_len is None:\n            A = self.Mask(A, sqe_len)\n        A = F.softmax(A, 1).permute(0,2,1)                            # (B, K, L)\n        result = torch.matmul(A, W)                                   # (B, K, f_dim)\n\n        return result\n"
  },
  {
    "path": "modules/embedder.py",
    "content": "from allennlp.modules.elmo import Elmo, batch_to_ids\nimport torch\nimport torch.nn as nn\nimport numpy as np\n\nclass Embedder(nn.Module):\n    def __init__(self, emb_method='glove', glove_param=None, elmo_param=None, use_gpu=True):\n        super(Embedder, self).__init__()\n\n        if 'glove' in emb_method and glove_param is None:\n            raise RuntimeError('glove_param is not provided')\n\n        if 'elmo' in emb_method and elmo_param is None:\n            raise RuntimeError('elmo_param is not provided')\n\n        if emb_method == 'glove' and glove_param['use_id'] == False and glove_param['word2id_file'] is None:\n            raise RuntimeError('word2id_file is not provided')\n\n        self.use_gpu = use_gpu\n        self.emb_method = emb_method\n\n        if emb_method == 'elmo':\n            self.elmo_param = elmo_param\n            self.init_elmo()\n\n        elif emb_method == 'glove':\n            self.glove_param = glove_param\n            self.init_glove()\n\n        elif emb_method == 'elmo_glove':\n            self.glove_param = glove_param\n            self.elmo_param = elmo_param\n            self.init_elmo()\n            self.init_glove()\n            self.word_dim = elmo_param['elmo_dim'] + glove_param['glove_dim']\n\n    def init_elmo(self):\n        self.elmo = Elmo(self.elmo_param['elmo_options_file'], self.elmo_param['elmo_weight_file'], 1, requires_grad=self.elmo_param['requires_grad'])\n        self.word_dim = self.elmo_param['elmo_dim']\n\n    def init_glove(self):\n\n        if self.glove_param['use_id'] == False:\n            self.word2id = np.load(self.glove_param['word2id_file']).tolist()\n        self.glove = nn.Embedding(self.glove_param['vocab_size'], self.glove_param['glove_dim'])\n        if not self.glove_param['glove_file'] is None:\n            emb = torch.from_numpy(np.load(self.glove_param['glove_file']))\n            if self.use_gpu is True:\n                emb = emb.cuda()\n            self.glove.weight.data.copy_(emb)\n        if self.glove_param['requires_grad'] == False:\n            self.glove.weight.requires_grad = False\n\n        self.word_dim = self.glove_param['glove_dim']\n\n\n    def get_elmo(self, sentence_lists):\n        character_ids = batch_to_ids(sentence_lists)\n        if self.use_gpu is True:\n            character_ids = character_ids.cuda()\n        embeddings = self.elmo(character_ids)\n        return embeddings['elmo_representations'][0]\n\n    def get_glove(self, sentence_lists):\n\n        if self.glove_param['use_id']  is True:\n            sentence_lists = torch.LongTensor(sentence_lists)\n            if self.use_gpu is True:\n                sentence_lists = sentence_lists.cuda()\n            return self.glove(sentence_lists)\n\n        max_len = max(map(lambda x: len(x), sentence_lists))\n        sentence_lists = list(map(lambda x: list(map(lambda w: self.word2id.get(w, 0), x)), sentence_lists))\n        sentence_lists = list(map(lambda x: x + [self.glove_param['vocab_size']-1] * (max_len - len(x)), sentence_lists))\n        sentence_lists = torch.LongTensor(sentence_lists)\n        if self.use_gpu is True:\n            sentence_lists = sentence_lists.cuda()\n        embeddings = self.glove(sentence_lists)\n        return embeddings\n\n    def forward(self, sentence_lists):\n\n        if self.emb_method == 'elmo':\n            return self.get_elmo(sentence_lists)\n\n        elif self.emb_method == 'glove':\n            return self.get_glove(sentence_lists)\n\n        elif self.emb_method == 'elmo_glove':\n            elmo_embeddings = self.get_elmo(sentence_lists)\n            glove_embeddings = self.get_glove(sentence_lists)\n            return torch.cat([elmo_embeddings, glove_embeddings], -1)\n"
  },
  {
    "path": "modules/encoder.py",
    "content": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nclass Encoder(nn.Module):\n\n    def __init__(self, enc_method='cnn', filters_num=None, filters=None, f_dim=None, input_size=None, hidden_size=None, bidirectional=True):\n        super(Encoder, self).__init__()\n\n        if enc_method == 'cnn':\n            if filters_num is None or filters is None or f_dim is None:\n                raise RuntimeError(\"filters_num/filters/f_dim are not provided\")\n        else:\n            if input_size is None or hidden_size is None:\n                raise RuntimeError(\"input_size/hidden_size are not provided\")\n\n        self.enc_method = enc_method\n        if enc_method == 'cnn':\n            self.convs = nn.ModuleList([nn.Conv2d(1, filters_num, (k, f_dim), padding=(int(k / 2), 0)) for k in filters])\n            self.init_model_weight()\n\n        elif enc_method == 'rnn':\n            self.rnn = nn.RNN(input_size, hidden_size, batch_first=True, bidirectional=bidirectional)\n\n        elif enc_method == 'gru':\n            self.rnn = nn.GRU(input_size, hidden_size, batch_first=True, bidirectional=bidirectional)\n\n        elif enc_method == 'lstm':\n            self.rnn = nn.LSTM(input_size, hidden_size, batch_first=True, bidirectional=bidirectional)\n\n    def init_model_weight(self):\n        for conv in self.convs:\n            nn.init.xavier_uniform_(conv.weight)\n            #nn.init.constant_(conv.bias, 0.0)\n\n    def sequence_mask(self, sequence_length, max_len=None):\n        if max_len is None:\n            max_len = sequence_length.data.max()\n        batch_size = sequence_length.size(0)\n        seq_range = torch.LongTensor(range(0, max_len))\n        seq_range_expand = seq_range.unsqueeze(0).expand(batch_size, max_len)\n        if sequence_length.is_cuda:\n            seq_range_expand = seq_range_expand.cuda()\n        seq_length_expand = (sequence_length.unsqueeze(1).expand_as(seq_range_expand))\n        return seq_range_expand < seq_length_expand\n\n    def Mask(self, inputs, sqe_len=None):\n        if sqe_len is None:\n            return inputs\n        mask = self.sequence_mask(sqe_len, inputs.size(1))  # (B, L)\n        mask = mask.unsqueeze(-1)      # (B, L, 1)\n        outputs = inputs * mask.float()\n        return outputs\n\n    def forward(self, inputs, lengths=None):\n\n        if self.enc_method == 'cnn':\n            if not lengths is None:\n                inputs = self.Mask(inputs, lengths)\n            x = inputs.unsqueeze(1)\n            x = [conv(x).squeeze(3) for conv in self.convs]\n            return x\n\n        else:\n            if not lengths is None:\n                sorted_lengths, sorted_indexs = torch.sort(lengths, descending=True)\n                tmp1, desorted_indexs = torch.sort(sorted_indexs, descending=False)\n                x_rnn = inputs[sorted_indexs]\n                packed_x_rnn = nn.utils.rnn.pack_padded_sequence(x_rnn, sorted_lengths.cpu().numpy(), batch_first=True)\n                packed_rnn_output, tmp2 = self.rnn(packed_x_rnn)\n                sort_rnn_output, tmp3 = nn.utils.rnn.pad_packed_sequence(packed_rnn_output, batch_first=True)\n                rnn_output = sort_rnn_output[desorted_indexs]  # (B, N, 2/1hidden_size)\n                return rnn_output\n            else:\n                rnn_output, tmp = self.rnn(inputs)\n                return rnn_output                              # (B, L, 2/1hidden_size)\n"
  },
  {
    "path": "utils.py",
    "content": "import logging\nimport json\nfrom pytorch_pretrained_bert import BertTokenizer\n\nclass RunningAverage():\n    \"\"\"A simple class that maintains the running average of a quantity\n\n    Example:\n    ```\n    loss_avg = RunningAverage()\n    loss_avg.update(2)\n    loss_avg.update(4)\n    loss_avg() = 3\n    ```\n    \"\"\"\n\n    def __init__(self):\n        self.steps = 0\n        self.total = 0\n\n    def update(self, val):\n        self.total += val\n        self.steps += 1\n\n    def __call__(self):\n        return self.total / float(self.steps)\n\n\ndef set_logger(log_path):\n    \"\"\"Set the logger to log info in terminal and file `log_path`.\n\n    In general, it is useful to have a logger so that every output to the terminal is saved\n    in a permanent file. Here we save it to `model_dir/train.log`.\n\n    Example:\n    ```\n    logging.info(\"Starting training...\")\n    ```\n\n    Args:\n        log_path: (string) where to log\n    \"\"\"\n    logger = logging.getLogger()\n    logger.setLevel(logging.INFO)\n\n    if not logger.handlers:\n        # Logging to a file\n        file_handler = logging.FileHandler(log_path)\n        file_handler.setFormatter(logging.Formatter('%(asctime)s:%(levelname)s: %(message)s'))\n        logger.addHandler(file_handler)\n\n        # Logging to console\n        stream_handler = logging.StreamHandler()\n        stream_handler.setFormatter(logging.Formatter('%(message)s'))\n        logger.addHandler(stream_handler)\n\ndef get_text_spolist(opt, p_entRel_t, json_data):\n    id2r = json.loads(open(opt.id2r_dir, 'r').readline())\n    tokenizer = BertTokenizer.from_pretrained(opt.bert_vocab_unk, do_lower_case=True)\n    predictg_data = []\n    for idx, p_tuples in enumerate(p_entRel_t):\n        data_unit = {}\n        data = json_data[idx]\n        text = data['text']\n        # 得到时按同样方式加工\n        text = text.strip().replace(' ', '$')\n        word_list = tokenizer.tokenize(text)\n        word_list = [word.replace('#', '')for word in word_list]\n        spo_list = []\n        for p_sample in p_tuples:\n            o_s, o_e, s_s, s_e, r = p_sample\n            if r == 49:\n                continue\n            obj, sbj = '',''\n            if max(o_s, o_e, s_s, s_e) >= len(word_list):\n                continue\n            for i in range(o_s, o_e+1):\n                obj = obj + word_list[i]\n            for i in range(s_s, s_e+1):\n                sbj = sbj + word_list[i]\n            #将@替换回来\n            obj = obj.replace('$', ' ')\n            sbj = sbj.replace('$', ' ')\n            spo_unit = {}\n            spo_unit['object'] = obj\n            spo_unit['subject'] = sbj\n            spo_unit['predicate'] = id2r[str(r)]\n            spo_list.append(spo_unit)\n        # 替换回来:\n        text = text.replace('$', ' ')\n        data_unit['text'] = text\n        data_unit['spo_list'] = spo_list\n        predictg_data.append(data_unit)\n    return predictg_data\n\ndef norm_length(origin_list):\n    \"\"\"\n    规范化标签格式长度\n    input: ['球', '星'， '姚', '明']\n    \"\"\"\n\n    return origin_list\n    norm_list = []\n    for i in  origin_list:\n        if len(i) < 5:\n            i = i + (5 - len(i)) * ' '\n        else:\n            i = i[:5]\n        norm_list.append(i)\n    return norm_list\n\ndef write_tags(opt, true_tags, pred_tags, json_data, out_dir, id2tag):\n    f = open(out_dir, 'w')\n    tokenizer = BertTokenizer.from_pretrained(opt.bert_vocab_unk, do_lower_case=True)\n    for idx, data in enumerate(json_data):\n        text = data['text']\n        # 得到时按同样方式加工\n        text = text.strip().replace(' ', '$')\n        word_list = tokenizer.tokenize(text)\n        word_list = norm_length([word.replace('#', '')for word in word_list])\n        true_tag = true_tags[idx][:len(word_list)]\n        pred_tag = pred_tags[idx][:len(word_list)]\n        true_tag = norm_length([id2tag[i] for i in true_tag])\n        pred_tag = norm_length([id2tag[i] for i in pred_tag])\n        sens =  \"\".join(word_list)\n        t_tag = \" \".join(true_tag)\n        p_tag = \" \".join(pred_tag)\n        f.write(sens+'\\n')\n        f.write(t_tag+'\\n')\n        f.write(p_tag+'\\n')\n        f.write(\"------------------------------------------------------------------\\n\")\n    f.close()\n"
  }
]