我有一份受益于身份解析的论文作者名单! 例如,它应该匹配这些名称:
Peter J. Smith
Peter Smith
P.J. Smith
P. J. Smith (works with space or without it)
p.j. smith
我是RegEx的新手。我想在R / Python中编写一个RegEx,它匹配名字的首字母和整个姓氏,并忽略中间名。 (虽然,这种方法会有一些问题,例如有像Peter L. Smith这样的名字,但我认为考虑中间名会使事情变得复杂。)感谢您的帮助。
答案 0 :(得分:2)
在最后的注释中使用L
尝试将第一个字母加上最后一个空格后的所有内容,然后将其传递到语音包中的一个算法。在这个例子中,它确实将Peter Smith的所有变体映射到相同的代码,同时用不同的代码区分Peter Sorensen。
library(phonics)
onca(sub("^(.).* (.*)", "\\1 \\2", trimws(L)))
## [1] "P253" "P253" "P253" "P253" "P253" "P265"
该软件包还有soundex和其他可以尝试的算法。
L <- c("Peter J. Smith", "Peter Smith", "P.J. Smith", "P. J. Smith", "p.j. smith",
"Peter Sorensen")