学习总结

上次的NLTK是英文工具集,LTP则是中文工具集。同样能用于词法分析(分词、词性标注、命名实体识别)、句法分析(依存句法分析)和语义分析(语义角色标注和语义依存分析)等。

文章目录

  • 学习总结
  • 一、中文分词
  • 二、分句和词性标注
  • 三、命名实体识别任务
  • 四、依存句法分析
  • 五、语义依存分析
    • 5.1 树
    • 5.2 图
  • Reference

一、中文分词

中文词语之间不像英语一样,没有空格进行分割,NLP一般以词为最小处理单位,需要对中文分词处理。

# -*- coding: utf-8 -*-
"""
Created on Fri Nov 26 22:06:23 2021@author: 86493
"""
from ltp import LTP
# 默认加载small模型,首次使用时会自动下载并加载模型
ltp = LTP()# 对句子进行分词,结果使用segment访问
# hidden用于访问每个词的隐含层向量,用于后续分析步骤
segment, hidden = ltp.seg(["南京市长江大桥。"])# LTP能够获得正确的分词结果,如不会分词为:南京,市长
print(segment)

LTP能够获得正确的分词结果,如不会分词为:南京,市长,结果为:

[['南京市', '长江大桥', '。']]

二、分句和词性标注

分词:

# 分词
segment, hidden = ltp.seg(sentences)
print(segment)
# [['南京市', '长江大桥', '。'], ['汤姆', '生病', '了', '。'],
# ['他', '去', '了', '医院', '。']]

词性标注:

# 词性标注
pos_tags = ltp.pos(hidden)
print(pos_tags)
# [['ns', 'ns', 'wp'], ['nh', 'v', 'u', 'wp'],
# ['r', 'v', 'u', 'n', 'wp']]

三、命名实体识别任务

from ltp import LTPltp = LTP()seg, hidden = ltp.seg(["他叫汤姆去拿外衣。"])
ner = ltp.ner(hidden)
# [['他', '叫', '汤姆', '去', '拿', '外衣', '。']]
# [[('Nh', 2, 2)]]tag, start, end = ner[0][0]
print(tag,":", "".join(seg[0][start:end + 1]))
# Nh : 汤姆

四、依存句法分析

注意:在依存句法当中,虚节点ROOT占据了0位置,因此节点的下标从1开始。

from ltp import LTPltp = LTP()seg, hidden = ltp.seg(["他叫汤姆去拿外衣。"])
dep = ltp.dep(hidden)
print(dep)

结果:

# [['他', '叫', '汤姆', '去', '拿', '外衣', '。']]
# [
#     [
#         (1, 2, 'SBV'),
#         (2, 0, 'HED'),    # 叫 --|HED|--> ROOT
#         (3, 2, 'DBL'),
#         (4, 2, 'VOB'),
#         (5, 4, 'COO'),
#         (6, 5, 'VOB'),
#         (7, 2, 'WP')
#     ]
# ]

(1)上面结果的第1、2行为例:(1, 2, 'SBV')(2, 0, 'HED'),依存句法树会有默认的虚拟root节点,其索引为0,分词后的索引是从1开始的:

汤姆 外衣
1 2 3 4 5 6

(2)第二行的(2, 0, 'HED')第二列为0,代表索引为2的结点(叫)的父节点是索引为0的虚拟root节点。
(3)第一行的(1, 2, 'SBV')SBV是表示两个节点的依存关系是主谓关系,即“叫”和“他”是主谓关系。

五、语义依存分析

与依存句法类似的,这里的下标也是从1开始。

5.1 树

from ltp import LTPltp = LTP()seg, hidden = ltp.seg(["他叫汤姆去拿外衣。"])
sdp = ltp.sdp(hidden, mode='tree')
# [['他', '叫', '汤姆', '去', '拿', '外衣', '。']]
# [
#     [
#         (1, 2, 'Agt'),
#         (2, 0, 'Root'),   # 叫 --|Root|--> ROOT
#         (3, 2, 'Datv'),
#         (4, 2, 'eEfft'),
#         (5, 4, 'eEfft'),
#         (6, 5, 'Pat'),
#         (7, 2, 'mPunc')
#     ]
# ]

5.2 图

from ltp import LTPltp = LTP()seg, hidden = ltp.seg(["他叫汤姆去拿外衣。"])
sdp = ltp.sdp(hidden, mode='graph')
# [['他', '叫', '汤姆', '去', '拿', '外衣', '。']]
# [
#     [
#         (1, 2, 'Agt'),
#         (2, 0, 'Root'),   # 叫 --|Root|--> ROOT
#         (3, 2, 'Datv'),
#         (3, 4, 'Agt'),
#         (3, 5, 'Agt'),
#         (4, 2, 'eEfft'),
#         (5, 4, 'eEfft'),
#         (6, 5, 'Pat'),
#         (7, 2, 'mPunc')
#     ]
# ]

Reference

哈工大的LTP语言技术平台:http://ltp.ai/docs/index.html

【NLP】LTP中文工具集使用相关推荐

  1. 中文文本相似度计算工具集

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 一.基本工具集 1.分词工具 a.jieba 结巴中文分词 htt ...

  2. 结巴分词关键词相似度_中文文本相似度计算工具集

    [磐创AI导读]:前两篇文章中我们介绍了一些机器学习不错的项目合集和深度学习入门资源合集,本篇文章将对中文文本相似度计算工具做一次汇总.喜欢我们文章的小伙伴,欢迎大家点击上方蓝字关注我们的公众号:磐创 ...

  3. NLP之中文自然语言处理工具库:SnowNLP(情感分析/分词/自动摘要)

    NLP之中文自然语言处理工具库:SnowNLP(情感分析/分词/自动摘要) 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!

  4. 【NLP】pyltp工具介绍、安装和使用代码+示例

    [NLP]pyltp工具介绍.安装和使用pyltp 文章目录 [NLP]pyltp工具介绍.安装和使用pyltp 1. 介绍 2. 使用 2.1 分句 2.2 分词 2.3 词性标注 2.4 命名实体 ...

  5. 导航、开源镜像、Prompt ( AI 提示词 )、AI工具集、chatgpt镜像

    1.导航 网站 众多网址导航中,哪个最好?理由是什么? :https://www.zhihu.com/question/19899559 除了百度,其他搜索引擎: 综合类搜索导航(Anywhere A ...

  6. error MSB8008: 指定的平台工具集(v110)未安装或无效。请确保选择受支持的 PlatformToolset 值...

    如果你的电脑上有两个不同版本的VS,或者你的程序拷贝到别人的电脑上去运行,或者你是从别人那里拷贝来的项目,而你们俩用的VS版本不一样,就会在运行的时候出现这个问题,这个错误中的v110是VS2012使 ...

  7. Linux 系统管理员工具集

    <Linux 系统管理员工具集> 基本信息 作者: 曹江华 林捷 出版社:电子工业出版社 ISBN:9787121201318 上架时间:2013-5-13 出版日期:2013 年5月 开 ...

  8. Android开发常用工具,编译调试工具,性能优化工具,工具集

    分析具体耗时的Trace view;布局复杂度工具Hierarchy View;应用启动时间;Memory.CPU.Network分析;静态代码检查工具Lint;程序稳定性monkey.adb调试桥. ...

  9. 效率工具集 uTools v1.3.1

    软件介绍 uTools 是一个极简.插件化.跨平台的现代桌面软件,你的生产力工具集,通过自由选配丰富的插件,打造你得心应手的工具集合,当你熟悉它后,能够为你节约大量时间,让你可以更加专注地改变世界. ...

最新文章

  1. LeetCode刷题-1
  2. 同一订单类型用多个号码段
  3. linux系统中使用oracle透明网关连接db2数据库,Linux系统中使用Oracle透明网关连接DB2数据库...
  4. ubuntu linux下使用vscode切换python虚拟环境
  5. JavaScript常用内置对象之Array
  6. java if,if...else...的应用
  7. 剑指Offer - 面试题50. 第一个只出现一次的字符(unordered_map)
  8. TaskBar Hider – 用快捷键手动隐藏任务栏[Windows]
  9. AI算法工程师手册!
  10. Centos下安装X Window+GNOME Desktop+FreeNX
  11. 架构中的设计原则之单一职责原则 - 《java开发技术-在架构中体验设计模式和算法之美》...
  12. Centos7没有ip地址
  13. JavaWeb开发必会技巧1——导入jar包
  14. 19.卷1(套接字联网API)---密钥管理套接字
  15. linux多进程分割大文件,Linux中split大文件分割和cat合并文件详解
  16. 什么软件可以测试手长,手相测试扫一扫软件
  17. 【WLAN从入门到精通-基础篇】第1期——WLAN定义和基本架构
  18. 身份证验证程序(一)
  19. 架构师之路读书会 | 15分钟一本,让我为你精读100本好书,快来加入吧!
  20. Markdown任务列表(实现列表勾选/非勾选操作)

热门文章

  1. 【数据结构】 最小生成树(四)——利用kruskal算法搞定例题×3+变形+一道大水题...
  2. Hyper-V虚拟化
  3. Android 发展史:“吃货”就是这么练成的
  4. 【数据库】MySQL数据库约束(六大约束)
  5. 智能个性化推荐系统设计
  6. 百度热搜榜标题与热搜指数爬虫(python)
  7. Vivado综合设置之-keep_equivalent_registers
  8. 基于Z分值模型预测企业对银行偿还贷款能力(含练习数据)
  9. 100个冷笑话 越到后面越冷
  10. 初窥Xcode4 -- Xcode4主题样式、快捷键等常用设置