!pip install hanlp -U

"""
Explanation: <h2 align="center">点击下列图标在线运行HanLP</h2>
<div align="center">
    <a href="https://colab.research.google.com/github/hankcs/HanLP/blob/doc-zh/plugins/hanlp_demo/hanlp_demo/zh/dep_mtl.ipynb" target="_blank"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
    <a href="https://mybinder.org/v2/gh/hankcs/HanLP/doc-zh?filepath=plugins%2Fhanlp_demo%2Fhanlp_demo%2Fzh%2Fdep_mtl.ipynb" target="_blank"><img src="https://mybinder.org/badge_logo.svg" alt="Open In Binder"/></a>
</div>

安装
无论是Windows、Linux还是macOS，HanLP的安装只需一句话搞定：
End of explanation
"""


import hanlp
hanlp.pretrained.mtl.ALL # MTL多任务，具体任务见模型名称，语种见名称最后一个字段或相应语料库

"""
Explanation: 加载模型
HanLP的工作流程是先加载模型，模型的标示符存储在hanlp.pretrained这个包中，按照NLP任务归类。
End of explanation
"""


HanLP = hanlp.load(hanlp.pretrained.mtl.CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_BASE_ZH)

"""
Explanation: 调用hanlp.load进行加载，模型会自动下载到本地缓存。自然语言处理分为许多任务，分词只是最初级的一个。与其每个任务单独创建一个模型，不如利用HanLP的联合模型一次性完成多个任务：
End of explanation
"""


doc = HanLP(['2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。', '阿婆主来到北京立方庭参观自然语义科技公司。'], tasks='dep')

"""
Explanation: 依存句法分析
任务越少，速度越快。如指定仅执行依存句法分析：
End of explanation
"""


print(doc)

"""
Explanation: 返回值为一个Document:
End of explanation
"""


doc.pretty_print()

"""
Explanation: doc['dep']为句子们的依存句法树列表，第i个二元组表示第i个单词的[中心词的下标, 与中心词的依存关系]。
可视化依存句法树：
End of explanation
"""


print(doc.to_conll())

"""
Explanation: 转换为CoNLL格式：
End of explanation
"""


HanLP([
    ["HanLP", "为", "生产", "环境", "带来", "次世代", "最", "先进", "的", "多语种", "NLP", "技术", "。"],
    ["我", "的", "希望", "是", "希望", "张晚霞", "的", "背影", "被", "晚霞", "映红", "。"]
  ], tasks='dep', skip_tasks='tok*').pretty_print()

"""
Explanation: 为已分词的句子执行依存句法分析：
End of explanation
"""


