在Python中向Nameparser添加自定义名称后缀



我使用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.(采矿(;。。。我不认为名称解析器知道如何处理这个问题。我想你只需要添加bscbe,然后有一点类似的代码:

if name.suffix == 'B.Sc.' and name.nickname == 'Geology':
name.suffix += f' ({name.nickname})'
name.nickname = ''

最新更新