赞
踩
1.4.1. 统计自然语言处理基础 Christopher Manning and Hinrich Schütze......... .... 7
4.4.1. 神经网络在自然语言数据中的应用................................................................ 8
5.4.1. CS224d:用于自然语言处理的深度学习...................................................... 9
6.1. 统计自然语言处理 宗成庆第二版......................................................................... 9
7.6. 文本情感分析(Textual Affective Analysis)..................................................... 10
7.7. 问答系统(Question Answering, QA).............................................................. 11
7.8. 机器翻译(Machine Translation,MT)............................................................ 11
7.9. 自动摘要(Automatic Summarization)............................................................ 11
8.2.1. 基于字符串匹配(词典)的分词方法(机械分词).................................... 11
8.2.4. 基于深度学习的中文分词............................................................................. 14
8.3.2. 隐马尔科夫生成式模型................................................................................ 16
8.3.7. 基于深层神经网络的词性标注..................................................................... 16
8.4.1. 基于规则的句法结构分析............................................................................. 19
8.4.2. 基于统计的语法结构分析............................................................................. 19
8.9. 命名实体消歧 Named entity Disambiguation..................................................... 20
12.4. 词的分布式表示 distributed respresentation...................................................... 23
13.1. 用于中文分词的卷积神经网络和词嵌入.............................................................. 23
13.1.2. 论文:https://arxiv.org/pdf/1711.04411.pdf................................................ 23
13.2. 使用卷积神经网络进行单词预测......................................................................... 24
13.2.1. https://github.com/Kyubyong/word_prediction............................................ 24
13.3.1. https://github.com/Steven-Hewitt/Entailment-with-Tensorflow................... 24
13.4. 基于DeepMind的WaveNet和tensorflow的端到端句子级英语语音识别........ 24
13.4.1. https://github.com/buriburisuri/speech-to-text-wavenet.............................. 24
13.5.1. https://github.com/PKULCWM/PKUSUMSUM........................................... 24
13.6.1. https://github.com/atpaino/deep-text-corrector........................................... 24
13.7.1. https://github.com/cmusphinx/g2p-seq2seq............................................... 25
13.8. 基于复述驱动学习的开放域问答......................................................................... 25
13.8.1. http://knowitall.cs.washington.edu/paralex/ 25
13.9.1. https://github.com/Kyubyong/neural_chinese_transliterator 25
13.10.2. http://sentic.net/about/.............................. 25
13.11.1. http://www.signall.us/............................... 26
13.12. 词性标注(POS)、 命名实体识别(NER)、 句法分析(parser)、 语义角色标注(SRL) 26
13.13.1. https://github.com/snowballstem/snowball 26
13.14.1. https://github.com/saffsd/langid.py........... 26
13.15.1. https://github.com/OpenNMT/OpenNMT-py 26
13.16.1. https://github.com/vsuthichai/paraphraser 26
13.17.1. https://github.com/ankitp94/relationship-extraction 27
13.18.1. https://github.com/Orekhov/SentenceBreaking 27
13.19.1. https://github.com/liuhuanyong/ComplexEventExtraction 27
13.20.1. https://github.com/alvations/pywsd........... 27
13.21.1. https://github.com/dice-group/AGDISTIS.. 27
13.22.1. https://github.com/pln-fing-udelar/pghumor 28
13.23.1. https://github.com/AniSkywalker/SarcasmDetection 28
13.24.1. https://github.com/hasibi/EntityLinkingRetrieval-ELR 28
13.25.1. https://github.com/huggingface/neuralcoref 28
13.26.1. https://github.com/thunlp/THUTag............ 28
分为四个部分,共16章,包括了构建自然语言处理软件工具将用到的几乎所有理论和算法。全书的论述过程由浅入深,从数学基础到精确的理论算法,从简单的词法分析到复杂的语法分析,适合不同水平的读者群的需求。同时,《统计自然语言处理基础:国外计算机科学教材系列》将理论与实践紧密联系在一起,在介绍理论知识的基础上给出了自然语言处理技术的高层应用(如信息检索等)。经典的统计自然语言处理入门教材。内容涉及统计自然语言处理用到的数学基础,词法到语法分析,以及自然语言处理的基本任务(比如文本分类、聚类,统计机器翻译,以及信息检索)。本教材成书较早(1999年),但是自然语言处理领域的基本概念和任务没有太大的变化,仍然适用于初学者快速了解自然语言处理相关的概念和任务,中文版本为《统计自然语言处理基础:国外计算机科学教材系列》(电子工业出版社出版)。
2018年9月23日自然语言处理领域经典综述教材《Speech and Language Processing 》,中文名《自然语言处理综述》第三版发布。该书由 NLP 领域的大牛,斯坦福大学 Daniel Jurafsky 教授和科罗拉多大学的 James H. Martin 教授等人共同编写。Daniel Jurafsky 是斯坦福大学计算机科学教授,主要研究方向是计算语言学和自然语言处理。 James H. Martin 是科罗拉多大学博尔德分校计算机科学系一名教授,两位教授都是 NLP 领域知名学者。经典的 NLP 教科书,涵盖了所有 NLP 的基础知识,也被国外许多著名大学选为自然语言处理和计算语言学课程的主要教材。本书写作风格引人入胜,深入技术细节而又不让人感觉枯燥,不仅可以作为高等学校自然语言处理和计算语言学等课程的本科生和研究生教材,对于自然语言处理相关领域的研究人员和技术人员也是不可或缺的权威参考书。
作者:Christopher D.Manning / Prabhakar Raghavan /Hinrich Schütze 本书从计算机科学领域的角度出发,介绍了信息检索的基础知识,并对当前信息检索的发展做了回顾,重点介绍了搜索引擎的核心技术,如文档分类和文档聚类问题,以及机器学习和数值计算方法。书中所有重要的思想都用示例进行了解释,生动形象,引人入胜。关于排名/搜索的优秀参考书,作者从最简单的布尔检索到一个完整的搜索引擎,逐步深入,逐步引导读者思考,对建造一个大型搜索引擎需要用到的架构和算法都有所涉猎,搜索引擎并不仅仅是检索信息,它还有一个更重要的用处是对返回的结果进行排序,而这往往是非常重要的。
Natural Language Processing with Python作者:Steven Bird / Ewan Klein / Edward Loper本书教你如何用 Python 和 NLTK 库来做 NLP。提供了非常易学的自然语言处理入门介绍,该领域涵盖从文本和电子邮件预测过滤,到自动总结和翻译等多种语言处理技术。你还将通过使用综合语言数据结构访问含有丰富注释的数据集,理解用于分析书面通信内容和结构的主要算法。这本书的实用性较强。如果你对 Python 与 NLTK 感兴趣,就看这本书,可以当做入门读物来看,整本书即涉及到了语料库的操作,也对传统的基于规则的方法有所涉及。全书包括了分词(tokenization)、词性标注(POS)、语块(Chunk)标注、句法剖析与语义剖析等方面,是 NLP 中不错的一本实用教程。
Neural Network Methods in Natural Language Processing (Synthesis Lectures on Human Language Technologies)本书着重介绍神经网络模型在自然语言数据中的应用。书的前半部分介绍了有监督的机器学习和前馈神经网络的基础知识,基于语言数据的机器学习的基础知识。它还涵盖了可以定义和训练任意神经网络的计算图形抽象方面的知识,是当代神经网络软件库设计的基础。本书的第二部分介绍了更多专门的神经网络体系结构,包括一维卷积神经网络、递归神经网络、条件生成模型和基于注意力的模型。这些体系结构和技术是机器翻译、句法分析和许多其他应用程序的最先进算法的推动力量。最后,本书还讨论了树形网络,结构化预测和多任务学习的前景。最近几年由于深度学习的兴起,使得图像识别、语音识别等多个方面都发生了很大的变革。深度学习在自然语言处理方面也是非常普遍了,一些经典的自然语言模式也都是基于神经网络的,这本书是目前市面上唯一一本介绍神经网络在自然语言处理的应用,而且书中的大量参考文献非常有价值。本书的作者在这个领域非常知名,并且对待学术态度极其严谨。
课程链接: http://cs224d.stanford.edu/syllabus.html斯坦福大学自然语言小组基于深度学习的自然语言处理课程。介绍了自然语言处理领域广泛应用的网络结构(例如循环神经网络、卷积神经网络以及递归神经网络等)及其在自然语言处理的经典任务,例如分类任务(情感分类),序列标注任务(实体识别),序列到序列的生成任务(机器翻译)等实际应用。自然语言处理是信息时代最重要的技术之一。理解复杂的语言也是人工智能的重要组成部分。自然语言处理的应用无处不在,因为人们用语言沟通了大部分内容:网络搜索、广告、电子邮件、客户服务、语言翻译、放射学报告等等。本课程比较适合对这个领域感兴趣的初学者。
简介连接:https://machinelearningmastery.com/oxford-course-deep-learning-natural-language-processing/学习资源链接:https://github.com/oxford-cs-deepnlp-2017/lecturesYouTube视频课程链接:https://www.youtube.com/playlist?list=PL613dYIGMXoZBtZhbyiBqb0QtgK6oJbpmDeepMind 团队成员在牛津大学教授基于深度学习的自然语言处理的课程。内容涉及到词嵌入,基于循环神经网络的语言模型,基于循环神经网络和卷积神经网络的文本分类,基于循环神经网络的条件语言模型(广泛应用于机器翻译、文本摘要等)及其中的注意力机制,以及基于深度学习模型的自动问答等主要自然语言处理的任务。深度学习方法在自然语言处理问题上达到了一定的效果。本课程的大部分材料都可以在线免费获取,比较适合对这个领域有一定的基础,希望了解最新进展和进一步学习和研究的同学。
语义文本相似度分析是对两段文本的意义和本质之间的相似度进行分析的过程。
信息检索是指将信息按照一定的方式加以组织,并通过信息查找满足用户的信息需求的过程和技术。
信息抽取是指从非结构化或半结构化文本(如:网页/新闻/论文文献/微博等)中提取指定类型的信息(如实体/属性/关系/事件/商品记录等),并通过信息归并,冗余消除和冲突消解等手段将非结构化文本转换为结构化信息的一项综合技术。
文本分类的任务是根据给定的文档内容或主题,自动分配预先定义的类别标签。
文本挖掘是信息挖掘的一个研究分支,用于基于文本信息的知识发现。文本挖掘的准备工作由文本搜集/文本分析/特征修剪三个步骤组成。目前研究和应用最多的几种文本挖掘技术有:文档聚类/文档分类/摘要提取。
情感分析是一种广泛的主观分析,它使用自然语言处理技术来识别客户评论的语义情感,语句表达的情绪正负面以及通过语音分析或书面文字判断其表达的情感等。
自动问答是指利用计算机自动回答用户所提出的问题以满足用户知识需求的任务。不同于现有搜索引擎,问答系统是信息服务的一种高级形式,系统返回用户的不再是基于关键词匹配排序的文档列表,而是精准的自然语言答案。
机器翻译是指利用计算机实现从一种自然语言到另外一种自然语言的自动翻译。被翻译的语言称为源语言(source language),翻译到的语言称作目标语言(target language)。机器翻译研究的目标就是建立有效的自动翻译方法、模型和系统,打破语言壁垒,最终实现任意时间、任意地点和任意语言的自动翻译,完成人们无障碍自由交流的梦想。
自动文摘(又称自动文档摘要)是指通过自动分析给定的一篇文档或多篇文档,提炼、总结其中的要点信息,最终输出一篇长度较短、可读性良好的摘要(通常包含几句话或数百字),该摘要中的句子可直接出自原文,也可重新撰写所得。
语言识别指的是将不同语言的文本区分出来。其利用语言的统计和语法属性来执行此任务。语言识别也可以被认为是文本分类的特殊情况
语料库中存放的是在语言的实际使用中真实出现过的语言材料;语料库是以电子计算机为载体承载语言知识的基础资源;真实语料需要经过加工(分析和处理),才能成为有用的资源。
中文分词指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。
这种方法本质上就是字符串匹配的方法,将一串文本中的文字片段和已有的词典进行匹配,如果匹配到,则此文字片段就作为一个分词结果。但是基于词典的机械切分会遇到多种问题,最为常见的包括歧义切分问题和未登录词问题。
帅比: 2019-10-13 17:26:48
这类算法的优点是速度快,时间复杂度可以保持在O(n),实现简单,效果尚可,但是对歧义和未登录词处理效果不佳。
基于统计的分词方法是在给定大量已经分词的文本的前提下,利用统计机器学习模型学习词语切分的规律(称为训练),从而实现对未知文本的切分。例如最大概率分词方法和最大熵分词方法等。随着大规模语料库的建立,统计机器学习方法的研究和发展,基于统计的中文分词方法渐渐成为了主流方法。
基于理解的分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。
帅比: 2019-10-13 17:40:07
这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。
近几年,深度学习方法为分词技术带来了新的思路,直接以最基本的向量化原子特征作为输入,经过多层非线性变换,输出层就可以很好的预测当前字的标记或下一个动作。在深度学习的框架下,仍然可以采用基于子序列标注的方式,或基于转移的方式,以及半马尔科夫条件随机场。这类方法首先对语料的字进行嵌入,得到字嵌入后,将字嵌入特征输入给双向LSTM,输出层输出深度学习所学习到的特征,并输入给CRF层,得到最终模型。现有的方法包括:LSTM+CRF、BiLSTM+CRF等。
# 安装:pip install jieba# 国内源安装更快:pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simpleimport jieba # 全模式分词 wordseg_all = jieba.cut("我爱自然语言处理技术!", cut_all=True) print("全模式: " + " ".join(wordseg_all)) # 输出:全模式: 我 爱 自然 自然语言 语言 处理 技术 # 精确模式分词 wordseg = jieba.cut("我爱自然语言处理技术!", cut_all=False) print("精确模式: " + " ".join(wordseg)) # 输出:精确模式: 我 爱 自然语言 处理 技术 !# 搜索引擎模式 wordseg_search = jieba.cut_for_search("我爱自然语言处理技术!") print("搜索引擎模式:" + " ".join(wordseg_search)) # 输出:搜索引擎模式:我 爱 自然 语言 自然语言 处理 技术 !
帅比: 2019-10-13 17:42:35
“结巴”中文分词:做最好的 Python 中文分词组件。
# 安装:pip install snownlp# 国内源安装:pip install snownlp -i https://pypi.tuna.tsinghua.edu.cn/simplefrom snownlp import SnowNLP model = SnowNLP(u'我爱自然语言处理技术!') print(model.words) # 输出:['我', '爱', '自然', '语言', '处理', '技术', '!']
帅比: 2019-10-13 17:46:32
SnowNLP是一个python写的类库,可以方便的处理中文文本内容。
# 安装:pip install pyhanlp# 国内源安装:pip install pyhanlp -i https://pypi.tuna.tsinghua.edu.cn/simplefrom pyhanlp import * s = '我爱自然语言处理技术!' word_seg = HanLP.segment(s) for term in word_seg: print(term.word)
帅比: 2019-10-13 17:50:57
HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。
# 安装:pip install stanfordcorenlp# 国内源安装:pip install stanfordcorenlp -i https://pypi.tuna.tsinghua.edu.cn/simplefrom stanfordcorenlp import StanfordCoreNLP # 先下载模型,然后导入,下载地址:https://nlp.stanford.edu/software/ nlp_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27', lang='zh') # 分词 s = '我爱自然语言处理技术!' word_seg = nlp_model.word_tokenize(s) print(word_seg) # 输出:['我爱', '自然', '语言', '处理', '技术', '!']
帅比: 2019-10-13 17:50:24
斯坦福NLP组的开源,支持python接口。
# 安装:pip install thulac# 国内源安装:pip install thulac -i https://pypi.tuna.tsinghua.edu.cn/simpleimport thulac # 默认模式:分词的同时进行词性标注 thulac_model = thulac.thulac() wordseg = thulac_model.cut("我爱自然语言处理技术!") print(wordseg) # 输出:[['我', 'r'], ['爱', 'v'], ['自然', 'n'], ['语言', 'n'], ['处理', 'v'], ['技术', 'n'], ['!', 'w']]# 只进行分词 seg_only_model = thulac.thulac(seg_only=True) wordseg_only = seg_only_model.cut("我爱自然语言处理技术!") print(wordseg_only) # 输出:[['我', ''], ['爱', ''], ['自然', ''], ['语言', ''], ['处理', ''], ['技术', ''], ['!', '']]
帅比: 2019-10-13 17:48:26
THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。
# 安装:pip install pynlpir# 国内源安装:pip install pynlpir -i https://pypi.tuna.tsinghua.edu.cn/simple# 导入pynlpir包# 如果发现加载报错,则需要更换license:https://github.com/NLPIR-team/NLPIR/tree/master/License/import pynlpir # 打开分词器 pynlpir.open() # 分词:这个工具会同时进行词性标注 s = "我爱自然语言处理技术!" word_seg = pynlpir.segment(s) print(word_seg) # 输出:[('我', 'pronoun'), ('爱', 'verb'), ('自然', 'adjective'), ('语言', 'noun'), ('处理', 'verb'), ('技术', 'noun'), ('!', 'punctuation mark')]
帅比: 2019-10-13 17:49:37
NLPIR-ICTCLAS汉语分词系统。
词性标注是指为给定句子中的每个词赋予正确的词法标记,给定一个切好词的句子,词性标注的目的是为每一个词赋予一个类别,这个类别称为词性标记(part-of-speech tag),比如,名词(noun)、动词(verb)、形容词(adjective)等。词性标注是一个非常典型的序列标注问题。词性指以词的特点作为划分词类的根据。词类是一个语言学术语,是一种语言中词的语法分类,是以语法特征(包括句法功能和形态变化)为主要依据、兼顾词汇意义对词进行划分的结果。从组合和聚合关系来说,一个词类是指:在一个语言中,众多具有相同句法功能、能在同样的组合位置中出现的词,聚合在一起形成的范畴。词类是最普遍的语法的聚合。词类划分具有层次性。如汉语中,词可以分成实词和虚词,实词中又包括体词、谓词等,体词中又可以分出名词和代词等。词性标注就是在给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程,这也是自然语言处理中一项非常重要的基础性工作,所有对于词性标注的研究已经有较长的时间,在研究者长期的研究总结中,发现汉语词性标注中面临了许多棘手的问题。
汉语是一种缺乏词形态变化的语言,词的类别不能像印欧语那样,直接从词的形态变化上来判别。常用词兼类现象严重。《现代汉语八百词》收取的常用词中,兼类词所占的比例高达22.5%,而且发现越是常用的词,不同的用法越多。由于兼类使用程度高,兼类现象涉及汉语中大部分词类,因而造成在汉语文本中词类歧义排除的任务量巨大。研究者主观原因造成的困难。语言学界在词性划分的目的、标准等问题上还存在分歧。目前还没有一个统的被广泛认可汉语词类划分标准,词类划分的粒度和标记符号都不统一。词类划分标准和标记符号集的差异,以及分词规范的含混性,给中文信息处理带来了极大的困难。
# 安装:pip install jieba# 国内源安装更快:pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple# 先导包:jieba.posseg.dt 为默认词性标注分词器# 标注句子分词后每个词的词性,采用和 ictclas 兼容的标记法。import jieba.posseg as pseg words = pseg.cut("我爱自然语言处理技术!") for word, pos in words: print(word, pos) 我 r 爱 v 自然语言 l 处理 v 技术 n ! x
帅比: 2019-10-13 17:42:35
“结巴”中文分词:做最好的 Python 中文分词组件,可以进行词性标注。
# 安装:pip install snownlp# 国内源安装:pip install snownlp -i https://pypi.tuna.tsinghua.edu.cn/simple# 使用snownlp进行词性标注from snownlp import SnowNLP model = SnowNLP(u'我爱自然语言处理技术!') for word, pos in model.tags: print(word, pos) 我 r 爱 v 自然 n 语言 n 处理 vn 技术 n ! w
帅比: 2019-10-13 17:46:32
SnowNLP是一个python写的类库,可以方便的处理中文文本内容。
# 安装:pip install pyhanlp# 国内源安装:pip install pyhanlp -i https://pypi.tuna.tsinghua.edu.cn/simple# 使用pyhanlp进行词性标注from pyhanlp import * s = '我爱自然语言处理技术!' word_seg = HanLP.segment(s) for term in word_seg: print(term.word, term.nature) 我 rr 爱 v 自然语言处理 nz 技术 n ! w
帅比: 2019-10-13 17:50:57
HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。
# 安装:pip install stanfordcorenlp# 国内源安装:pip install stanfordcorenlp -i https://pypi.tuna.tsinghua.edu.cn/simple# 使用stanfordcorenlp进行词性标注# 同时支持英文和中文的词性标注from stanfordcorenlp import StanfordCoreNLP zh_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27', lang='zh') s_zh = '我爱自然语言处理技术!' word_pos_zh = zh_model.pos_tag(s_zh) print(word_pos_zh) [('我爱', 'NN'), ('自然', 'AD'), ('语言', 'NN'), ('处理', 'VV'), ('技术', 'NN'), ('!', 'PU')] eng_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27') s_eng = 'I love natural language processing technology!' word_pos_eng = eng_model.pos_tag(s_eng) print(word_pos_eng) [('I', 'PRP'), ('love', 'VBP'), ('natural', 'JJ'), ('language', 'NN'), ('processing', 'NN'), ('technology', 'NN'), ('!', '.')]
帅比: 2019-10-13 17:50:24
斯坦福NLP组的开源,支持python接口。
# 安装:pip install thulac# 国内源安装:pip install thulac -i https://pypi.tuna.tsinghua.edu.cn/simple# 使用thulac进行词性标注import thulac thulac_model = thulac.thulac() wordseg = thulac_model.cut("我爱自然语言处理技术!") print(wordseg) Model loaded succeed [['我', 'r'], ['爱', 'v'], ['自然', 'n'], ['语言', 'n'], ['处理', 'v'], ['技术', 'n'], ['!', 'w']]
帅比: 2019-10-13 17:48:26
THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。
# 安装:pip install nltk# 国内源安装:pip install nltk -i https://pypi.tuna.tsinghua.edu.cn/simpleimport nltk s = 'I love natural language processing technology!' s = nltk.word_tokenize(s) s_pos = nltk.pos_tag(s) print(s_pos) [('I', 'PRP'), ('love', 'VBP'), ('natural', 'JJ'), ('language', 'NN'), ('processing', 'NN'), ('technology', 'NN'), ('!', '.')]
帅比: 2019-10-13 18:00:23
NLTK是一个高效的Python构建的平台,用来处理人类自然语言数据。
# 安装:pip install spaCy# 国内源安装:pip install spaCy -i https://pypi.tuna.tsinghua.edu.cn/simple# 下载不了模型,需要python -m spacy download en。 The easiest solution is to re-run the command as admin(意思是用用户管理权限打开CMD下载即可)import spacy eng_model = spacy.load('en') s = 'I love natural language processing technology!'# 词性标注 s_token = eng_model(s) for token in s_token: print(token, token.pos_, token.pos) I PRON 94 love VERB 99 natural ADJ 83 language NOUN 91 processing NOUN 91 technology NOUN 91 ! PUNCT 96
帅比: 2019-10-13 18:01:07
工业级的自然语言处理工具,遗憾的是不支持中文。
基于规则的词性标注方法是人们提出较早的一种词性标注方法,其基本思想是按兼类词搭配关系和上下文语境建造词类消歧规则。早期的词类标注规则一般由人工构建。随着标注语料库规模的增大,可利用的资源也变得越来越多,这时候以人工提取规则的方法显然变得不现实,于是乎,人们提出了基于机器学习的规则自动提出方法。
统计方法将词性标注看作是一个序列标注问题。其基本思想是:给定带有各自标注的词的序列,我们可以确定下一个词最可能的词性。现在已经有隐马尔可夫模型(HMM)、条件随机域(CRF)等统计模型了,这些模型可以使用有标记数据的大型语料库进行训练,而有标记的数据则是指其中每一个词都分配了正确的词性标注的文本。
理性主义方法与经验主义相结合的处理策略一直是自然语言处理领域的专家们不断研究和探索的问题,对于词性标注问题当然也不例外。这类方法的主要特点在于对统计标注结果的筛选,只对那些被认为可疑的标注结果,才采用规则方法进行歧义消解,而不是对所有情况都既使用统计方法又使用规则方法
词干提取是将词语去除变化或衍生形式,转换为词干或原型形式的过程。词干提取的目标是将相关词语还原为同样的词干。
词形还原是将一组词语还原为词源或词典的词目形式的过程。
停用词过滤是指在文本中频繁出现且对文本信息的内容或分类类别贡献不大甚至无贡献的词语,如常见的介词、冠词、助词、情态动词、代词以及连词等。
词向量化是用一组实数构成的向量代表自然语言的叫法。这种技术非常实用,因为电脑无法处理自然语言。词向量化可以捕捉到自然语言和实数间的本质关系。通过词向量化,一个词语或者一段短语可以用一个定维的向量表示。(word2vec)
命名实体消岐是对句子中的提到的实体识别的过程。例如,对句子“Apple earned a revenue of 200 Billion USD in 2016”,命名实体消岐会推断出句子中的Apple是苹果公司而不是指一种水果。一般来说,命名实体要求有一个实体知识库,能够将句子中提到的实体和知识库联系起来。
命名实体识别是识别一个句子中有特定意义的实体并将其区分为人名,机构名,日期,地名,时间等类别的任务。
特征提取是指将机器学习算法不能识别的原始数据转化为算法可以识别的特征的过程。举例(文本分类特征提取步骤):(1)对训练数据集的每篇文章,我们进行词语的统计,以形成一个词典向量。词典向量里包含了训练数据里的所有词语(假设停用词已去除),且每个词语代表词典向量中的一个元素。(2)在经过第一步的处理后,每篇文章都可以用词典向量来表示。这样一来,每篇文章都可以被看作是元素相同且长度相同的向量,不同的文章具有不同的向量值。这也就是表示文本的词袋模型(bag of words)。(3)针对于特定的文章,如何给表示它的向量的每一个元素赋值呢?最简单直接的办法就是0-1法了。简单来说,对于每一篇文章,我们扫描它的词语集合,如果某一个词语出现在了词典中,那么该词语在词典向量中对应的元素置为1,否则为0。
当数据预处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。特征选择是指去掉无关特征,保留相关特征的过程,也可以认为是从所有的特征中选择一个最好的特征子集。特征选择本质上可以认为是降维的过程。from sklearn.feature_extraction.text import TfidfVectorizer
马尔可夫模型、隐马尔可夫模型、层次化隐马尔可夫模型、马尔可夫网络(1)应用:词类标注、语音识别、局部句法剖析、语块分析、命名实体识别、信息抽取等。应用于自然科学、工程技术、生物科技、公用事业、信道编码等多个领域。(2)马尔可夫链:在随机过程中,每个语言符号的出现概率不相互独立,每个随机试验的当前状态依赖于此前状态,这种链就是马尔可夫链。(3)多元马尔科夫链:考虑前一个语言符号对后一个语言符号出现概率的影响,这样得出的语言成分的链叫做一重马尔可夫链,也是二元语法。二重马尔可夫链,也是三元语法,三重马尔可夫链,也是四元语法
(1)条件随机场用于序列标注,中文分词、中文人名识别和歧义消解等自然语言处理中,表现出很好的效果。原理是:对给定的观察序列和标注序列,建立条件概率模型。条件随机场可用于不同预测问题,其学习方法通常是极大似然估计。(2)条件随机场模型也需要解决三个基本问题:特征的选择、参数训练和解码。
贝叶斯网络又称为信度网络或信念网络(belief networks),是一种基于概率推理的数学模型,其理论基础是贝叶斯公式。
(1)AnacondaAnaconda是一个用于科学计算的Python开发平台,支持 Linux,Mac和Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本Python并存、切换以及各种第三方包安装问题。Anaconda利用conda命令来进行package和environment的管理,并且已经包含了Python和相关的配套工具。Anaconda集成了大量的机器学习库以及数据处理必不可少的第三方库,比如NumPy,SciPy,Scikit-Learn以及TensorFlow等。(2)Scikit-learnScikit-learn是广受欢迎的入门级机器学习库,包含大量的机器学习算法和特征提取实现,使用非常简便。Scikit-learn实现的是浅层学习算法,神经网络仅实现了多层感知机。(3)TensorFlowTensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,可被用于语音识别或图像识别等多项机器学习和深度学习领域。(4)KerasKeras是一个高级别的Python神经网络框架,能在TensorFlow或者 Theano 上运行。Keras的作者、谷歌AI研究员Francois Chollet宣布了一条激动人心的消息,Keras将会成为第一个被添加到TensorFlow核心中的高级别框架,这将会让Keras变成Tensorflow的默认API。(5)GensimGensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训练,并提供了诸如相似度计算,信息检索等一些常用任务的API接口。(6)NLTK在NLP领域中,NLTK是最常使用的一个Python库。(7)JiebaJieba,结巴分词是最受欢迎的中文分词工具。
Anaconda是一个用于科学计算的Python开发平台,支持 Linux,Mac和Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本Python并存、切换以及各种第三方包安装问题。Anaconda利用conda命令来进行package和environment的管理,并且已经包含了Python和相关的配套工具。Anaconda集成了大量的机器学习库以及数据处理必不可少的第三方库,比如NumPy,SciPy,Scikit-Learn以及TensorFlow等。
https://github.com/niderhoff/nlp-datasets
https://zhuanlan.zhihu.com/p/58752815
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。