自然语言基础
文章平均质量分 80
关于自然语言的基础算法
lpty
走进科学
展开
-
知识图谱:Konwledge Graph简介
一、概念Konwledge Graph来源于2012年谷歌提出的,用于增强其搜索引擎功能的知识库。 本质上,知识图谱是一种揭示实体之间关系的语义网络,可以对现实世界的事物及其相互关系进行形式化地描述。现在的知识图谱已被用来泛指各种大规模的知识库。具体体现在谷歌搜索中输入:杭州景点,能够得到结构化的知识,而不是简单的网页链接: 知识图谱是一种结构化的语义知识库,其基本组成单位...原创 2018-05-10 20:12:40 · 4550 阅读 · 0 评论 -
知识图谱:行业图谱实战
一、前言关于知识图谱的概念,这里不加赘述,可以参考:知识图谱简介 下文会基于上市公司的基本数据,如:行业、地区、高管等,进行一个简单的实战。二、构建步骤1、数据抽取上市公司的信息可以从很多地方获取到,包括证监会或各类财经网站,或者工商局官网等等,基于获取难度与项目要求,使用以下网站: 新浪财经 巨潮资讯网(1)上市公司基本数据这里从新浪财经获取,基本没有难度,笔者已经...原创 2018-05-11 15:55:34 · 16280 阅读 · 3 评论 -
模式匹配:TrieTree原理
一、基本知识1、定义在计算机科学中,TrieTree又称为前缀树、字典树,是一种有序树,用于保存关联数组,通常为字符串。在前缀树中,通常有一个根节点,每一个节点的子节点都拥有相同的前缀,如果保存的是字符串,那么代表拥有相同的前缀字符串。2、结构图假设存在一棵树,存储了字符串集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, ‘in”, “inn”},Tr...原创 2018-03-20 11:25:23 · 1523 阅读 · 0 评论 -
模式匹配:KMP算法
一、暴力匹配算法有一个文本串S和一个模式串P,现在需要查找模式串P在文本串S中的位置,简单的考虑,可以用以下方法: 1、将模式串的第一个字符与文本串的第一个字符进行比较,如果不相同则模式串整体后移一位,继续1步骤;如果相同则跳转步骤2 2、模式串的第一个字符与文本串的第一个字符相同,则继续比较第二个字符,如果不相同则模式串整体后移,跳转到步骤1;如果相同则继续下一个字符的比较 3、上述步...原创 2018-03-20 15:27:17 · 1152 阅读 · 0 评论 -
模式匹配:AC自动机
一、概述AC自动机在1975年产生于贝尔实验室,是著名的多模匹配算法之一。 之前谈到一种单模式匹配算法,KMP。与之比较,KMP是用来在一篇文章中匹配一个模式串;而假如存在多个模式串,按照KMP的思路就需要进行多轮重复匹配,所以这时候就需要一种更加有效率的方式。AC自动机 = 字典树 + KMP对于字典树和KMP算法不了解的,可以参考以下两篇博文: 1、字典树 2、KMP算法...原创 2018-03-21 17:39:33 · 1146 阅读 · 0 评论 -
Replace or Retrieve Keywords In Documents At Scale
一、概念Flashtext主要用于关键字搜索与替换,来自于论文:Replace or Retrieve Keywords In Documents At Scale 论文中提到,Flashtext基于 Trie 字典数据结构和 Aho Corasick,但从搜索方式上,只匹配完整的词而不会匹配子字符串,如: 模式串‘apple’不会匹配到字符串’I like Pineapple’中的‘ap...原创 2018-05-04 10:56:31 · 2120 阅读 · 3 评论 -
相似度:最长公共子序列--LCS
一、概念1、子序列一个特定序列的子序列就是将给定序列中零个或多个元素去掉后得到的结果(不改变元素间相对次序)。如序列[A,B,C,B,D,A,B]的子序列有:[A,B],[B,C,A],[A,D,A,B]等.。2、公共子序列给定序列X和Y,序列Z是X的子序列,也是Y的子序列,则Z是X和Y的公共子序列。例如X=[A,B,C,B,D,A,B],Y=[B,D,C,A,B,A],那...原创 2018-04-26 16:23:32 · 2369 阅读 · 0 评论 -
相似度:编辑距离--Levenshtein Distance
一、概念字符串的编辑距离,又称为Levenshtein距离,由俄罗斯的数学家Vladimir Levenshtein在1965年提出。 Levenshtein距离是一种计算两个字符串间的差异程度的字符串度量(string metric)。我们可以认为Levenshtein距离就是从一个字符串修改到另一个字符串时,其中编辑单个字符(比如修改、插入、删除)所需要的最少次数。二、思想假...原创 2018-04-27 15:50:05 · 1296 阅读 · 0 评论 -
From Word Embeddings To Document Distances
一、概念词移距离来自于论文:From Word Embeddings To Document Distances 从论文题目可以看出,主要是基于词向量的工作。w2v构造了一个词与词之间衡量相似度的方法,但是对于句子或者文档来说,单纯基于词的衡量方法在一定程度上遗漏了句子的信息,而WMD参考了EMD的内容,成为计算文档相似度的一种方法。二、思想如果希望反映出文档的内在含义,一个比较直观...原创 2018-05-02 11:33:17 · 4109 阅读 · 0 评论 -
How to Strike a Match
一、概念来自于Simon White发表的一篇文章:How to Strike a Match 这个算法主要为了满足以下三个需求:(1)字符串之间只是在某几个字符处出现不同,那么相似度应该比较高。(2)字符串的区别只是相同的词组以不同的顺序排列,那么相似度应该比较高。(3)语言无关性,算法应该满足多种语言的的相似度计算。论文中对比了几种相似度算法, Soundex Algor...原创 2018-05-02 15:55:08 · 1163 阅读 · 0 评论 -
情感极性:关于中文情感分类的知识
一、文本分类1、什么是文本分类?文本分类,就是在预定义的分类体系下,根据文本的特征(内容或属性),将给定文本与一个或多个类别相关联的过程。2、文本分类的具体步骤?(1)构建分类类别体系(2)获取带有类别标签的文本(3)文本的特征选择及权重计算(4)分类器的选择与训练(5)文本的分类应用3、类别体系一般的文本分类基于文本内容,将文本自动划分为政治、经济、军事、原创 2017-12-06 16:55:36 · 7449 阅读 · 0 评论 -
情感极性:基于fasttext的情感极性判断模型实现
一、前言本模型主要基于京东评论数据进行训练,相关参考如下:1、什么是fasttext?2、什么是情感极性?3、中文分词与jieba4、数据来源二、实战1、语料处理语料处理方面,使用jieba分词,添加自定义词典进行分词: def __load_user_dict(cls): """ 加载用户词典 """原创 2017-12-14 16:33:10 · 5410 阅读 · 4 评论 -
词向量:语言模型
一、统计语言模型1、什么是统计语言模型?一个语言模型通常构建为字符串s的概率分布p(s),这里的p(s)实际上反映的是s作为一个句子出现的概率。这里的概率指的是组成字符串的这个组合,在训练语料中出现的似然,与句子是否合乎语法无关。假设训练语料来自于人类的语言,那么可以认为这个概率是的是一句话是否是人话的概率。2、怎么建立统计语言模型?对于一个由T个词按顺序构成的句子,p(s)实原创 2017-12-07 21:44:55 · 3146 阅读 · 0 评论 -
词向量:对word2vec的理解
一、词向量在自然语言处理中,需要把自然语言转化为计算机可以理解的形式,一般采用向量空间模型(VSM)进行表示,在这里就是词向量。1、one-hot词向量在中文处理中,将分词的结果经过降噪等预处理后,选择出来的特征在进行权重计算时,采用布尔权重,就能够得到one-hot词向量。从表现形式上来看,向量的长度是词典的大小V,同时它的分量只有一个是1,其他全是0,1的位置对应词在词典中的索原创 2017-12-11 16:07:21 · 10909 阅读 · 0 评论 -
词向量:基于Skip-Gram的Word2Vec神经网络实现
一、前言1、理解Word2Vec之Skip-Gram模型二、实战1、数据源:cvpr2016_flowers,国内下载比较麻烦,数据量也不多,建议用其它数据2、数据处理class Text: def __init__(self): self.data_name = 'text_c10' self.file_list = self._ge原创 2017-09-13 11:42:09 · 3154 阅读 · 1 评论 -
信息抽取:关键词自动标注与自动摘要
一、关键词自动标注1、关键词关键词是指能够反映文本语料主题的词语或短语,是快速了解文档内容、把握主题的重要方式。2、概述关键词自动标注大概可以分为两大类,一为关键词分配,另一个为关键词提取。 关键词分配是从一个预先构建好的受控词表中推荐若干个词或者短语分配给文档作为关键词。 关键词提取是从文档内容中寻找并推荐关键词,而没有指定的词库。3、关键词提取关键词提取...原创 2018-02-08 16:38:32 · 8142 阅读 · 0 评论 -
同义替换:哈工大同义词词林扩展版
一、前言《同义词词林》是梅家驹等人于1983年编纂而成,年代较为久远,对于目前的使用不太适合,哈工大实验室基于该词林进行扩展,完成了词林扩展版。 下载地址:https://www.ltp-cloud.com/download/二、使用说明扩展版同义词词林分为5层结构, 随着级别的递增,词义刻画越来越细,到了第五层,每个分类里词语数量已经不大,很多只有一个词语,已经不可再分,可...原创 2018-04-20 11:48:00 · 30802 阅读 · 10 评论 -
问句识别:基于Xgboost的中文疑问句判断模型
一、前言关于Xgboost: xgboost是大规模并行boosted tree的工具,它是目前最快最好的开源boosted tree工具包,比常见的工具包快10倍以上。在数据科学方面,有大量kaggle选手选用它进行数据挖掘比赛,其中包括两个以上kaggle比赛的夺冠方案。在工业界规模方面,xgboost的分布式版本有广泛的可移植性,支持在YARN, MPI, Sungr...原创 2018-04-13 19:11:35 · 7925 阅读 · 14 评论 -
分词:浅谈中文分词与jieba源码
一、前言1、什么是中文分词?中文文本。从形式上看是由汉字、标点符号等组成的一个字符串。由字组成词,再组成句子、文章等。那么分词,就是按照一定的规则把字符串重新组合成词序列的过程。2、为什么要分词?(1)在中文里面,词是最小的能够独立活动的有意义的语言成分(2)英文中单词以空格作为自然分界,虽然也有短语划分的问题。但中文词没有一个形式上的分界,相对而言难度大了许多(3)分词作原创 2017-12-01 20:56:14 · 3422 阅读 · 0 评论 -
分词:基于HMM的中文分词模型实现
一、前言本文主要是实现了一个纯粹的HMM中文分词模型,关于中文分词可以参考:中文分词。分词的基本思想与该文基本一致,请确保已经了解分词的基本知识。二、实战1、语料源语料来源于Bakeoff 2005的主页,这里选用了icwb2-data.rar语料,大概介绍如下:* /icwb2-data.rar/training/msr_training.txt 用以训练HMM,其中原创 2017-12-22 10:33:36 · 8130 阅读 · 4 评论 -
词性标注:中文词性标注简介
一、概述1、什么是词性?词性(part-of-speech)是词汇基本的语法属性,通常也称为词性。2、什么是词性标注?词性标注(part-of-speech tagging),又称为词类标注或者简称标注,是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或者其他词性的过程。3、为什么要标注?词性标注是很多NLP任务的预处理步骤,如句法分析...原创 2017-12-25 16:31:04 · 35947 阅读 · 2 评论 -
词性标注:基于MaxEnt的中文词性标注模型实现
一、前言1、中文词性标注 2、最大熵模型二、数据源本文使用数据源未1988年的人民日报标注语料,手工进行处理,去除一些不符合标注规范(word/pos)的词语,词性标注见中文词性标注一文。三、实战1、特征提取最大熵模型与一般机器学习算法不同之处在于特征是对x,y的联合分布提取,而不是只对x进行特征提取。 这是简单的设定几个模板:前一个词与前词词性当前词与当前词词性后一个词与当前词词性前一个原创 2018-01-02 10:51:59 · 2906 阅读 · 14 评论 -
命名实体:中文命名实体识别简介
一、概念1、实体一切具有特定属性集合的物体都可以称为实体。2、命名实体一般包括三大类(实体类、时间类、数字类),七小类(人名、机构名、地名、时间、日期、货币和百分比)。3、命名实体识别过程(1)确定实体的边界,即确定哪些词属于实体。 (2)确定实体的类别,即确定实体属于人名或者机构名等。4、命名实体识别难点(1)各类命名实体没有严格的命名规范 (原创 2018-01-22 10:46:00 · 9862 阅读 · 0 评论 -
依存分析:中文依存句法分析简介
一、句法分析句法分析是自然语言处理中的关键技术之一,其基本任务是确定句子的句法结构或者句子中词汇之间的依存关系。 主要包括两方面的内容,一是确定语言的语法体系,即对语言中合法的句子的语法结构给与形式化的定义;另一方面是句法分析技术,即根据给定的语法体系,自动推导出句子的句法结构,分析句子所包含的句法单位和这些句法单位之间的关系。二、语法体系句法分析需要遵循某一语法体系,根据该体系原创 2018-02-05 14:16:15 · 53385 阅读 · 11 评论 -
依存分析:基于序列标注的中文依存句法分析模型实现
一、前言1、中文依存句法分析二、实战1、数据源数据采用清华大学语义依存网络语料作为训练集,同时在开发集上进行测试。(1)语料预处理原语料库如下:1 坚决 坚决 a ad _ 2 方式 2 惩治 惩治 v v _ 0 核心成分 3 贪污 贪污 v v _ 7 限定 4 贿...原创 2018-02-13 14:20:34 · 8045 阅读 · 9 评论