如何用 HanLP 从英文文本中抽取出学校全名?

首先,非常感谢您制作了 HanLP 这个非常有用的库。

1. 问题简述

现在手头有一些英文文本(数量在两千个左右,不会超过一万个)
(个别文本可能中英文混杂,后面会提供例子)
目的:抽取出学校的全名
等成功抽取出名字之后,需要分类,把学校分成 “顶尖学校”, “强校”, “普通学校”, “其他”。
分类这个就不用管了,我只是把业务需求更全面的描述出来,方便您理解整个使用场景,
目前我的进展卡在 用 HanLP 抽取英文学校名 上。

备注:HanLP 抽取中文学校名的正确率很高,点个赞。
抽取中文学校名我用的模型是:

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

中文的没问题了,现在是要处理英文的。

2. 输入例子 + 期望得到的输出。

以下展示需要实际处理的文本(输入),并说明希望从中得到什么(输出)。

例子1(纯英文)

2016, Bologna University, Ph.D. in Oncology,
2012, Bologna University, Medical Specialization in Clinical Pathology,
2007, Bologna University, Master Degree in Biology

希望从中抽取出 Bologna University,也就是学校全名。

例子2(纯英文,多个学校)

Maryville College,  Computer science -    2013
Auburn University, Mechanical Engineering-  2017

希望输出:

  • Maryville College
  • Auburn University

例子3(中英文混杂)

清华大学 机械工程及自动化 学士学位 2003
McGill University 机械工程 硕士学位 2005
Columbia University 机械工程 博士学位 2010

希望输出:

  • 清华大学
  • McGill University
  • Columbia University

例子4(中英文混杂,但格式和前面不同)

本科: 南方科技大学 2017年毕业化学专业
硕士: University of Iowa, 2021年毕业化学硕士专业

希望得到的输出:

  • 南方科技大学
  • University of Iowa

提问之前做过什么尝试

  • 分词(多任务,单任务)
  • 命名实体识别(多任务,单任务)

提问:

  1. 对于 纯英文中英文混杂 的文本,如何使用 HanLP 从中抽取出学校名?
  2. 如果 HanLP 并未内置适合这个任务的模型,我是否需要自己训练模型?如何训练?
  3. 根据您的经验,最适合解决这项任务的 NLP 工具是?

最后

感谢您抽出宝贵的时间阅读并回答。

适用多语种API:Tutorial — HanLP Documentation
NER就足够了,据我所知,没有其他工具发布过多语种NER模型。

1 Like

感谢回复,我试试