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