IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 利用递归层次遍历句法结构树(Stanfordcorenlp及nltk) -> 正文阅读

[人工智能]利用递归层次遍历句法结构树(Stanfordcorenlp及nltk)

在自然语言处理中,处理句法结构树是比较常见的处理问题,如何对句法结构树进行遍历,以及如何抽取出其中的层次关系,是值得去深究的。
本文将从Stanfordcorenlp的句法结构树和nltk中的Tree的数据结构入手,进行对句法结构树的层次遍历,抽取出句子中所包含的句法的层次结构。
首先需要安装Stanfordcorenlp(请自行CSDN),然后安装nltk(pip一下就可以用其中的Tree模块了)

例句:公安部治安局局长刘绍武介绍,这次销毁的非法枪支来源于三个方面。

句法结构树可以通过nltk中draw()画出来如下图:
在这里插入图片描述

(字体有些变形)

通过递归来进行对句法结构的遍历,代码简洁,运行结果如下:
在这里插入图片描述
对照上面的结构树可见 “->”代表的是层次关系,“->”前是上一层的叶节点(这一层的根节点),‘->’后是这一层的叶节点,然后同层的叶节点以空格连接,从而反应出句法结构的层次关系。

代码如下:

from stanfordcorenlp import StanfordCoreNLP
from nltk import Tree


cen = []
def cenxun(tree):
    c = []  # 每一层结果的储存
    if type(tree[0]) == str:  # 如果遇到字符,即到达了叶子节点,便返回
        return
    else:
        root = []  # 储存子树,即遍历下一层时,每个子树的开始都是作为根
        r = tree.label()  # 取出当前节点的句法英文标注
        for i in range(len(tree)):  # 遍历这棵树的子树,root中储存子树,c中保留每棵子树根节点的标注
            root.append(tree[i])    # 即这棵树的叶节点的标注,作为一层的信息
            c.append(tree[i].label())
        c = " ".join(c)  # 每层的叶子节点用空格连接
        c = r + "->" + c  # 根节点用->连接每层的叶节点
        cen.append(c)  # 将每次遍历的结果存cen中
        for rt in root:  # 遍历得到的子树,将每个子树作为新的一棵树进行遍历
            cenxun(rt)  # 递归调用就可以
        return


def main():
    lang = "zh"
    nlp = StanfordCoreNLP(r'E:\stanford-corenlp-4.2.2', lang=lang)
    try:
        sentence = "公安部治安局局长刘绍武介绍,这次销毁的非法枪支来源于三个方面。"
        parse = nlp.parse(sentence)
        t = Tree.fromstring(parse)
        cenxun(t[0])
        t.draw()  # 展示句法结构树
    except:
        print("meet error")
    nlp.close()
    print("\n".join(cen))


if __name__ == '__main__':
    main()
``
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:11:36  更:2021-10-21 12:12:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:27:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码