python humanname中的自定义常量不起作用

2024-06-16 10:30:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在按照指示here on using the python-nameparser。你知道吗

我的问题是,对于包含“助理教授”的人名,我得到的头衔是“助理”,而“教授”被指定为名字。你知道吗

>>> o.full_name = 'Assistant Professor Darwin Mittenchops'
>>> o
<HumanName : [
    Title: 'Assistant' 
    First: 'Professor' 
    Middle: 'Darwin' 
    Last: 'Mittenchops' 
    Suffix: ''
]>

而不是

>>> o
<HumanName : [
    Title: 'Assistant Professor' 
    First: 'Darwin' 
    Middle: '' 
    Last: 'Mittenchops' 
    Suffix: ''
]>

他们添加自定义常量以解决此问题的示例如下:

>>> from nameparser import HumanName
>>> from nameparser.constants import PREFIXES
>>> 
>>> prefixes_c = PREFIXES | set(['te'])
>>> hn = HumanName(prefixes_c=prefixes_c)
>>> hn.full_name = "Te Awanui-a-Rangi Black"
>>> hn
<HumanName : [
    Title: '' 
    First: 'Te Awanui-a-Rangi' 
    Middle: '' 
    Last: 'Black' 
    Suffix: ''
]>

所以,下面让我把“助理教授”列为一个头衔:

>>> from nameparser import HumanName
>>> from nameparser.constants import TITLES
>>> titles_c = TITLES | set(["assistant professor"])
>>> hn = HumanName(titles_c=titles_c)
>>> hn.full_name = 'Assistant Professor Darwin Mittenchops'
>>> hn
<HumanName : [
    Title: 'Assistant' 
    First: 'Professor' 
    Middle: 'Darwin' 
    Last: 'Mittenchops' 
    Suffix: ''
]>

没有骰子。你知道吗

>>> "assistant professor" in titles_c
True

所以,我知道它就在那里。只是好像不管用。你知道吗


Tags: fromimportmiddletitlesuffixfirstlastassistant
1条回答
网友
1楼 · 发布于 2024-06-16 10:30:54

啊,我读得太快了。代码可以处理组合词,但是我们需要将这些词单独添加到titles_c集合中,而不是作为一个单元。示例:

>>> from nameparser import HumanName
>>> from nameparser.constants import TITLES
>>> titles_c = TITLES | set("assistant professor".split())
>>> hn = HumanName(titles_c=titles_c)
>>> hn.full_name = "Assistant Professor Darwin Mittenchops"
>>> hn
<HumanName : [
    Title: 'Assistant Professor' 
    First: 'Darwin' 
    Middle: '' 
    Last: 'Mittenchops' 
    Suffix: ''
]>

相关问题 更多 >