一个简单的python模块,用于将人名解析为各个组件。

nameparser的Python项目详细描述


Build StatusPyPIPyPI versionDocumentation

一个简单的python(3.2+&2.6+)模块,用于将人名解析为 单个组件。

  • hn.title
  • hn.first
  • hn.中间
  • hn.last
  • hn.后缀
  • hn.昵称
  • hn.姓(中间+最后)

支持的名称结构

支持的名称结构通常是“title first middle last suffix”,其中所有部分 是可选的。也支持逗号分隔格式,如“最后,第一”。

  1. title firstname“昵称”中间中间的姓氏后缀
  2. 姓氏[后缀],名字(昵称)中间名[,]后缀[,后缀]
  3. 名字m姓[后缀],后缀[后缀][,后缀]

用逗号上的字符串拆分然后用空格实例化humanname类, 根据字符串中的位置对名称部分进行分类,并与已知名称进行匹配 比如标题和后缀。

它正确地处理了一些常见的连词和姓氏的特殊前缀。 就像“德尔”。标题和连词可以链接在一起以处理复杂的 像“助理国务卿”这样的头衔。它还可以尝试纠正大写 所有的名字都是大写或小写的。

它试图用一种简单的、基于规则的方法做出最好的猜测。 它的主要用例是英语,不太可能对语言有用 不符合支持的名称结构的。不是完美的,但是 让你走得很远。

安装

pip install nameparser

如果您想试用github的最新代码,可以 使用下面的命令使用pip安装。

pip install -egit+git://github.com/derek73/python-nameparser.git#egg=nameparser

如果您需要处理姓名列表,请查看 namesparser,一个 向这个处理字符串中多个名称的模块致意。

快速启动示例

>>> from nameparser import HumanName
>>> name = HumanName("Dr. Juan Q. Xavier de la Vega III (Doc Vega)")
>>> name
<HumanName : [
    title: 'Dr.'
    first: 'Juan'
    middle: 'Q. Xavier'
    last: 'de la Vega'
    suffix: 'III'
    nickname: 'Doc Vega'
]>
>>> name.last
'de la Vega'
>>> name.as_dict()
{'last': 'de la Vega', 'suffix': 'III', 'title': 'Dr.', 'middle': 'Q. Xavier', 'nickname': 'Doc Vega', 'first': 'Juan'}
>>> str(name)
'Dr. Juan Q. Xavier de la Vega III (Doc Vega)'
>>> name.string_format = "{first} {last}"
>>> str(name)
'Juan de la Vega'

解析器不会试图更正输入中的错误。大部分都是白色的 根据它们在字符串中的位置将它们放置在桶中。这也意味着 “title”和“suffix”的区别在于位置,而不是语义。“博士”是一个头衔 当它出现在名字的前面时,当它出现在后面时,它会有一个后缀。(“名义前” “后名义”可能是更好的名字。)

>>> name = HumanName("1 & 2, 3 4 5, Mr.")
>>> name
<HumanName : [
    title: ''
    first: '3'
    middle: '4 5'
    last: '1 & 2'
    suffix: 'Mr.'
    nickname: ''
]>

定制

您的项目可能需要对数据集进行一些调整。你可以 通过标题、前缀等的customizing the configured pre-defined sets,或者通过将humanname类子类化,在您自己的前处理或后处理中执行此操作。见 full documentation了解更多信息。

Full documentation

贡献

如果您遇到您认为应该在默认配置中的name piece,则 可能是对的。Start a New Issue我们可以添加它们。

请让我知道这个图书馆是否有办法 在项目中更容易使用。阅读CONTRIBUTING.md了解更多信息 在运行测试和参与项目时。

github项目

https://github.com/derek73/python-nameparser

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaREST/SOAP服务技术栈   爪哇的意图。getExtras()。getString“”应用程序在重新打开时崩溃   java如何实现doGeneratemethod?   有CMU Sphinx本地lmtool for java吗?   json如何将字符串传递给。来自java IntelliJS文件中的   java在play1中使用ssl。2.4申请   java在NetBeans中生成匿名侦听器   抛出java错误消息:索引超出界限异常   对于java中当前声明的变量,有没有办法将两个不同对象的输入分开?   JavaEJB与Spring+POJO   java如何使spring boot嵌入式tomcat返回200 OK作为基本url?   java在运行时根据登录用户更改数据库模式   数组如何让Java忽略ArrayList中的负值?   javascript将在JSP文件中编译脚本?   java JPA@OneToMany和@EmbeddedId   rxtx使用java通过串行电缆从PCB板读取数据   java LIBGDX创建音乐时出错