美文网首页
在本地安装使用 LTP

在本地安装使用 LTP

作者: 高正杰 | 来源:发表于2017-12-24 15:52 被阅读369次

    1. 在本地安装 pyltp

    本机是 python3.x 环境,使用 pip 包管理器进行安装。
    cmd 命令行输入如下命令即可。
    pip install pyltp

    报错error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

    解决办法:直接去对应的网址下载这些组件自动安装即可,http://landinghub.visualstudio.com/visual-cpp-build-tools

    pyltp 安装成功

    2. 模型下载

    安装完成后,我们需要安装pyltp的模型,从百度云这里下载 ,注意模型版本必须要和pyltp的版本对应。
    我使用的版本如下

    pyltp版本::0.1.9.1 模型:3.4.0

    4. Demo

    # -*- coding: utf-8 -*-
    #作者:gaozhengjie
    #博客:http://blog.csdn.net/firewall5788
    #邮箱:3170601003@cuit.edu.cn
    #python 版本:3.6.1
    #时间:2017/10/15
    from pyltp import SentenceSplitter
    from pyltp import Segmentor
    from pyltp import Postagger
    from pyltp import SementicRoleLabeller
    from pyltp import NamedEntityRecognizer
    from pyltp import Parser
    
    model_address = 'D:\\BaiduYunDownload\\ltp_data_v3.4.0\\' # 模型的根地址,具体模型在后面添加地址即可
    
    #分词
    def segmentor(sentence):
        segmentor = Segmentor()  # 初始化实例
        segmentor.load_with_lexicon(model_address+'cws.model', model_address+'dict.txt')  # 加载模型
        words = segmentor.segment(sentence)  # 分词
        #默认可以这样输出
        print('\t'.join(words))
        # 可以转换成List 输出
        words_list = list(words)
        segmentor.release()  # 释放模型
        return words_list
    
    def posttagger(words):
        postagger = Postagger() # 初始化实例
        postagger.load(model_address+'pos.model')  # 加载模型
        postags = postagger.postag(words)  # 词性标注
        for word,tag in zip(words,postags):
            print(word+'/'+tag)
        postagger.release()  # 释放模型
        return postags
    
    #命名实体识别
    def ner(words, postags):
        recognizer = NamedEntityRecognizer() # 初始化实例
        recognizer.load(model_address+'\\ner.model')  # 加载模型
        netags = recognizer.recognize(words, postags)  # 命名实体识别
        for word, ntag in zip(words, netags):
            print(word + '/' + ntag)
        recognizer.release()  # 释放模型
        return netags
    
    
    test_sentence = '我老家广安的,我现在在成都信息工程大学上学。我的室友夏朝阳写代码很厉害,我要向他学习。还有,我的博客是http://blog.csdn.net/firewall5788'
    #测试分词
    words = segmentor(test_sentence)
    print('###############以上为分词测试###############')
    #测试标注
    tags = posttagger(words)
    print('###############以上为词性标注测试###############')
    #命名实体识别
    netags = ner(words,tags)
    print('###############以上为命名实体识别测试###############')
    

    推荐参考该文章 http://blog.csdn.net/mebiuw/article/details/52496920



    该文章于2017年10月13日于CSDN上首次发表,2017年12月24日搬家至此!

    相关文章

      网友评论

          本文标题:在本地安装使用 LTP

          本文链接:https://www.haomeiwen.com/subject/uodhgxtx.html