美文网首页人工智能小白入门
自然语言处理基础技术之分词实战

自然语言处理基础技术之分词实战

作者: yuquanle | 来源:发表于2018-11-24 21:04 被阅读2次

    声明:转载请注明出处,谢谢:https://www.jianshu.com/p/8d3993bce06b
    另外,更多实时更新的个人学习笔记分享,请关注:


    知乎https://www.zhihu.com/people/yuquanle/columns
    公众号:StudyForAI
    CSDN地址http://blog.csdn.net/m0_37306360


    jieba分词

    安装:pip install jieba

    国内源安装更快:pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple

    导入jieba包

    
    import jieba
    
    

    全模式分词

    
    wordseg_all = jieba.cut("我爱自然语言处理技术!", cut_all=True)
    
    print("全模式: " + " ".join(wordseg_all))
    
    
    
    Building prefix dict from the default dictionary ...
    
    Dumping model to file cache C:\Users\yuquanle\AppData\Local\Temp\jieba.cache
    
    Loading model cost 0.968 seconds.
    
    Prefix dict has been built succesfully.
    
    全模式: 我 爱 自然 自然语言 语言 处理 技术 
    
    

    精确模式分词

    
    wordseg = jieba.cut("我爱自然语言处理技术!", cut_all=False)
    
    print("精确模式: " + " ".join(wordseg))
    
    
    精确模式: 我 爱 自然语言 处理 技术 !
    

    搜索引擎模式

    
    wordseg_search = jieba.cut_for_search("我爱自然语言处理技术!") 
    
    print("搜索引擎模式:" + " ".join(wordseg_search))
    
    
    搜索引擎模式:我 爱 自然 语言 自然语言 处理 技术 !
    

    SnowNLP分词

    安装:pip install snownlp

    国内源安装:pip install snownlp -i https://pypi.tuna.tsinghua.edu.cn/simple

    导入snownlp包

    
    from snownlp import SnowNLP
    
    
    
    model = SnowNLP(u'我爱自然语言处理技术!')
    
    print(model.words)
    
    
    ['我', '爱', '自然', '语言', '处理', '技术', '!']
    

    THULAC分词

    安装:pip install thulac

    国内源安装:pip install thulac -i https://pypi.tuna.tsinghua.edu.cn/simple

    导入thulac包

    
    import thulac
    
    

    默认模式:分词的同时进行词性标注

    
    thulac_model = thulac.thulac()
    
    wordseg = thulac_model.cut("我爱自然语言处理技术!")
    
    print(wordseg)
    
    
    Model loaded succeed
    
    [['我', 'r'], ['爱', 'v'], ['自然', 'n'], ['语言', 'n'], ['处理', 'v'], ['技术', 'n'], ['!', 'w']]
    

    只进行分词

    
    seg_only_model = thulac.thulac(seg_only=True)
    
    wordseg_only = seg_only_model.cut("我爱自然语言处理技术!")
    
    print(wordseg_only)
    
    
    Model loaded succeed
    
    [['我', ''], ['爱', ''], ['自然', ''], ['语言', ''], ['处理', ''], ['技术', ''], ['!', '']]
    

    NLPIR分词

    安装:pip install pynlpir

    国内源安装:pip install pynlpir -i https://pypi.tuna.tsinghua.edu.cn/simple

    导入pynlpir包

    如果发现加载报错,则需要更换license:https://github.com/NLPIR-team/NLPIR/tree/master/License/

    真是开源的不彻底~~~

    
    import pynlpir
    
    

    打开分词器

    
    pynlpir.open()
    
    

    分词:这个工具会同时进行词性标注

    
    s = "我爱自然语言处理技术!"
    
    word_seg = pynlpir.segment(s)
    
    print(word_seg)
    
    
    [('我', 'pronoun'), ('爱', 'verb'), ('自然', 'adjective'), ('语言', 'noun'), ('处理', 'verb'), ('技术', 'noun'), ('!', 'punctuation mark')]
    

    Stanford CoreNLP分词

    安装:pip install stanfordcorenlp

    国内源安装:pip install stanfordcorenlp -i https://pypi.tuna.tsinghua.edu.cn/simple

    导入stanfordcorenlp包

    
    from stanfordcorenlp import StanfordCoreNLP
    
    

    先下载模型,然后导入

    下载地址:

    
    nlp_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27', lang='zh')
    
    

    分词

    
    s = '我爱自然语言处理技术!'
    
    word_seg = nlp_model.word_tokenize(s)
    
    print(word_seg)
    
    
    ['我爱', '自然', '语言', '处理', '技术', '!']
    

    Hanlp分词

    安装:pip install pyhanlp

    国内源安装:pip install pyhanlp -i https://pypi.tuna.tsinghua.edu.cn/simple

    导入pyhanlp包

    
    from pyhanlp import *
    
    
    
    s = '我爱自然语言处理技术!'
    
    word_seg = HanLP.segment(s)
    
    for term in word_seg:
    
        print(term.word)
    
    
    我
    
    爱
    
    自然语言处理
    
    技术
    
    !
    

    另外,代码我已经上传github:https://github.com/yuquanle/StudyForNLP/blob/master/NLPbasic/WordSegmentation.ipynb

    相关文章

      网友评论

        本文标题:自然语言处理基础技术之分词实战

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