Ste*_*veS 7 nlp named-entity-recognition nltk python-3.x spacy
给定一组字符串,例如:
"John Doe"
"Doe John"
"Albert Green"
"Greenshpan David"
...
Run Code Online (Sandbox Code Playgroud)
我想运行一个能够识别名字和姓氏的 NER 模型。我使用的所有英文模型(Spacy、NLTK 等)都给了我 PERSON 实体。
请问有没有已经训练好的模型?
期望的输出:
{"John": "First Name", "Doe": "Last Name"}
{"Doe": "Last Name", "John": "First Name"}
{"Albert": "First Name", "Green": "Last Name"}
{"Greenshpan": "Last Name", "David": "First Name"}
Run Code Online (Sandbox Code Playgroud)
嗯,我认为几乎所有重要的 NER 数据集(这些模型在这些数据集上进行训练)都不会区分名字和姓氏。我猜想在正常的完整句子语言中,这种模式last name first name是相当罕见的。我的猜测甚至是,在大多数情况下,主要是上下文决定了哪个先出现。在正常的书面和口语句子中,名字几乎总是排在第一位。在某些列表格式和特定数据库中,可能是相反的方式,尽管通常由,.
此外,这种分离在语言中通常是困难和模糊的(甚至比 NER 已经更加困难),因为存在像David Paul/Paul David这样的明显情况,即使对于人类注释者来说也是不可能分辨的。
所以你可以做的是:
,如果实体中有 a ,则假设它是lastname firstname,否则firstname lastnamefirstname lastname,否则lastname firstname:为此,您可以使用 SpaCy 的句子分割将句子分割成句子,然后将句子输入到在 CoLA(语言可接受性语料库)任务上训练的任何模型,例如,请参见此演示:示例 1(正确)、示例 2(不正确)Mr.和Dr.由单个单词组成的实体作为可能的名字。也许也有包含流行名字和姓氏的数据库。使用收集的数据集检查名称实体的一部分是作为名字出现的频率更高还是作为姓氏的频率更高。如果未知,则假设较长的部分是姓氏。| 归档时间: |
|
| 查看次数: |
2332 次 |
| 最近记录: |