ltp词性标注:
from pyltp import *
sent = "在|包含|问题|的|所有|解|的|解空间树|中|,|按照|深度优先|搜索|的|策略|,|从|根节点|出发|深度|探索|解空间树|。"
words = sent.split("|")
# print(words)
postagger = Postagger()# 实例化词性标注类
postagger.load("E:\\ltp_data_v3.4.0\\pos.model")
postags = postagger.postag(words)
for word, postag in zip(words, postags):
print(word+"/"+postag, end=" ")
运行结果:
标注的标签与原词用“/”分隔,每个标签都有其语法的意义。例如,'n”表示名词,“v”表示动词。
ltp命名实体识别:
from pyltp import *
sent = "欧洲 东部 的 罗马尼亚 , 首都 是 布加勒斯特 , 也 是 一 座 世界性 的 城市 。"
words = sent.split(" ")
postagger = Postagger()
postagger.load("E:\\ltp_data_v3.4.0\\pos.model")
postags = postagger.postag(words)
recognizer = NamedEntityRecognizer()
recognizer.load("E:\\ltp_data_v3.4.0\\ner.model")
netags = recognizer.recognize(words, postags)
for word, postag, netag in zip(words, postags, netags):
print(word+"/"+postag+"/"+netag, end=" ")
运行结果:
ltp句法依存树:
import nltk
from nltk.tree import Tree # 导入nltk tree结构
from nltk.grammar import DependencyGrammar # 依存句法包
from nltk.parse import *
from pyltp import *
words = "中国 的 首都 是 北京 。".split(" ")
# 词性标注
postagger = Postagger()
postagger.load("E:\\ltp_data_v3.4.0\\pos.model")
postags = postagger.postag(words)
# 将词性标注和分词结果都加入分析器中句法解析
parser = Parser()
parser.load("E:\\ltp_data_v3.4.0\\parser.model")
arcs = parser.parse(words, postags)
arclen = len(arcs)
conll = ""
# 构建Conll标准的数据结构
for i in range(arclen):
if arcs[i].head == 0:
arcs[i].relation = "ROOT"
conll += "\t"+words[i]+"("+postags[i]+")"+"\t"+postags[i]+"\t"+str(arcs[i].head)+"\t"+arcs[i].relation+"\n"
print(conll)
# 转换为依存句法图
conlltree = DependencyGraph(conll)
tree = conlltree.tree()
tree.draw()
运行结果:
句法树是一棵依存关系树,根节点为其谓语动词“是”,主语是“首都”,“中国”是修饰“首都”的定语,句子的宾语是“北京”。