Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 解析名称的逻辑_Algorithm_Logic - Fatal编程技术网

Algorithm 解析名称的逻辑

Algorithm 解析名称的逻辑,algorithm,logic,Algorithm,Logic,我想解决这个问题,但我有点不确定如何正确构造这样做的逻辑。我得到了一个用户名列表,我被告知要为它找到一个提取的名称。例如,我将看到一个用户名列表,如下所示: jason dooley smith rob.smith kristi.bailey kristi.betty.bailey kristi.b.bailey robertvolk robvolk k.b.dula kristidula kristibettydula kristibdula kdula kbdula alexanderson

我想解决这个问题,但我有点不确定如何正确构造这样做的逻辑。我得到了一个用户名列表,我被告知要为它找到一个提取的名称。例如,我将看到一个用户名列表,如下所示:

jason
dooley
smith
rob.smith
kristi.bailey
kristi.betty.bailey
kristi.b.bailey
robertvolk
robvolk
k.b.dula
kristidula
kristibettydula
kristibdula
kdula
kbdula
alexanderson
caesardv
joseluis.lopez
jbpritzker
jean-luc.vey
dvandewal
malami
jgarciathome
christophertroethlisberger
然后如何将每个用户名转换为提取的名称?我得到的唯一参数是保证每个用户名至少有一部分人名

比如说,克里斯蒂·贝利会变成克里斯蒂·贝利 alexanderson会变成Alex Anderson

所以,我看到的模式是,如果我看到一个句点,我会把它变成两个字符串,可能是名字和姓氏。如果我看到三个阶段,那么它将是第一阶段,中间阶段。我在寻找逻辑上遇到的问题是,当这个名字像alexanderson或jgarciathome一样聚集在一起时。如何将其转换为提取的名称?我想做一些事情,比如如果我看到两个辅音和一个元音排成一行,我会把它们的名字分开,但我认为这行不通


有什么想法吗?

我会使用string.StartsWith方法和string.EndsWith方法,并确定每个方法的最大重叠。只要超过2个字符,就称之为通用名称。根据通用名称将它们排序到bucket中。这是一个幼稚的实现,但这就是我要开始的地方

例如:

string name1 = "kristi.bailey";
string name2 = "kristi.betty.bailey";

// We've got a 6 character overlap for first name:
name2.StartsWith(name1.Substring(0,6)) // this is true

// We've got a 6 character overlap for last name:
name2.EndsWith(name1.Substring(7)) // this is true

请您发布预期的输出,我没有得到这个问题的输出。我怀疑可能没有一个答案可以解决像这样的所有问题。因为可能只有一些用户名是无法识别的。不过我正在努力找出最好的方法。你有亚历山大和贾卡夏家的字典可供参考吗?这是办不到的。看看你的清单:凯撒,凯撒是你的名字,但你对DV没有太多的理解。杰森、史密斯和马拉米只是名字。手动操作,或将工作发布给在线承包商。alexanderson是否应该与Alex Anderson或Alexander Son或甚至Alexa N Derson协商?克里斯蒂杜拉是克里斯蒂杜拉还是克里斯蒂杜拉?你的许多例子模棱两可。也许对提取的名称的精确定义可能会有用……你对开头和结尾的意思有点困惑。你能举个例子吗?像那样。最大索引值可以通过算法来确定。我刚刚发现,在这个问题中,您不能将任何名称与以前找到的任何名称相关联。你有没有其他办法解决这个问题?