1) NLP 基本概念
① NLP(Natural Language Processing),也就是人们常说的「自然语言处理」,就是研究如何让计算机读懂人类语言,即将人的自然语言转换为计算机可以阅读的指令。
② 分词是 NLP 任务的一个起始,分词的好坏会影响整体模型的好坏。并且分词不一样,语义不一样。
1. 中国北京大学 → 中国、北京、大学,语义为北京的大学
2. 中国北京大学 → 中国、北京大学,语义为北京大学
② hanLP 是 NLP 处理工具,它是处理文本的工具,hanlp拥有:中文分词、命名实体识别、摘要关键字、依存句法分析、简繁拼音转换、智能推荐。
③ NLP 有很多处理工具,不同的处理工具处理的方法不一样,例如对一个词标注的标注可能不一样。
2) NLP 基础应用
1、分词
① 不同的分词模型,同一个句子可以分成不同的结果。
② BIO 序列标注方法[有监督学习算法]:B:代表块的开始 I:代表块的中间或者结束 O:单独一个块,例如,模型输入文本:我 在 中 国 北 京 大 学 读 书,输出标注后的序列为:O O B I I I I I B I。
1. 我在中国北京大学读书 → 我在、中国、北京、大学、读书
2. 我在中国北京大学读书 → 我在、中国北京、大学、读书
3. 我在中国北京大学读书 → 我、在、中国、北京大学、读书
4. 我在中国北京大学读书 → 我、在、中国、北京大学、读、书
2、词性标注
① 识别单词的词性,标注它是名词、动词、形容词、副词.....
② 词性标志有让标注工程师对所有词进行标注,也有算法工程师用代码先实现一遍文本的预标注,例如正则表达式,然后标注工程师直接检查是否标注错误,并补充没有标注的数据。
3. 命名实体识别
① 从PDF的句子中提取实体,例如人名、地名、时间等,通过实体寻找关系。
1. 文字型 PDF 提取实体方法:把 PDF 转成 xtml,再用 xpath 提取实体。
2. 扫描型 PDF 用 opencv 的方法把它转换为文字,再用 nlp 做命名实体识别,把实体框出来。
[ 1-3 都可以叫做序列标注问题 ]
4) 关键词提取
① 关键词代表句子意思,常通过摘要提取文本核心。
5) 关系提取
① 抽取句子中的实体和关系,生成实体和实体的关系叫做关系提取,如:乔布斯发明了苹果(句子输入模型中) 返回:乔布斯[实体]、苹果[实体]、发明[发明]。
6) 事件提取
① 提取文体中的事件(时间、地点、主体、金额......)。
7) 文本相似度
① 计算文本之间的相似度,例如,根据商品标题和商品描述信息的相似度找相似的商品。
8) 文本分类
① 对文件进行识别,分类出对应的类别,如:对文件进行新闻分类:体育、经济、政治、综艺.....,如:对文本进行情感分析:正面或者负面。
9) 文本表示(文本向量化、文本数值化)
① 把文本用数字转换,例如词袋模型。词袋模型首先会有一个语料库,语料库即一个文本,文本中含有成千上万个单词、每个单词对应向量,有2的n次方个单词就有以n为长度的向量。例如,"在" 对应向量为:[0,0,0,1,0,0,0],"北京大学" 对应向量为:[0,0,0,0,1,0,0],"读书"对应向量为:[0,0,0,0,1,0,0]。文本"我在北京大学读书" 分词为:我、在、北京大学、读书,转换为数值化为:[1,0,0,0,0,0,0] [0,0,0,1,0,0,0] [0,0,0,0,1,0,0] [0,0,0,0,1,0,0] ,然后用 [1,0,0,1,1,0,0] 用表示一段文本。
1. 同理,可以用文本向量化[1,0,1,1,0,0,0,0,0,0,0] 表示:我 打 你
2. 同理,可以用文本向量化[1,0,1,1,0,0,0,0,0,0,0] 表示:你 打 我
② 词袋模型缺陷:
1. 如果语料库很大,向量会稀疏,也就是一个向量里面很多都是零。标签:22,实体,寒假,北京大学,1.31,文本,分词,向量,标注 From: https://www.cnblogs.com/2351920019xin/p/18000064
2. 没有顺序关系,向量"我打你"和向量"你打我"的文本向量表现形式一样。
3. 不能解决一词多译问题,例如,今天去店里买苹果,苹果手机还是吃的苹果,词袋模型的文本向量中无法表现出来。
4. 无法融合上下文关系,例如,今天去水果店里买苹果,苹果对应的向量仅仅是取词料库中的向量进行匹配,而并不是在前面的水果向量的基础上产生的向量,因此词向量无法融合上下文关系。