Skip to content

Commit b8ff0b1

Browse files
author
xuming06
committed
update ltp demo with srl. xuming 20180223
1 parent 0632477 commit b8ff0b1

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

tool/ltp_demo.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import os
55

66
ltp_data_dir = '/Users/xuming06/Codes/ltp_data_v3.4.0'
7+
8+
# segment
79
cws_model_path = os.path.join(ltp_data_dir, 'cws.model')
810

911
from pyltp import Segmentor
@@ -14,12 +16,14 @@
1416
words = segmentor.segment(text)
1517
print(" ".join(words)) # 我 是 中国 人 , 我 在 爱斯基摩 打雪仗 。 欧几 里 得 是 西元前 三 世纪 的 希腊 数学家
1618

19+
# segment with lexicon
1720
segmentor = Segmentor()
1821
# load self dictionary
1922
segmentor.load_with_lexicon(cws_model_path, './self_dict.txt')
2023
words = segmentor.segment(text)
2124
print(" ".join(words)) # 我 是 中国 人 , 我 在 爱斯基摩 打雪仗 。 欧几里得 是 西元前 三 世纪 的 希腊 数学家
2225

26+
# pos
2327
pos_model_path = os.path.join(ltp_data_dir, 'pos.model')
2428

2529
from pyltp import Postagger
@@ -34,6 +38,8 @@
3438
word_pos = list(i[0] + '/' + i[1] for i in zipped)
3539
print(' '.join(word_pos))
3640

41+
42+
# ner
3743
ner_model_path = os.path.join(ltp_data_dir, 'ner.model')
3844
from pyltp import NamedEntityRecognizer
3945

@@ -45,6 +51,8 @@
4551

4652
print(' '.join(nertags))
4753

54+
55+
# parser
4856
par_model_path = os.path.join(ltp_data_dir, 'parser.model')
4957
from pyltp import Parser
5058

@@ -61,6 +69,17 @@
6169
for i in range(len(words)):
6270
print(relation[i] + '(' + words[i] + ', ' + heads[i] + ')')
6371

72+
# SRL
73+
srl_model_path = os.path.join(ltp_data_dir,'pisrl.model')
74+
from pyltp import SementicRoleLabeller
75+
srl = SementicRoleLabeller()
76+
srl.load(srl_model_path)
77+
roles = srl.label(words,postags,arcs)
78+
for role in roles:
79+
print(role.index, "".join(
80+
["%s:(%d,%d)" % (arg.name, arg.range.start,arg.range.end) for arg in role.arguments]))
81+
82+
srl.release()
6483

6584
# jieba
6685
import jieba

0 commit comments

Comments
 (0)