NLP学习 <<自然语言处理入门>>这本书刷了两遍这本书告诉了我NLP能做哪些事情,并很清晰地一步一步逐渐递进地让我了解了NLP的知识,包括一些常见的算法,模型,还有处理数据的方法,特征提取和特征模型构造的方法其中HMM模型和感知机模型难度不大,能够在辅助资料的帮助下推导和理解条件随机场涉及图论等数学知识,不是非常读得懂SVM在视频和<<统计学习方法>>的帮助下能勉强看懂词典分词 —>机器学习模型分词—>命名实体识别---->信息抽取----&
深度学习与NLP 传统方法的缺陷1.向量稀疏文本转换为向量,通常将其编码为独热向量.而文本长度过长会导致编码后的向量稀疏,并且用这种方法生成的向量,近义词之间的差距可能会很大2.特征模板针对前面提到的NLP中的常见问题,如:命名实体识别,分词,句法树,要提高解决每一个问题的模型的精确度,需要单独设计特征模板.然而中文语言复杂,人工设计特征模板并不是容易的事情3.误差传播NLP的实际问题,如关键词提取等,都需要进行分词,词性判断等预处理.然而预处理阶段的错误会导致解决实际问题是发生错误.深度学习的优势通过多层感
句法分析 定义分析句子的句法结构并将其表现为容易理解的结构短语结构树上下文无关法上下文无关法:非终止符可以递推出至少一个下级符号.从起始符开始,逐级递推非终止符,最终可以获得一颗句法树也就是说,给定一个句子,通过上下文无关法,可以将其分解为一棵句法树如句子"上海浦东开发与法制建设同步"分解过程如下:(上海浦东开发与法制建设)(同步) //分解为主谓((上海浦东)(开发与法制建设))(同步) //主语可以分解为两个名词短语…一步步递归下去,最终获得了如下的句法树短语结构语法复杂,句法分析器
文本分类 与聚类的区别聚类是无监督学习而分类是监督学习聚类是根据密度,距离等将数据集分成若干个簇,而分类是根据训练集提供的标签,训练模型,达到将文本归到某个固定的类中.卡方特征在构建词袋模型的过程中,有些对特征影响很小的词语(如助词,标点符号等).可以使用停用词,但不一定准确。这个时候,可以使用卡方特征卡方特征通过统计某词语在某种特定类型的文档中出现的次数,计算该词语出现在某类型文档上的数学期望,再通过查表的方式计算两者独立的置信度.这个置信度越低,说明该词语和该类文档关联的可能性越高.利用卡方特征提取后
文本聚类 聚类将相似的数据归档到一起.属于无监督学习分为硬聚类(直接区分0与1)和软聚类(对于一个数据,为其可能属于每个类计算一个值,取最大的值)NLP中更多使用硬聚类实际应用数据归档,预处理,筛选等.对于数据量大,标注成本高的情况,聚类是唯一的方案词袋模型词袋模型完成从文本到向量的转化分词以后统计各个词语的词频(也可为TFIDF值等),生成一个向量,向量的每个元素的值为该词对应词频优点是计算成本很低,缺点是忽略了词序(比如“我吃鱼”和“鱼吃我”两个句子在词袋模型中表达出来的向量完全一致)n_gr
信息提取 信息熵和互信息信息熵即信息杂乱程度.计算公式为Σp(x) * log p(x)互信息表示表示两信息的关联程度.计算公式为p(x,y)/p(x)*p(y)关键词提取1.词频统计原理: 比较朴素,认为文章中出现频率高的词语即关键词。实现: 分词,停用词过滤,计算词频并排序。(取m个元素中的前n个可以用最大堆算法,数据结构学过。书上有勘误,堆排序的时间复杂度为nlogn,直接排序的复杂度才是mlogn)不足之处: 非常明显,因为高频词不一定就是关键词。改进: 引入 T
命名实体识别 基于规则的命名实体识别简单的分词器(如二元分词器)无法识别OOV,所以需要运用一些规定的规则来辅助识别如:在识别音译人名时,可以设置规则:一旦发现某词是人名,而该词后面跟随人名词时,将他们合并层叠马尔科夫模型实现命名实体识别针对不同情况,需要设计相应的标注集拿人名识别举例输入数据集进行训练后,代码会将人名拆分为碎片,模拟人名的错误切分.接着,检查拆分后的姓名与其前后组成的词是否在辞典中.若在,根据标注集将其标注为对应的标签(如“这里有关天培”这个句子,姓名“关天培”拆分后组成了“有关”这个词语
条件随机场 生成式模型和判别式模型对于多维随机变量建模(如输入的特征向量),根据建模的是联合分布(p(x, y), hmm,朴素贝叶斯)还是条件分布(p(y|x), 感知机,svm)分为生成式模型和判别式模型条件随机场是输入随机变量x,求解条件概率p(y|x)的模型.当输入输出等长时,即为线性链条件随即场与结构化感知机的对比它们具有相同的特征函数,权重向量,打分函数.最大的差别在于训练算法结构化感知机使用在线学习,即每次更新参数只用一个训练实例,而条件随机场考虑了整个数据集,效果更好hanlp中的条件随机
感知机 线性模型 对于隐马尔科夫模型的优点隐马模型只能捕捉到当前字符和前一个标签这两个特征.为了能够充分利用文本的结构,提高准确率,可以引入线性模型线性模型的组成用于提取特征的特征函数Ø和每个特征的权重w感知机的引入通过特征函数抽取出大量样本(特征向量)x,构成样本空间,这时需要将样本空间分类,得出想要的结论。超平面可以划分样本,方法为为特征向量构造一个对应的权重向量w,x中的每一个元素对应w中的一个权重.如何分离出超平面呢?感知机是一个不错的选择.感知机的简单原理读入训练样本(x, y),通过s
隐马尔科夫 分词为何要引入隐马词典分词和N元语法都无法成功召回OOV,需要通过分析句子的结构来提高OOV的召回隐马的基本原理下面列出几个重要的概念。状态序列 i:即上图中黑框对应的部分。状态序列是隐含的,无法直接观测得到的。观测序列O:即上图圆圈内的部分。是可以直接被观测到的。如:看得见的是句子,看不见的是它的语法,那么句子就是观测序列,语法就是状态序列状态变量:Q={q1, q2 , q3…}即状态序列可能取的值观测变量:V={v1, v2, v3…}即观测序列可能取的值HMM模型:λ = (A,
词典分词 切分算法完全切分遍历文本找出在词典中的词语正向,逆向,双向最长匹配正向最长匹配 ,即在完全切分基础上加了一个规则:优先选取长度更长的单词逆向最长匹配,即将正向匹配的扫描顺序改为从后到前正向和逆向都有各自出现歧义的情况,融合两种匹配双向最长匹配,即同时运行两者,若词数不同则返回词数少的,不然返回单字少的,否则返回逆向匹配缺点没有技术含量,消歧效果也不好,时间复杂度较高针对时间复杂度,引入字典树,AC自动机而消歧效果,则需要一些机器学习,深度学习的算法字典树基本原理将文本分成单字,构
《机器学习实战》python3代码(5):逻辑回归 逻辑回归的优缺点优点:1.容易实现2.计算量小。对比于knn,实在是太小了缺点:1.容易欠拟合2.处理特征空间很大,多类特征数据的时候不方便,处理非线性特征需要转换逻辑回归思想梯度上升数学原理如下图基本思想是通过一定次数的梯度上升(或者下降)输出经过数次调整的θ矩阵逻辑回归梯度上升算法的构建步骤一数据预处理,将数据和标签分离步骤二确定循环次数,通过上述推导的梯度上升数...
《机器学习实战》python3代码(4):朴素贝叶斯 朴素贝叶斯的优缺点优点:1.可以处理多类别的问题2.数据较少也可使用3.适合增量式训练,即支持将数据一批一批输入训练缺点:1.对输入数据的准备方式比较敏感。2.朴素贝叶斯假设属性之间互相独立–但这显然是不合理的。在处理属性较多或者属性关联性较大的数据集时,效果显然没有那么好。(这个时候主题模型LDA是个不错的选择)3.需要知道先验概率,故在某些时候会由于假设的先验模型的原因导致预测...
《机器学习实战》python3代码(3):决策树 决策树的优缺点优点:1.计算复杂度不高(对比KNN),顾运算较快2.结果容易可视化(即书中可视化部分的代码)3.对缺失值不敏感,能处理不相关特征的数据4.适合处理数值型和标称型数据(什么是数值型和标称型?:https://www.jianshu.com/p/500c2918723f)缺点:1.不支持在线学习。即在新样本导入的时候,需要重建决策树。2.容易过拟合。但是决策森林可以有效...
安装python时需要注意的 因为总是需要在虚拟机上跑python程序, 报错报的都总结出一些经验了在安装python时需要注意两点1.将 python加入 path,这个选项一定要勾选,不然到时候需要用到pip等功能时就需要手动插入路径, 有点麻烦2.务必选择自定义安装,并勾选为所有用户安装不勾选的话可能会遇到一些报错,如无法识别python编辑器...
pip install 遇到无法解决的问题时处理的方法 很多时候因为技术水平有限, 导致pip install 时就算换源也会遇到无法安装的错误,这个时候可以直接下载whl文件,以此来安装某个库1.第一步https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql登陆这个网站,里面有很多python的库。找到你需要的库,选择对应的版本,下载到任意路径2.第二部打开cmdpip install + 路...
MongoDB官网下载位置 mongodb官网改版了,按照百度上现存的网址可能无法找到下载页面以下是我找到的,希望能帮上https://www.mongodb.com/download-center/community?jmp=nav
python 'utf-8' codec can't decode byte 0xca in position 21: invalid continuation byte 今早起来肝网课的时候在通过路径把数据集导入到jupyter 里面的时候报了如下错误'utf-8' codec can't decode byte 0xca in position 21: invalid continuation byte上网查了资料,发现是路径中包含中文导致的。解决方式1,把路径中的中文名改为英文。解决方式2,通过sys改变系统编码方式。所以在各种文件命名时最好不要用...