Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用正则表达式进行身份解析_Python_R_Regex - Fatal编程技术网

Python 使用正则表达式进行身份解析

Python 使用正则表达式进行身份解析,python,r,regex,Python,R,Regex,我有一份从身份解析中获益的论文作者名单! 例如,它应与以下名称匹配: Peter J. Smith Peter Smith P.J. Smith P. J. Smith (works with space or without it) p.j. smith 我对RegEx不熟悉。我想用R/Python编写一个正则表达式,匹配名字的首字母和整个姓氏,忽略中间的名字。(虽然,这种方法会有一些问题,例如出现诸如Peter L.Smith之类的名字,但我认为考虑中间名会使事情复杂化。)感谢您的帮助

我有一份从身份解析中获益的论文作者名单! 例如,它应与以下名称匹配:

Peter J. Smith
Peter Smith
P.J. Smith
P. J. Smith (works with space or without it)
p.j. smith 

我对RegEx不熟悉。我想用R/Python编写一个正则表达式,匹配名字的首字母和整个姓氏,忽略中间的名字。(虽然,这种方法会有一些问题,例如出现诸如Peter L.Smith之类的名字,但我认为考虑中间名会使事情复杂化。)感谢您的帮助

在结尾的笔记中使用
L
,尝试将第一个字母加上最后一个空格后的所有内容,并将其传递给语音包中的一个算法。在本例中,它确实正确地将Peter Smith的所有变体映射到相同的代码,同时用不同的代码区分Peter Sorensen

library(phonics)

onca(sub("^(.).* (.*)", "\\1 \\2", trimws(L)))
## [1] "P253" "P253" "P253" "P253" "P253" "P265"
该软件包还包含soundex和其他算法,您可以试用


我给我们看看你试过什么…看看这对你有没有帮助。谢谢我们可以避免将“保罗·史密斯”与“彼得·史密斯”相提并论吗?你将不得不根据你的名单来选择不同的版本。不太可能达到100%的准确率。
L <- c("Peter J. Smith", "Peter Smith", "P.J. Smith", "P. J. Smith", "p.j. smith", 
 "Peter Sorensen")