python 如何识别字符串中的人名 ,如何识别一串拼音字符串以及韵母的提取 (一些方法整理)

一、识别字符串中的人名或特定名词

笔者所用的是百度智能云提供的词法分析接口,它可以对字符串分词,并且能够识别句子中的人名,地名,等等。好,接下来教你们如何使用这个接口。 官网:https://cloud.baidu.com/product/nlp/lexical/?_=1571913586808

1.安装Python SDK

首先我们需要安装百度提供的sdk,以便我们在代码中使用它提供的的词法分析功能。

安装方法:pip install baidu-aip 即可

2.获取APP ID

为了使用这个接口,我们还需要获取到百度智能云提供的账号(如下图中的APPID、  API KEY、  SECRET KEY)。

登录官网后,我们需要在百度智能云的管理中心创建一个应用, 这样我们就能通过这个ID使用接口了,如下图。 网址https://console.bce.baidu.com/ai/#/ai/nlp/overview/index

3.代码调用

这一步就需要使用python写代码来调用它了。直接上代码

def get_chinese_name(text):
    """
    :param text: 中文字符串
    :return: 人名
    """

    """识别人名"""
    # 上一步获取到的ID AK SK
    APP_ID = '你的ID' 
    API_KEY = '你的AK'
    SECRET_KEY = '你的SK'

    client = AipNlp(APP_ID, API_KEY, SECRET_KEY)

    text = str(text.encode('gbk', 'ignore'), encoding='gbk')  # ignore忽略无法编码的字符,如果不加这个会报错。

    # 设置请求间隔,免费版的QPS限制为2,有能力的可以购买。
    time.sleep(1)

    # 调用词法分析的返回结果
    print(client.lexer(text))

    """ 调用词法分析 """
    for i in client.lexer(text)['items']:
        # 若字符串中有人名就返回人名
        if i['ne'] == 'PER':
            return i['item']

    return ''

我们测试一段字符串

    text = "这是一段测试文本,我的中文名是媛媛"
    print(get_chinese_name(text))

返回结果:

 {'log_id': 375282685928253176, 'text': '这是一段测试文本,我的中文名是媛媛', 'items': [{'loc_details': [], 'byte_offset': 0, 'uri': '', 'pos': 'r', 'ne': '', 'item': '这', 'basic_words': ['这'], 'byte_length': 2, 'formal': ''}, {'loc_details': [], 'byte_offset': 2, 'uri': '', 'pos': 'v', 'ne': '', 'item': '是', 'basic_words': ['是'], 'byte_length': 2, 'formal': ''}, {'loc_details': [], 'byte_offset': 4, 'uri': '', 'pos': 'm', 'ne': '', 'item': '一段', 'basic_words': ['一', '段'], 'byte_length': 4, 'formal': &#

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
文信息计算机自动处理的研究已有几十年的 历史 , 但至今仍有许多技术难题没有得到很好解 决 , 姓名自动识别问题就是其的一个。由于 它与文文本的自动分词一样 , 属于文信息处理 的基础研究领域 , 因而它的研究成果直接影响到 文信息的深层次研究。汉语的自身特点使得文信 息自动处理大多是先对要处理的文本进行自动分词 (加入显式分割符) , 然后再在分词的基础上进行词 法、语法、语义等方面的深入分析。而在分词阶 段 , 文本人名、地名以及其它专有名词和生词 大多被切分成单字词 , 在这种情形下如不能很好地 解决汉语文本专有名词生词的识别问题 , 将给其 后的汉语文本的深入分析带来难以逾越的障碍。姓名的自动识别问题就是在这种背景下提出来 的。对这一问题的研究目前采用的技术主要利用 以下几方面的信息: 姓名用字的频率信息、上下文 信息[1 ,2 ] 、语料库统计信息[2 ] 、词性信息等[3 ] 。本 文的方法是 , 首先对人名的构成、姓名用字的 规律及上下文文本信息特征进行充分分析 , 在此基 础上建立起两组规则集 , 将其作用于测试文本 , 获 得初步识别结果 , 再利用大规模语料库的统计信息 对初步识别结果进行概率筛选 , 设定合适的阈值 , 输出最终识别结果。经对 50 多万字的开放语料测 试 , 系统自动识别出 1781 个人名 , 在不同的 筛选阈值下获得 90 %以上的识别准确率 , 而召回 率高于 91 %。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值