如何使用python识别中文或英文名称

时间:2017-04-28 16:13:21

标签: python machine-learning

鉴于一堆名字,我们怎样才能找出哪些是中文名字,哪些是英文名字?对于中文名字,我建立了一个中文姓名列表,以找出中文名字。例如,李小龙,Lee是中国姓氏,所以我们认为李小龙是中国人的名字。但是,中国的姓氏名单很大。有没有更好的方法呢?如果您不熟悉中文名称,可以告诉您如何将英文名称与其他名称区分开来,如法语名称,意大利语名称等。

2 个答案:

答案 0 :(得分:2)

如果您有典型的中文和英文名称列表且问题仅限于性能,我建议您将列表转换为集合,然后在两个集合中请求成员资格,因为这比查明元素是否存在要快得多在一个大清单中。

答案 1 :(得分:0)

嗯,这是一个泡菜。

如果教授的名字是用中文写的,那么显而易见的答案就是检查名字中的每个字符。这个answer给我们一个线索,许多常用的unicode“中文”字符在19968 - 40959范围内。

因此:

def is_chinese(var):
    if ord(var) >= 19968 and ord(var) <= 40959:
        return True

如果您假设的中国教授的名字是使用他们生物中某个范围内的字符编写的,那么您只需搜索该范围内的几个字符即可得到合理的答案。

但是,如果您已经有一个中文名称列表,@ SheepPerplexed可能提供了最快捷的方式。