zoukankan      html  css  js  c++  java
  • nlp词性标注

    nlp词性标注

    与分词函数不同,jieba库和pyltp库词性标注函数上形式相差极大。

    jieba的词性标注函数与分词函数相近,jieba.posseg.cut(sentence,HMM=True)函数有两个参数,sentence是一段文本。

    pyltp的词性标注函数pyltp.Postagger.postag(words)有一个参数,words是分词模块的返回值,或者是Python原生的list类型。

    nltk中的词性标注函数与pyltp的相似,也是输入list类型。nltk.pos_tag(tokens,tagset=None,lang='eng')中,tokens是list类型的词组;tagset是指定的标注集,有“universal”“wsj”和“brown”,不同的标注集标识词性的tag不同;lang是语言类型,目前支持较好的有“eng”和“rus”,对“zho”的支持还有待改进。

    #coding:utf-8
    import os
    import nltk
    import jieba
    import jieba.posseg as pseg
    from pyltp import Segmentor,Postagger
    
    text='你是我的眼'
    
    #jieba分词同时标注词性
    segs=pseg.cut(text)
    for word,pos in segs:
        print('%s %s'%(word,pos))
    
    #pyltp以list为参数标注词性
    data_dir=r"D:ltp_data"
    segmentor=Segmentor()
    segmentor.load(os.path.join(data_dir,'cws.model'))
    ptgger=Postagger()
    ptgger.load(os.path.join(data_dir,'pos.model'))
    segs2=segmentor.segment(text)
    segs2=list(segs2)
    poses2=ptgger.postag(segs2)
    for i in range(len(segs2)):
        print('%s %s'%(segs2[i],poses2[i]))
    
    segmentor.release()
    ptgger.release()
    
    segs3=nltk.pos_tag(segs2,lang='zho')
    for word,pos in segs3:
        print('%s %s'%(word,pos))
    

    运行结果如下:

    你 r
    是 v
    我 r
    的 uj
    眼 n
    你 r
    是 v
    我 r
    的 u
    眼 n
    你 JJ
    是 NNP
    我 NNP
    的 NNP
    眼 NN
    
  • 相关阅读:
    连接查询
    使用聚合函数查询
    mysql 查询数据
    Mysql的基本操作
    MySQL的数据类型
    Mysql简介及安装教程
    客户端-服务端
    configparser模块
    反射
    class_method和static_method
  • 原文地址:https://www.cnblogs.com/sunnyeveryday/p/8955453.html
Copyright © 2011-2022 走看看