【NLP】LTP中文工具集使用

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
简介: 一、中文分词中文词语之间不像英语一样,没有空格进行分割,NLP一般以词为最小处理单位,需要对中文分词处理。

一、中文分词

中文词语之间不像英语一样,没有空格进行分割,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 LTP
ltp = 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 LTP
ltp = 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开始的:

image.png

(2)第二行的(2, 0, 'HED')第二列为0,代表索引为2的结点(叫)的父节点是索引为0的虚拟root节点。

(3)第一行的(1, 2, 'SBV')的SBV是表示两个节点的依存关系是主谓关系,即“叫”和“他”是主谓关系。

五、语义依存分析

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

5.1 树

from ltp import LTP
ltp = 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 LTP
ltp = 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')
#     ]
# ]
相关文章
|
机器学习/深度学习 自然语言处理 数据处理
【NLP】NLTK工具集使用
NLTK提供了多种语料库(Corpora)和词典(Lexicon)资源,如WordNet等,以及常用工具集,如分句、标记解析(Tokenization)、词干提取(Stemming)、词性标注(POS Taggin)和句法分析(Syntactic Parsing)等,用于英文文本数据处理。 关于nltk的下载还是很多坑的,如果直接import nltk和nltk.download()下载失败,可参考:
523 0
【NLP】NLTK工具集使用
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用与挑战
【10月更文挑战第3天】本文将探讨AI技术在自然语言处理(NLP)领域的应用及其面临的挑战。我们将分析NLP的基本原理,介绍AI技术如何推动NLP的发展,并讨论当前的挑战和未来的趋势。通过本文,读者将了解AI技术在NLP中的重要性,以及如何利用这些技术解决实际问题。
|
3月前
|
机器学习/深度学习 数据采集 自然语言处理
深度学习在自然语言处理中的应用与挑战
本文探讨了深度学习技术在自然语言处理(NLP)领域的应用,包括机器翻译、情感分析和文本生成等方面。同时,讨论了数据质量、模型复杂性和伦理问题等挑战,并提出了未来的研究方向和解决方案。通过综合分析,本文旨在为NLP领域的研究人员和从业者提供有价值的参考。
|
1月前
|
自然语言处理 API C++
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
SmartVscode插件深度解析:自然语言控制VS Code的革命性工具及其开源框架App-Controller
|
2月前
|
自然语言处理 算法 Python
自然语言处理(NLP)在文本分析中的应用:从「被动收集」到「主动分析」
【10月更文挑战第9天】自然语言处理(NLP)在文本分析中的应用:从「被动收集」到「主动分析」
56 4
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在自然语言处理中的创新应用
【10月更文挑战第7天】本文将深入探讨人工智能在自然语言处理领域的最新进展,揭示AI技术如何改变我们与机器的互动方式,并展示通过实际代码示例实现的具体应用。
50 1
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
AI在自然语言处理中的突破:从理论到应用
AI在自然语言处理中的突破:从理论到应用
54 17
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用
随着人工智能技术的不断发展,自然语言处理(NLP)已经成为了一个重要的应用领域。本文将介绍一些常见的NLP任务和算法,并通过代码示例来展示如何实现这些任务。我们将讨论文本分类、情感分析、命名实体识别等常见任务,并使用Python和相关库来实现这些任务。最后,我们将探讨NLP在未来的发展趋势和挑战。
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在自然语言处理中的创新应用
本文旨在揭示人工智能技术如何革新自然语言处理领域。我们将从基础的文本分析到复杂的情感识别,逐步深入探讨AI如何提升语言理解的准确性和效率。文章将通过实际代码示例,展示AI技术在自然语言处理中的应用,并讨论其对日常生活的潜在影响。读者将获得关于AI技术在理解和生成自然语言方面的实用知识,以及如何将这些技术应用于解决现实世界问题的见解。
|
1月前
|
机器学习/深度学习 自然语言处理 监控
探索深度学习在自然语言处理中的应用与挑战
本文深入分析了深度学习技术在自然语言处理(NLP)领域的应用,并探讨了当前面临的主要挑战。通过案例研究,展示了如何利用神经网络模型解决文本分类、情感分析、机器翻译等任务。同时,文章也指出了数据稀疏性、模型泛化能力以及计算资源消耗等问题,并对未来的发展趋势进行了展望。

热门文章

最新文章