将名字和姓氏标记为一个标记

2024-04-24 13:36:40 发布

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

是否可以在标记中标记文本,以便将名字和姓氏组合在一个标记中? 例如,如果我的文本是:

text = "Barack Obama is the President"

然后:

^{pr2}$

结果:

['Barack', 'Obama', 'is', 'the, 'President']

我怎么能认出名字和姓?所以我只得到['Barack Obama', 'is', 'the', 'President']作为标记。在

有没有一种方法可以用Python实现它?在


Tags: the方法text标记文本is名字姓氏
2条回答

你要找的是一个命名实体识别系统。我建议您不要将此视为标记化的一部分。

对于python,可以使用https://pypi.python.org/pypi/ner/

现场示例

>>> tagger.json_entities("Alice went to the Museum of Natural History.")
'{"ORGANIZATION": ["Museum of Natural History"], "PERSON": ["Alice"]}'

这里有一个正则表达式可以满足您问题的需要。它将查找以小写字符开头的单个单词,或匹配单个或成对的大写单词。

import re
re.findall(r"[a-z]\w+|[A-Z]\w+(?: [A-Z]\w+)?",text)

输出

^{pr2}$

相关问题 更多 >