在 https://github.com/pwxcoo/chinese-xinhua 项目中可以下载到中华成语的语料库,该项目收录包括 14032 条歇后语,16142 个汉字,264434 个词语,31648 个成语。
结构如下:
chinese-xinhua/
|
+- data/ <-- 数据文件夹
| |
| +- idiom.json <-- 成语
| |
| +- word.json <-- 汉字
| |
| +- xiehouyu.json <-- 歇后语
| |
| +- ci.json <-- 词语
可以直接从网络读取该github的json文件:
import pandas as pd
chengyu = pd.read_json(
"https://github.com/pwxcoo/chinese-xinhua/blob/master/data/idiom.json?raw=true")
不过有可能网络不佳导致读取失败,下载好之后读取本地文件更佳:
import pandas as pd
import numpy as np
chengyu = pd.read_json("idiom.json")
chengyu.head(2)
该库有很多列,word列是我们需要的成语,pinyin列已经帮我们转换出了对应的拼音。下面我们整理出我们需要的数据:
t = chengyu.pinyin.str.split()
chengyu["shoupin"] = t.str[0]
chengyu["weipin"] = t.str[-1]
chengyu = chengyu.set_index("word")[["shoupin", "weipin"]]
chengyu
测试获取任意一个成语的接龙结果集:
word = "阿党比周"
words = chengyu.index[chengyu.shoupin == chengyu.loc[word, "weipin"]]
words