ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HanLp句法分析和依存句法可视化、保存到json文件中

2021-04-29 12:58:18  阅读:240  来源: 互联网

标签:open 句法分析 依存 json line txt HanLp


HanLp句法分析和依存句法可视化、保存到json文件中

依存句法可视化

本来是想自己做一个可视化,无奈是在是太麻烦,自己的水平不允许我用python实现可视化,所以只能求助外界工具了。
幸好有一个非常好用的工具,我们可以使用南京大学开发的dependence viewer来进行可视化。
这个下载非常方便,大家可以百度一下。
我们每次将HanLp依存句法分析结果保存在txt文件中,然后用dependence viewer打开就可以了。
还是以“我希望所有喜欢我的人都能够幸福平平安安的过好这一辈子”为例,保存在TXT中,如下:
在这里插入图片描述接下来打开dependence viewer,点击“File”->“Read Conll File”
在这里插入图片描述在这里插入图片描述

依存句法保存到json文件中

一般保存在json文件中都是字符串或者列表或者字典,但是这次的依存句法分析结果,着实让我非常为难,不知道该怎么保存到json文件中,后来和小伙伴商量,只能选择了一个非常笨的方法,先以str的类型保存到txt中,然后再从中读取,这样就是字符串类型了。虽然非常笨,不过好在能实现。

保存在json文件中的形式如下:
在这里插入图片描述好的是,正好就和依存句法可视化的TXT保存一起搞了,一起来看一下代码吧。

with open(filepath,'r',encoding='UTF-8')as file,open('句法分析.json', 'w') as json_file:
    lines=file.readlines()
    dict_list = []
    i=1
    for line in lines:
        line=line.strip('\n')
        print(line)
        path ="txt/"+str(i)+".txt"
        with open(path, "w", encoding='utf-8') as f:
            f.write(str(HanLP.parseDependency(str(line))))
        i=i+1
        print(path)
        print(HanLP.segment(line))
        f = open("TXT/句法分析.txt",'w')
        print(HanLP.segment(line),file = f)
        f.close()
        f = open("TXT/句法分析.txt")
        fr = f.readlines()
        s = ""
        for l in fr:
            s += l
        f.close()
        list=HanLP.parseDependency(line)
        f = open("TXT/句法分析.txt",'w')
        print(list,file = f)
        f.close()
        f = open("TXT/句法分析.txt")
        fr = f.readlines()
        c = ""
        for l in fr:
            c += l
        dict={'原句':line,'句法分析':s,'依存句法':c}
        dict_list.append(dict)
    json.dump(dict_list,json_file)

完整的代码和运行结果已经上传资源啦!

标签:open,句法分析,依存,json,line,txt,HanLp
来源: https://blog.csdn.net/weixin_46570668/article/details/116266398

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有