1、爬取了成语大全数据,样例:
{
"_id" : ObjectId("5e648c7098f81742a13632b8"),
"cy_name" : "层峦迭嶂",
"cy_py" : "céng luán dié zhàng",
"cy_js" : "峦:山峰;嶂:直立像屏障的山;层、迭:重复,一层加上一层。形容山峰起伏,连绵重迭。",
"cy_cc" : "清 刘献廷《广阳杂记》第四卷:“此则层峦迭嶂,与江势争雄峭。 911cha.com",
"cy_ft" : "層巒迭嶂",
"cy_jp" : "CLDZ",
"cy_cycd" : "一般成语",
"cy_zs" : "四字成语",
"cy_gqsc" : "中性成语",
"cy_yf" : "层峦迭嶂联合式;作定语、状语;形容山岭重迭,峰峦相接。",
"cy_jg" : "联合式成语",
"cy_nd" : "近代成语",
"cy_jyc" : "千山万壑",
"cy_fyc" : "一马平川"
}
包括了成语名称,拼音,解释,出处,繁体,简拼,常用程度,字数,情感色彩,用法,结构,年代,近义词和反义词。一共两万七千多个成语。
2、构建图谱
用python将爬取的成语构建图谱信息,涉及到的python驱动有两个,neo4j-driver和py2neo,还一个http的neo4jrestclient。
有几个对比的信息:
https://www.cnblogs.com/angdh/p/10315877.html
结论是虽然py2neo使用比较方便,但有人测试还官方的在大数据量上性能更好,貌似官方的使用上也没那么难用。
https://github.com/technige/py2neo
https://github.com/neo4j/neo4j-python-driver
从github上看,貌似py2neo的支持更多点。
综合考虑,先考虑用官方的吧,以后再说更换的事儿。
3、成语图谱框架
既然从成语接龙这件事儿启动的,那就先以接龙为引子构建吧,建立两种接龙关系,一个是强接龙关系,即第一个成语的最后一个字是第二个成语的第一个字,一个是弱接龙关系,即第一个成语的最后一个字的拼音与第二个成语第一个字的拼音相同。
两万的成语,关系构建尚未结束,包括同文字的强关联,也包括了拼音的弱关联。预计构建完成后关系的数量超过了节点数量数十倍甚至上百倍。
4、成语图谱应用
这个打算做个前端界面,提供的功能包括两个,一个是检索,一个是接龙,检索提供模糊匹配的方式查询成语,接龙是随便找个成语,查看最短接龙和最长接龙,完成一个接龙的标准为第一个成语的第一个字是最后一个成语的最后一个字。最长接龙可能存在性能问题。
总结:数据爬取完毕,开始熟悉官方neo4 jpython驱动日常正常使用,并从后台往图数据库抽取关系了。