chinesename.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:orizonhub 作者: gumblex 项目源码 文件源码
def selectname(self, name, num=10):
        if not name:
            return []
        evalnum = int(num ** (1/len(name))) + 1
        namechars = [sorted(filter(ig1, ((n, self.firstchar.get(n, 1e-10 if 0x4E00 <= ord(n) < 0x9FCD else 0)) for n in self.lookupchar(name[0]))), key=ig1, reverse=1)]
        namechars.extend(sorted(filter(ig1, ((n, self.secondchar.get(n, 1e-10 if 0x4E00 <= ord(n) < 0x9FCD else 0)) for n in self.lookupchar(l))), key=ig1, reverse=1)[:evalnum] for l in name[1:])
        namechars = list(filter(None, namechars))[:10]
        if not namechars:
            return []
        candidates = []
        for group in itertools.product(*namechars):
            gz = tuple(zip(*group))
            gname = ''.join(gz[0])
            gfreq = functools.reduce(operator.mul, gz[1])
            candidates.append((gname, gfreq))
        candidates.sort(key=ig1, reverse=1)
        return [x[0] for x in candidates][:num]
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号