gpt4 book ai didi

python - Lucene 或 Python : Select both "Hilary Clinton" and "Clinton, Hilary" name entries

转载 作者:行者123 更新时间:2023-11-28 21:59:42 25 4
gpt4 key购买 nike

假设我有一些自由形式的姓名条目,其中一些格式为“姓氏,名字”,其他格式为“名字姓氏”(例如“Bob MacDonald”和“MacDonald.Bob” "都存在)。

据我所知,Lucene 索引不允许在句子开头使用通配符,所以我可以通过哪些方式找到这两者。这是针对 neo4j 和 py2neo 的,因此欢迎使用 lucene 模式匹配或 python 正则表达式匹配的解决方案。

最佳答案

我不熟悉 neo4j 或 lucene,但我想我会提供一个 Python 正则表达式解决方案,这是我不久前在这个问题上找到的:Logical operator AND with php regular expression

基本上,您可以调整他的答案以适应这个特定问题:您需要名字和姓氏,但您不知道顺序。它们可能在字符串中包含空格或逗号。

这是我想出的正则表达式:(?:\s?Hilary()|\s?Clinton(),?){2}

它测试名字前面有一个可选空格,或者姓氏前面有一个可选空格,或者后面有一个逗号。后面的空括号表示如果满足条件它将返回一个匹配项,{2} 表示它需要两个匹配项(名字和姓氏)。

在 python 中测试它:

import re
t1 = 'Hilary Clinton'
t2 = 'Clinton, Hilary'
re.search(r'(?:\s?Hilary()|\s?Clinton(),?){2}', t1)
re.search(r'(?:\s?Hilary()|\s?Clinton(),?){2}', t2)

两者都返回一个匹配项。希望这会有所帮助。

关于python - Lucene 或 Python : Select both "Hilary Clinton" and "Clinton, Hilary" name entries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16290237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com