语素、词性列表及jieba与哈工大pyltp一个例子对比详解大数据

1 关于语素

百度百科的解释:
语法单位有大有小,最大的语法单位是句子,比句子小的语法单位,依次是短语、词、语素。人类的语言是有声音、有意义的,是语音和语义的结合体,这便是语法单位基本的特点。语素是最小的语法单位,也就是最小的语音、语义结合体。 所有我的理解是,分词后的各个词都是语素。语素有名词性语素、动词性语素等类别。

2 ICTCLAS 词性列表

注: ICTCLAS——中国科学院计算技术研究所在多年研究工作积累的基础上,研制出了汉语词法分析系统ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),主要功能包括中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典。先后精心打造五年,内核升级6次,目前已经升级到了ICTCLAS3.0。ICTCLAS3.0分词速度单机996KB/s,分词精度98.45%,API不超过200KB,各种词典数据压缩后不到3M,是当前世界上最好的汉语词法分析器。

POS = { 
    "n": {  # 1. 名词  (1个一类,7个二类,5个三类) 
        "n": "名词", 
        "nr": "人名", 
        "nr1": "汉语姓氏", 
        "nr2": "汉语名字", 
        "nrj": "日语人名", 
        "nrf": "音译人名", 
        "ns": "地名", 
        "nsf": "音译地名", 
        "nt": "机构团体名", 
        "nz": "其它专名", 
        "nl": "名词性惯用语", 
        "ng": "名词性语素" 
    }, 
    "t": {  # 2. 时间词(1个一类,1个二类) 
        "t": "时间词", 
        "tg": "时间词性语素" 
    }, 
    "s": {  # 3. 处所词(1个一类) 
        "s": "处所词" 
    }, 
    "f": {  # 4. 方位词(1个一类) 
        "f": "方位词" 
    }, 
    "v": {  # 5. 动词(1个一类,9个二类) 
        "v": "动词", 
        "vd": "副动词", 
        "vn": "名动词", 
        "vshi": "动词“是”", 
        "vyou": "动词“有”", 
        "vf": "趋向动词", 
        "vx": "形式动词", 
        "vi": "不及物动词(内动词)", 
        "vl": "动词性惯用语", 
        "vg": "动词性语素" 
    }, 
    "a": {  # 6. 形容词(1个一类,4个二类) 
        "a": "形容词", 
        "ad": "副形词", 
        "an": "名形词", 
        "ag": "形容词性语素", 
        "al": "形容词性惯用语" 
    }, 
    "b": {  # 7. 区别词(1个一类,2个二类) 
        "b": "区别词", 
        "bl": "区别词性惯用语" 
    }, 
    "z": {  # 8. 状态词(1个一类) 
        "z": "状态词" 
    }, 
    "r": {  # 9. 代词(1个一类,4个二类,6个三类) 
        "r": "代词", 
        "rr": "人称代词", 
        "rz": "指示代词", 
        "rzt": "时间指示代词", 
        "rzs": "处所指示代词", 
        "rzv": "谓词性指示代词", 
        "ry": "疑问代词", 
        "ryt": "时间疑问代词", 
        "rys": "处所疑问代词", 
        "ryv": "谓词性疑问代词", 
        "rg": "代词性语素" 
    }, 
    "m": {  # 10. 数词(1个一类,1个二类) 
        "m": "数词", 
        "mq": "数量词" 
    }, 
    "q": {  # 11. 量词(1个一类,2个二类) 
        "q": "量词", 
        "qv": "动量词", 
        "qt": "时量词" 
    }, 
    "d": {  # 12. 副词(1个一类) 
        "d": "副词" 
    }, 
    "p": {  # 13. 介词(1个一类,2个二类) 
        "p": "介词", 
        "pba": "介词“把”", 
        "pbei": "介词“被”" 
    }, 
    "c": {  # 14. 连词(1个一类,1个二类) 
        "c": "连词", 
        "cc": "并列连词" 
    }, 
    "u": {  # 15. 助词(1个一类,15个二类) 
        "u": "助词", 
        "uzhe": "着", 
        "ule": "了 喽", 
        "uguo": "过", 
        "ude1": "的 底", 
        "ude2": "地", 
        "ude3": "得", 
        "usuo": "所", 
        "udeng": "等 等等 云云", 
        "uyy": "一样 一般 似的 般", 
        "udh": "的话", 
        "uls": "来讲 来说 而言 说来", 
        "uzhi": "之", 
        "ulian": "连 "  # (“连小学生都会”) 
    }, 
    "e": {  # 16. 叹词(1个一类) 
        "e": "叹词" 
    }, 
    "y": {  # 17. 语气词(1个一类) 
        "y": "语气词(delete yg)" 
    }, 
    "o": {  # 18. 拟声词(1个一类) 
        "o": "拟声词" 
    }, 
    "h": {  # 19. 前缀(1个一类) 
        "h": "前缀" 
    }, 
    "k": {  # 20. 后缀(1个一类) 
        "k": "后缀" 
    }, 
    "x": {  # 21. 字符串(1个一类,2个二类) 
        "x": "字符串", 
        "xx": "非语素字", 
        "xu": "网址URL" 
    }, 
    "w": {   # 22. 标点符号(1个一类,16个二类) 
        "w": "标点符号", 
        "wkz": "左括号",  # ( 〔  [  {  《 【  〖 〈   半角:( [ { < 
        "wky": "右括号",  # ) 〕  ] } 》  】 〗 〉 半角: ) ] { > 
        "wyz": "全角左引号",  # “ ‘ 『 
        "wyy": "全角右引号",  # ” ’ 』 
        "wj": "全角句号",  # 。 
        "ww": "问号",  # 全角:? 半角:? 
        "wt": "叹号",  # 全角:! 半角:! 
        "wd": "逗号",  # 全角:, 半角:, 
        "wf": "分号",  # 全角:; 半角: ; 
        "wn": "顿号",  # 全角:、 
        "wm": "冒号",  # 全角:: 半角: : 
        "ws": "省略号",  # 全角:……  … 
        "wp": "破折号",  # 全角:——   --   ——-   半角:---  ---- 
        "wb": "百分号千分号",  # 全角:% ‰   半角:% 
        "wh": "单位符号"  # 全角:¥ $ £  °  ℃  半角:$ 
    } 
}

3 jieba 分词与pyltp分词

测试了一个例子,发现jieba在该例子中不准确:
jieba分词及词性标注结果:

>>> a = '这本书很好' 
>>> import jieba 
>>> ws = jieba.cut(a) #分词 
>>> for i in ws: 
...     print i 
... 
这 
本书 
很 
好 
>>> import jieba.posseg as pseg   #词性标注 
>>> ws = pseg.cut(a) 
>>> for i in ws: 
...     print i 
... 
这/r 
本书/r 
很/d 
好/a

哈工大ltp结果:

from pyltp import Segmentor 
segmentor = Segmentor() 
segmentor.load('/Users/a000/git/ltp_data/cws.model') 
words = segmentor.segment('这本书很好') 
for i in words: 
    print i 
 
分词结果: 
这 
本 
书 
很 
好 
 
from pyltp import Postagger 
poser = Postagger() 
poser.load('/Users/a000/git/ltp_data/pos.model') 
words = poser.postag(words) 
print words 
for i in words: 
    print i 
词性标注结果: 
r 
q 
n 
d 
a

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/9339.html

(0)
上一篇 2021年7月19日 09:25
下一篇 2021年7月19日 09:25

相关推荐

发表回复

登录后才能评论