我使用Nameparser来解析存储为单个字符串的全名数据库的名称。我一直在尝试添加自定义后缀,但收效甚微。
from nameparser import HumanName
from nameparser.config import Constants
constants = Constants()
constants.suffix_acronyms.add(
'A.O.'
)
HumanName("Brock N. Little, A.O.", constants=constants)
# <HumanName : [
# title: ''
# first: 'A.O.'
# middle: ''
# last: 'Brock N. Little'
# suffix: ''
# nickname: ''
# ]>
我想要以下输出:
# <HumanName : [
# title: ''
# first: 'Brock'
# middle: 'N.'
# last: 'Little'
# suffix: 'A.O.'
# nickname: ''
# ]>
我有很多随机后缀,我想包括默认情况下没有捕获的:
- B。理学硕士(地质学(
- B。E.(采矿(
- Eng
- C。A
- O。C
- S。O.M
- 第页。C
看看默认值,缩写词不包括句点。
constants.suffix_acronyms.add('ao')
对我有用。
对于";B.S.(地质学(";以及";B.E.(采矿(;。。。我不认为名称解析器知道如何处理这个问题。我想你只需要添加bsc
和be
,然后有一点类似的代码:
if name.suffix == 'B.Sc.' and name.nickname == 'Geology':
name.suffix += f' ({name.nickname})'
name.nickname = ''