from pyhanlp import *
HanLP.Config.ShowTermNature = False
a=HanLP.parseDependency('08年公司毛利率40.6%,比07年下降仅1个百分点,主要源于大麦、酒花和包装物成本上升。')
for i in a:
print(i)
结果
1 08年 08年 nt t _ 2 定中关系 _ _
2 公司 公司 n n _ 3 定中关系 _ _
3 毛利率 毛利率 n n _ 4 主谓关系 _ _
4 40.6% 40.6% m m _ 0 核心关系 _ _
5 , , wp w _ 4 标点符号 _ _
6 比 比 p p _ 9 状中结构 _ _
7 07 07 m m _ 8 定中关系 _ _
8 年 年 q q _ 6 介宾关系 _ _
9 下降 下降 v v _ 4 并列关系 _ _
10 仅 仅 d d _ 11 定中关系 _ _
11 1 1 m m _ 12 定中关系 _ _
12 个 个 q q _ 13 定中关系 _ _
13 百分点 百分点 n n _ 9 动宾关系 _ _
14 , , wp w _ 9 标点符号 _ _
15 主要 主要 d d _ 16 状中结构 _ _
16 源于 源于 v v _ 9 并列关系 _ _
17 大麦 大麦 n n _ 23 定中关系 _ _
18 、 、 wp w _ 19 标点符号 _ _
19 酒花 酒花 n n _ 17 并列关系 _ _
20 和 和 c c _ 21 左附加关系 _ _
21 包装 包装 v vn _ 22 定中关系 _ _
22 物 物 Ng Ng _ 17 并列关系 _ _
23 成本上升 成本上升 nz nz _ 16 动宾关系 _ _
24 。 。 wp w _ 4 标点符号 _ _
这里就有一个问题
当你想调用其中一列信息的时候
比如
from pyhanlp import *
HanLP.Config.ShowTermNature = False
a=HanLP.parseDependency('08年公司毛利率40.6%,比07年下降仅1个百分点,主要源于大麦、酒花和包装物成本上升。')
for i in range(len(a)):
print(a[i][0])
可以看见是无法调用的 TypeError: 'com.hankcs.hanlp.corpus.dependency.CoNll.CoNLLSentence' object does not support indexing
我一直想找到CoNLLSentence的参数表,以便于能提起一列一列数据
开始并没有找到完整的
只找到
每个词的分词结果
a.LEMMA 以及不知道什么的标签 a.HEAD
这就很离谱,我在官方的说明文档中,并没有找到对每一列的说明
我甚至都怀疑hanlp是不是没有搞这个列名
后面自己不断尝试不同函数对结果进行操作
终于找到提取句法列和分词列的方法
d=[]#准备一个空的list,保存head的列
b=list(a)#输出强制转换为list
for i in b:
c=str(i).split()#a的每个元素强制转换为string
d.append(c[6])#加入list中
最后得到d
['2', '3', '4', '0', '4', '9', '8', '6', '4', '11', '12', '13', '9', '9', '16', '9', '23', '19', '17', '21', '22', '17', '16', '4']
这是hanlp的依存句法分析的head列的list
如果官方有文档,希望看见文档的朋友们能发我一下链接,我还是觉得官方应该会给个直接调用的方法,不可能让我们自己破解他们的输出。