分词
中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成
一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合
成词序列的过程。
中文/n 分词/n 是/v 其他/p 中文/n (信息,n) 处理/v 的 基础,搜索引擎、
机器翻译(MT)、语音合成、自动分类、自动摘要、自动校对等等,都
需要用到分词。
词性标注
词性 标注(Part-of-Speech tagging 戒POS tagging),又称词类标注
戒者简称标注,是指为分词结果中的每个单词标注一个正确的词性的程
序,也即确定每个词是名词、动词、形容词戒其他词性的过程。在汉语
中,词性标注比较简单,因为汉语词汇词性多变的情况比较少见,大多
词语只有一个词性,戒者出现频次最高的词性远远高于第二位的词性。
据说,只需选取最高频词性,即可实现80%准确率的中文词性标注程序。
不同的工具词性标注不一定一样,以下是jieba标注:
词性标注
Ag
形语素
形容词性语素。形容词代码为 a,语素代码g前面置以A。 a
形容词
取英语形容词 adjective的第1个字母。
ad
副形词
直接作状语的形容词。形容词代码 a和副词代码d并在一起。
an
名形词
具有名词功能的形容词。形容词代码 a和名词代码n并在一起。
b
区别词
取汉字“别”的声母。
c
连词
取英语连词 conjunction的第1个字母。
dg
副语素
副词性语素。副词代码为 d,语素代码g前面置以D。 d
副词
取 adverb的第2个字母,因其第1个字母已用于形容词。
e
叹词
取英语叹词 exclamation的第1个字母。
f
方位词
取汉字“方”
g
语素
绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。
h
前接成分
取英语 head的第1个字母。
i
成语
取英语成语 idiom的第1个字母。
j
简称略语
取汉字“简”的声母。
k
后接成分
l
习用语
习用语尚未成为成语,有点“临时性”,取“临”的声母。
m
数词
取英语 numeral的第3个字母,n,u已有他用。
Ng
名语素
名词性语素。名词代码为 n,语素代码g前面置以N。 n
名词
取英语名词 noun的第1个字母。
nr
人名
名词代码 n和“人(ren)”的声母并在一起。
ns
地名
名词代码 n和处所词代码s并在一起。
nt
机构团体
“团”的声母为 t,名词代码n和t并在一起。
nz
其他丏名
“丏”的声母的第 1个字母为z,名词代码n和z并在一起。
o
拟声词
取英语拟声词 onomatopoeia的第1个字母。
p
介词
取英语介词 prepositional的第1个字母。
q
量词
取英语 quantity的第1个字母。
r
代词
取英语代词 pronoun的第2个字母,因p已用于介词。
v
动词
取英语动词 verb的第一个字母。
vd
副动词
直接作状语的动词。动词和副词的代码并在一起。
vn
名动词
指具有名词功能的动词。动词和名词的代码并在一起。
w
标点符号
x
非语素字
非语素字只是一个符号,字母 x通常用于代表未知数、符号。
y
语气词
取汉字“语”的声母。
z
状态词
取汉字“状”的声母的前一个字母。
un
未知词
不可识别词及用户自定义词组。取英文Unkonwn首两个字母。(非北大标准,CSW分词中定义)
命名实体识别
命名实体识别(Named Entity Recognition,简称NER),又称作“丏
名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、
机构名、丏有名词等。一般来说,命名实体识别的任务就是识别出待处
理文本中三大类(实体类、时间类和数字类)、七小类(人名、机构名、
地名、时间、日期、货币和百分比)命名实体。
在不同的顷目中,命名实体类别具有不同的定义。
Stanford NLP提供了一系列自然语言分析工具。它能够给出基本的
词形,词性,不管是公司名还是人名等,格式化的日期,时间,量词,
并且能够标记句子的结构,语法形式和字词依赖,指明那些名字指向同
样的实体,指明情绪,提取发言中的开放关系等。
1.一个集成的语言分析工具集;
2.进行快速,可靠的任意文本分析;
3.整体的高质量的文本分析;
4.支持多种主流语言;
5.多种编程语言的易用接口;
6.方便的简单的部署web服务。
• Python 版本stanford nlp 安装
• 1)安装stanford nlp自然语言处理包: pip install stanfordcorenlp
• 2)下载Stanford CoreNLP文件
https://stanfordnlp.github.io/CoreNLP/的CoreNLP 3.9.2以及模型jar包,这里下载了英文和中文模型jar包。
• 3)把加压后的Stanford CoreNLP文件夹和下载的s英文和中文模型jar包放在同一目录下
• 5)在Python中引用模型:
• from stanfordcorenlp import StanfordCoreNLP
• nlp = StanfordCoreNLP(r‘path’, lang=‘zh’)
对一段句子进行分词(word_tokenize)、词性标注(pos_tag)、命名实体识别(ner)、句法依存分析(dependency_parse)、句法解析(parse)
HanLP是由一系列模型与算法组成的Java工具包,目标是普及自然
语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构
清晰、语料时新、可自定义的特点。
功能:中文分词 词性标注 命名实体识别 依存句法分析 关键词提取
新词发现 短语提取 自动摘要 文本分类 拼音简繁
Hanlp环境安装
• 1、安装Java和Visual C++:我装的是Java 1.8和Visual C++ 2015。
• 2、安裝Jpype,conda install -c conda-forge jpype1
• 3、测试是否按照成功:
from jpype import *
startJVM(getDefaultJVMPath(), “-ea”)
java.lang.System.out.println(“Hello World”)
shutdownJVM()
Hanlp安装
• 1)下载hanlp.jar包: https://github.com/hankcs/HanLP
• 2、下载data.zip:https://github.com/hankcs/HanLP/releases中
http://hanlp.linrunsoft.com/release/data-for-1.7.0.zip后解压数据
包。
• 3、配置文件
• 示例配置文件:hanlp.properties
• 配置文件的作用是告诉HanLP数据包的位置,只需修改第一行:
root=usr/home/HanLP/ • 比如data目录是/Users/hankcs/documents/data,那么
root=/Users/hankcs/documents/