From 6f1e3ba828aa986398552299f15d93a1142f4afa Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Fri, 20 Jul 2018 12:06:24 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E5=AD=A6=E4=B9=A0?= =?UTF-8?q?=E7=AC=94=E8=AE=B0=E9=93=BE=E6=8E=A5=20=E5=92=8C=20=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index baf5bd1b2..011e181f5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # MachineLearning +* [ApacheCN 开源组织](https://github.com/apachecn/organization): https://github.com/apachecn/organization + > **欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远** * **ApacheCN - 学习机器学习群【629470233】ApacheCN - 学习机器学习群[629470233]** @@ -9,8 +11,7 @@ * **视频已更新完成,如果你觉得有价值,请帮忙点 Star【后续组织学习活动:sklearn、kaggle、 Pytorch 和 tensorflow】** * -- 视频网站:优酷 /bilibili / Acfun / 网易云课堂,可直接在线播放。(最下方有相应链接) * -- [群小哥哥:红色石头的机器学习之路](https://github.com/RedstoneWill): [台湾大学林轩田机器学习基石课程 - **系列学习笔记**](https://mp.weixin.qq.com/s/xb0i55zIQVzCiSZALbvncg) - -**ApacheCN 网友捐赠页面:http://www.apachecn.org/organization/664.html** +* 推荐一个[机器学习笔记](https://feisky.xyz/machine-learning): https://feisky.xyz/machine-learning ## 机器学习 From 0e232eae3d8971285f9e094774f4ba5c444e4f64 Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Fri, 20 Jul 2018 21:42:12 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20nlp=20=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 44 ++++++++++++++++++++++++++++++++++----- docs/NLP/README.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 5 deletions(-) create mode 100644 docs/NLP/README.md diff --git a/README.md b/README.md index 011e181f5..4d50c835d 100644 --- a/README.md +++ b/README.md @@ -142,27 +142,61 @@ * 1.) [入门介绍](./docs/DeepLearning/1.入门介绍.md) * 2.) 代码位置:src/py2.x or py3.x/DL -## 自然语言处理(NLP) +## 自然语言处理(NLP) - 百度公开课(使用场景了解) -### 第一部分 入门介绍 +> 第一部分 入门介绍 * 1.) [自然语言处理入门介绍](./docs/NLP/1.自然语言处理入门介绍.md) -### 第二部分 机器翻译 +> 第二部分 机器翻译 * 2.) [机器翻译](./docs/NLP/2.机器翻译.md) -### 第三部分 篇章分析 +> 第三部分 篇章分析 * 3.1.) [篇章分析-内容概述](./docs/NLP/3.1.篇章分析-内容概述.md) * 3.2.) [篇章分析-内容标签](./docs/NLP/3.2.篇章分析-内容标签.md) * 3.3.) [篇章分析-情感分析](./docs/NLP/3.3.篇章分析-情感分析.md) * 3.4.) [篇章分析-自动摘要](./docs/NLP/3.4.篇章分析-自动摘要.md) -### 第四部分 UNIT-语言理解与交互技术 +> 第四部分 UNIT-语言理解与交互技术 * 4.) [UNIT-语言理解与交互技术](./docs/NLP/4.UNIT-语言理解与交互技术.md) +## 自然语言处理(NLP) - 相关项目 + +* 入门教程需看资料: https://github.com/apachecn/MachineLearning/tree/dev/docs/NLP + +### 中文分词: + +* 构建DAG图 +* 动态规划查找,综合正反向(正向加权反向输出)求得DAG最大概率路径 +* 使用了SBME语料训练了一套 HMM + Viterbi 模型,解决未登录词问题 + +### 情感分析 + +比赛地址: https://www.kaggle.com/c/word2vec-nlp-tutorial + +* 方案一(0.86):WordCount + 朴素 Bayes +* 方案二(0.94):LDA + 分类模型(knn/决策树/逻辑回归/svm/xgboost/随机森林) + * a) 决策树效果不是很好,这种连续特征不太适合的 + * b) 通过参数调整 200 个topic,信息量保存效果较优(计算主题) +* 方案三(0.72):word2vec + CNN + * 说实话:没有一个好的机器,是调不出来一个好的结果 (: 逃 + +**通过AUC 来评估模型的效果** + +### 文本纠错 + +* bi-gram + levenshtein + +### 文本摘要 + +* textrank + +### 机器翻译(Seq2Seq) + +* Encoder + Decoder(Attention) ## 网站视频 diff --git a/docs/NLP/README.md b/docs/NLP/README.md new file mode 100644 index 000000000..ce465ab14 --- /dev/null +++ b/docs/NLP/README.md @@ -0,0 +1,52 @@ +# 入门教程需看资料 + +## NLP 学习书籍: + +* 百度搜索:Python自然语言处理 +* 读书笔记:https://wnma3mz.github.io/hexo_blog/2018/05/13/《Python自然语言处理》阅读笔记(一) + +## NLP 全局介绍视频:(简单做了解就行) + +地址链接: http://bit.baidu.com/Course/detail/id/56.html + +1. 自然语言处理知识入门 +2. 百度机器翻译 +3. 篇章分析 +4. UNIT:语言理解与交互技术 + +## 中文nlp词向量 + +https://github.com/Embedding/Chinese-Word-Vectors + +> 深度学习必学 + +1.反向传递: https://www.cnblogs.com/charlotte77/p/5629865.html +2.CNN原理: http://www.cnblogs.com/charlotte77/p/7759802.html +3.RNN原理: https://blog.csdn.net/qq_39422642/article/details/78676567 +4.LSTM深入浅出的好文: https://blog.csdn.net/roslei/article/details/61912618 + +## NLP的一般操作流程 + +[本项目](http://pytorch.apachecn.org/cn/tutorials/intermediate/char_rnn_classification_tutorial.html) 试图通过名字分类问题给大家描述一个基础的深度学习中自然语言处理模型,同时也向大家展示了Pytorch的基本玩法。 其实对于大部分基础的NLP工作,都是类似的套路: + +1. 收集数据 +2. 清洗数据 +3. 为数据建立字母表或词表(vocabulary或者叫look-up table) +4. 根据字母表或者词表把数据向量化 +5. 搭建神经网络,深度学习中一般以LSTM或者GRU为主,按照需求结合各种其他的工具,包括embedding,注意力机制,双向RNN等等常见算法。 +6. 输入数据,按需求得到输出,比如分类模型根据类别数来得到输出,生成模型根据指定的长度或者结束标志符来得到输出等等。 +7. 把输出的结果进行处理,得到最终想要的数据。常需要把向量化的结果根据字母表或者词表变回文本数据。 +8. 评估模型。 + +如果真的想要对自然语言处理或者序列模型有更加全面的了解,建议大家去网易云课堂看一看吴恩达深度学习微专业中的序列模型这一板块,可以说是讲的非常清楚了。 此外极力推荐两个blog: + +1. 讲述RNN循环神经网络在深度学习中的各种应用场景。http://karpathy.github.io/2015/05/21/rnn-effectiveness/ +2. 讲述LSTM的来龙去脉。http://colah.github.io/posts/2015-08-Understanding-LSTMs/ + +最后,本文参考整合了: + +* Pytorch中文教程:http://pytorch.apachecn.org/cn/tutorials +* Pytorch中文文档:http://pytorch.apachecn.org/cn/docs/0.3.0 +* Pytorch官方文档:http://pytorch.org/tutorials/intermediate/char_rnn_classification_tutorial.html +* Ngarneau小哥的博文:https://github.com/ngarneau/understanding-pytorch-batching-lstm +* 另外,本项目搭配Sung Kim的Pytorch Zero To All的第13讲rnn_classification会更加方便食用喔,视频可以在油管和b站中找到。 From 6ca9689f7f94d2dede2d4bf962474955a1221453 Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Tue, 24 Jul 2018 20:55:21 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20nlp=20=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E8=B5=84=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 112 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4d50c835d..f6b7e98b9 100644 --- a/README.md +++ b/README.md @@ -173,7 +173,21 @@ * 动态规划查找,综合正反向(正向加权反向输出)求得DAG最大概率路径 * 使用了SBME语料训练了一套 HMM + Viterbi 模型,解决未登录词问题 -### 情感分析 + +### 1.文本分类(Text Classification) + +文本分类是指标记句子或文档,例如电子邮件垃圾邮件分类和情感分析。 + +下面是一些很好的初学者文本分类数据集。 + +1. [路透社Newswire主题分类](http://kdd.ics.uci.edu/databases/reuters21578/reuters21578.html)(路透社-21578)。1987年路透社出现的一系列新闻文件,按类别编制索引。[另见RCV1,RCV2和TRC2](http://trec.nist.gov/data/reuters/reuters.html)。 +2. [IMDB电影评论情感分类](斯坦福)([http://ai.stanford.edu/~amaas/data/sentiment/](http://ai.stanford.edu/~amaas/data/sentiment/))。来自网站imdb.com的一系列电影评论及其积极或消极的情绪。 +3. [新闻组电影评论情感分类(康奈尔)](http://www.cs.cornell.edu/people/pabo/movie-review-data/)。来自网站imdb.com的一系列电影评论及其积极或消极的情绪。 + +有关更多信息,请参阅帖子: +[单标签文本分类的数据集](http://ana.cachopo.org/datasets-for-single-label-text-categorization)。 + +> 情感分析 比赛地址: https://www.kaggle.com/c/word2vec-nlp-tutorial @@ -186,17 +200,110 @@ **通过AUC 来评估模型的效果** -### 文本纠错 + +### 2.语言模型(Language Modeling) + +语言建模涉及开发一种统计模型,用于预测句子中的下一个单词或一个单词中的下一个单词。它是语音识别和机器翻译等任务中的前置任务。 + +它是语音识别和机器翻译等任务中的前置任务。 + +下面是一些很好的初学者语言建模数据集。 + +1. [古腾堡项目](https://www.gutenberg.org/),一系列免费书籍,可以用纯文本检索各种语言。 +2. 还有更多正式的语料库得到了很好的研究; 例如: + [布朗大学现代美国英语标准语料库](https://en.wikipedia.org/wiki/Brown_Corpus)。大量英语单词样本。 + [谷歌10亿字语料库](https://github.com/ciprian-chelba/1-billion-word-language-modeling-benchmark)。 + +> 文本纠错 * bi-gram + levenshtein -### 文本摘要 -* textrank -### 机器翻译(Seq2Seq) +### 3.图像字幕(Image Captioning) + +mage字幕是为给定图像生成文本描述的任务。 + +下面是一些很好的初学者图像字幕数据集。 + +1. [上下文中的公共对象(COCO)](http://mscoco.org/dataset/#overview)。包含超过12万张带描述的图像的集合 +2. [Flickr 8K](http://nlp.cs.illinois.edu/HockenmaierGroup/8k-pictures.html)。从flickr.com获取的8千个描述图像的集合。 +3. [Flickr 30K](http://shannon.cs.illinois.edu/DenotationGraph/)。从flickr.com获取的3万个描述图像的集合。 + 欲了解更多,请看帖子: + +[探索图像字幕数据集,2016年](http://sidgan.me/technical/2016/01/09/Exploring-Datasets) + +### 4.机器翻译(Machine Translation) * Encoder + Decoder(Attention) +* 参考案例: http://pytorch.apachecn.org/cn/tutorials/intermediate/seq2seq_translation_tutorial.html + +机器翻译是将文本从一种语言翻译成另一种语言的任务。 + +下面是一些很好的初学者机器翻译数据集。 + +1. [加拿大第36届议会的协调国会议员](https://www.isi.edu/natural-language/download/hansard/)。成对的英语和法语句子。 +2. [欧洲议会诉讼平行语料库1996-2011](http://www.statmt.org/europarl/)。句子对一套欧洲语言。 + 有大量标准数据集用于年度机器翻译挑战; 看到: + +[统计机器翻译](http://www.statmt.org/) + +### 5.问答系统(Question Answering) + +问答是一项任务,其中提供了一个句子或文本样本,从中提出问题并且必须回答问题。 + +下面是一些很好的初学者问题回答数据集。 + +1. [斯坦福问题回答数据集(SQuAD)](https://rajpurkar.github.io/SQuAD-explorer/)。回答有关维基百科文章的问题。 +2. [Deepmind问题回答语料库](https://github.com/deepmind/rc-data)。从每日邮报回答有关新闻文章的问题。 +3. [亚马逊问答数据](http://jmcauley.ucsd.edu/data/amazon/qa/)。回答有关亚马逊产品的问题。 + 有关更多信息,请参阅帖子: + +[数据集:我如何获得问答网站的语料库,如Quora或Yahoo Answers或Stack Overflow来分析答案质量?](https://www.quora.com/Datasets-How-can-I-get-corpus-of-a-question-answering-website-like-Quora-or-Yahoo-Answers-or-Stack-Overflow-for-analyzing-answer-quality) + +### 6.语音识别(Speech Recognition) + +语音识别是将口语的音频转换为人类可读文本的任务。 + +下面是一些很好的初学者语音识别数据集。 + +1. [TIMIT声学 - 语音连续语音语料库](https://catalog.ldc.upenn.edu/LDC93S1)。不是免费的,但因其广泛使用而上市。口语美国英语和相关的转录。 +2. [VoxForge](http://voxforge.org/)。用于构建用于语音识别的开源数据库的项目。 +3. [LibriSpeech ASR语料库](http://www.openslr.org/12/)。从LibriVox收集的大量英语有声读物。 + +### 7.自动文摘(Document Summarization) + +* textrank + +文档摘要是创建较大文档的简短有意义描述的任务。 + +下面是一些很好的初学者文档摘要数据集。 + +1. [法律案例报告数据集](https://archive.ics.uci.edu/ml/datasets/Legal+Case+Reports)。收集了4000份法律案件及其摘要。 +2. [TIPSTER文本摘要评估会议语料库](http://www-nlpir.nist.gov/related_projects/tipster_summac/cmp_lg.html)。收集了近200份文件及其摘要。 +3. [英语新闻文本的AQUAINT语料库](https://catalog.ldc.upenn.edu/LDC2002T31)。不是免费的,而是广泛使用的。新闻文章的语料库。 + 欲了解更多信息: + +[文档理解会议(DUC)任务](http://www-nlpir.nist.gov/projects/duc/data.html)。 +[在哪里可以找到用于文本摘要的良好数据集?](https://www.quora.com/Where-can-I-find-good-data-sets-for-text-summarization) + +> 命名实体识别 + +* Bi-LSTM CRF +* 参考案例: http://pytorch.apachecn.org/cn/tutorials/beginner/nlp/advanced_tutorial.html + +### 进一步阅读 + +如果您希望更深入,本节提供了其他数据集列表。 + +1. [维基百科研究中使用的文本数据集](https://en.wikipedia.org/wiki/List_of_datasets_for_machine_learning_research#Text_data) +2. [数据集:计算语言学家和自然语言处理研究人员使用的主要文本语料库是什么?](https://www.quora.com/Datasets-What-are-the-major-text-corpora-used-by-computational-linguists-and-natural-language-processing-researchers-and-what-are-the-characteristics-biases-of-each-corpus) +3. [斯坦福统计自然语言处理语料库](https://nlp.stanford.edu/links/statnlp.html#Corpora) +4. [按字母顺序排列的NLP数据集列表](https://github.com/niderhoff/nlp-datasets) +5. [该机构NLTK](http://www.nltk.org/nltk_data/) +6. [在DL4J上打开深度学习数据](https://deeplearning4j.org/opendata) +7. [NLP数据集](https://github.com/caesar0301/awesome-public-datasets#natural-language) +8. 国内开放数据集: https://bosonnlp.com/dev/resource ## 网站视频 From 5338dcb5b00f73c0e3af11185e4cd3b5c7b77d32 Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Tue, 24 Jul 2018 20:57:11 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=B5=84=E6=96=99?= =?UTF-8?q?=E6=9D=A5=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f6b7e98b9..a8b9c4483 100644 --- a/README.md +++ b/README.md @@ -434,14 +434,9 @@ mage字幕是为给定图像生成文本描述的任务。 * ApacheCN 纯粹出于学习目的与个人兴趣翻译本书 * ApacheCN 保留对此版本译文的署名权及其它相关权利 -## [ApacheCN 组织资源](http://www.apachecn.org/) +* * * -> [kaggle: 机器学习竞赛](https://github.com/apachecn/kaggle) +资料来源: + +* https://machinelearningmastery.com/datasets-natural-language-processing -| 深度学习 | 机器学习 | 大数据 | 运维工具 | -| --- | --- | --- | --- | -| [TensorFlow R1.2 中文文档](http://cwiki.apachecn.org/pages/viewpage.action?pageId=10030122) | [机器学习实战-教学](https://github.com/apachecn/MachineLearning) | [Spark 2.2.0和2.0.2 中文文档](http://spark.apachecn.org/) | [Zeppelin 0.7.2 中文文档](http://cwiki.apachecn.org/pages/viewpage.action?pageId=10030467) | -| [Pytorch 0.3 中文文档 ](http://pytorch.apachecn.org/cn/0.3.0/) | [Sklearn 0.19 中文文档](http://sklearn.apachecn.org/) | [Storm 1.1.0和1.0.1 中文文档](http://storm.apachecn.org/) | [Kibana 5.2 中文文档](http://cwiki.apachecn.org/pages/viewpage.action?pageId=8159377) | -| | [LightGBM 中文文档](http://lightgbm.apachecn.org/cn/latest) | [Kudu 1.4.0 中文文档](http://cwiki.apachecn.org/pages/viewpage.action?pageId=10813594) | | -| | [XGBoost 中文文档](http://xgboost.apachecn.org/cn/latest) | [Elasticsearch 5.4 中文文档](http://cwiki.apachecn.org/pages/viewpage.action?pageId=4260364) | -| | | [Beam 中文文档](http://beam.apachecn.org/) | From 25da775df1a140fc404efa3c34bcb7e08eead069 Mon Sep 17 00:00:00 2001 From: cclauss Date: Wed, 25 Jul 2018 11:18:26 +0200 Subject: [PATCH 05/10] Travis CI: Add automated tests to find syntax errors --- .travis.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..a089eef55 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,28 @@ +group: travis_latest +language: python +cache: pip +python: + - 2.7 + - 3.7 +matrix: + allow_failures: + - python: 2.7 + include: + - python: 2.7 + env: TEST_DIR=./MachineLearning/src/py2.x, + - python: 3.7 + env: TEST_DIR=./MachineLearning/src/py3.x/ + dist: xenial # required for Python 3.7 + sudo: required # required for Python 3.7 +install: + - pip install flake8 +before_script: + # stop the build if there are Python syntax errors or undefined names + - flake8 ${TEST_DIR} --count --select=E901,E999,F821,F822,F823 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + - flake8 ${TEST_DIR} --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics +script: + - true # add other tests here +notifications: + on_success: change + on_failure: change # `always` will be the setting once code changes slow down From ac633f6bf3a2eda3a41f8092552def0dc808871d Mon Sep 17 00:00:00 2001 From: chenyyx Date: Tue, 31 Jul 2018 13:52:15 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9C=9F=E7=9B=B8?= =?UTF-8?q?=E6=8B=BC=E5=86=99=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/docs/1.\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md" "b/docs/1.\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md" index e4d5244b5..3f5da9e0b 100644 --- "a/docs/1.\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md" +++ "b/docs/1.\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md" @@ -154,7 +154,7 @@ * 训练样本(training sample):训练用到的每个样本 * 训练集(training set):训练样本组成的集合 * 假设(hypothesis):学习模型对应了关于数据的某种潜在规则 -* 真相(group-true):真正存在的潜在规律 +* 真相(ground-truth):真正存在的潜在规律 * 学习器(learner):模型的另一种叫法,把学习算法在给定数据和参数空间的实例化 * 预测(prediction):判断一个东西的属性 * 标记(label):关于示例的结果信息,比如我是一个“好人”。 From 518bf57f34e7957b47e185b15233f317d3b20f94 Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Tue, 31 Jul 2018 17:55:28 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E6=94=B6=E9=9B=86=20nlp=20=E6=AF=94?= =?UTF-8?q?=E8=B5=9B=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++- docs/NLP/README.md | 33 +++++++++++++++--- .../NLP/F94581F64C21A1094A473397DFA42F9C.jpg | Bin 0 -> 107992 bytes 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 images/NLP/F94581F64C21A1094A473397DFA42F9C.jpg diff --git a/README.md b/README.md index a8b9c4483..0a4ea82b8 100644 --- a/README.md +++ b/README.md @@ -165,7 +165,9 @@ ## 自然语言处理(NLP) - 相关项目 -* 入门教程需看资料: https://github.com/apachecn/MachineLearning/tree/dev/docs/NLP +![](images/NLP/F94581F64C21A1094A473397DFA42F9C.jpg) + +* 入门教程需看资料【添加比赛链接】: https://github.com/apachecn/MachineLearning/tree/dev/docs/NLP ### 中文分词: diff --git a/docs/NLP/README.md b/docs/NLP/README.md index ce465ab14..b315c261a 100644 --- a/docs/NLP/README.md +++ b/docs/NLP/README.md @@ -1,11 +1,11 @@ # 入门教程需看资料 -## NLP 学习书籍: +## nlp 学习书籍: * 百度搜索:Python自然语言处理 * 读书笔记:https://wnma3mz.github.io/hexo_blog/2018/05/13/《Python自然语言处理》阅读笔记(一) -## NLP 全局介绍视频:(简单做了解就行) +## nlp 全局介绍视频:(简单做了解就行) 地址链接: http://bit.baidu.com/Course/detail/id/56.html @@ -14,7 +14,7 @@ 3. 篇章分析 4. UNIT:语言理解与交互技术 -## 中文nlp词向量 +## 中文 nlp 词向量 https://github.com/Embedding/Chinese-Word-Vectors @@ -25,7 +25,7 @@ https://github.com/Embedding/Chinese-Word-Vectors 3.RNN原理: https://blog.csdn.net/qq_39422642/article/details/78676567 4.LSTM深入浅出的好文: https://blog.csdn.net/roslei/article/details/61912618 -## NLP的一般操作流程 +## nlp 操作流程 [本项目](http://pytorch.apachecn.org/cn/tutorials/intermediate/char_rnn_classification_tutorial.html) 试图通过名字分类问题给大家描述一个基础的深度学习中自然语言处理模型,同时也向大家展示了Pytorch的基本玩法。 其实对于大部分基础的NLP工作,都是类似的套路: @@ -50,3 +50,28 @@ https://github.com/Embedding/Chinese-Word-Vectors * Pytorch官方文档:http://pytorch.org/tutorials/intermediate/char_rnn_classification_tutorial.html * Ngarneau小哥的博文:https://github.com/ngarneau/understanding-pytorch-batching-lstm * 另外,本项目搭配Sung Kim的Pytorch Zero To All的第13讲rnn_classification会更加方便食用喔,视频可以在油管和b站中找到。 + +## nlp - 比赛链接 + +* https://competitions.codalab.org/competitions/12731 +* https://sites.ualberta.ca/%7Emiyoung2/COLIEE2018/ +* https://visualdialog.org/challenge/2018 ++ 人机对话 NLP + - http://jddc.jd.com ++ 司法数据文本的 NLP + - http://cail.cipsc.org.cn ++ “达观杯” 文本智能处理挑战赛 + - http://www.dcjingsai.com/common/cmpt/%E2%80%9C%E8%BE%BE%E8%A7%82%E6%9D%AF%E2%80%9D%E6%96%87%E6%9C%AC%E6%99%BA%E8%83%BD%E5%A4%84%E7%90%86%E6%8C%91%E6%88%98%E8%B5%9B_%E7%AB%9E%E8%B5%9B%E4%BF%A1%E6%81%AF.html ++ 中文论文摘要数据 + - https://biendata.com/competition/smpetst2018 ++ 中文问答任务 + - https://biendata.com/competition/CCKS2018_4/ ++ 第二届讯飞杯中文机器阅读理解评测 + - http://www.hfl-tek.com/cmrc2018 ++ 2018机器阅读理解技术竞赛 这也是结束了的 NLP + - http://mrc2018.cipsc.org.cn + + +* * * + +【比赛收集平台】: https://github.com/iphysresearch/DataSciComp diff --git a/images/NLP/F94581F64C21A1094A473397DFA42F9C.jpg b/images/NLP/F94581F64C21A1094A473397DFA42F9C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3d656059b5d0a10df0a7a59d012b575cd4914dca GIT binary patch literal 107992 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 z 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 Date: Tue, 31 Jul 2018 18:00:21 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E8=A7=A3=E5=86=B3=20=E6=B7=B1=E5=BA=A6?= =?UTF-8?q?=E5=AD=A6=E4=B9=A0=E5=BF=85=E5=AD=A6=20=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E6=8D=A2=E8=A1=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/NLP/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/NLP/README.md b/docs/NLP/README.md index b315c261a..9c5748c1b 100644 --- a/docs/NLP/README.md +++ b/docs/NLP/README.md @@ -20,10 +20,10 @@ https://github.com/Embedding/Chinese-Word-Vectors > 深度学习必学 -1.反向传递: https://www.cnblogs.com/charlotte77/p/5629865.html -2.CNN原理: http://www.cnblogs.com/charlotte77/p/7759802.html -3.RNN原理: https://blog.csdn.net/qq_39422642/article/details/78676567 -4.LSTM深入浅出的好文: https://blog.csdn.net/roslei/article/details/61912618 +1. 反向传递: https://www.cnblogs.com/charlotte77/p/5629865.html +2. CNN原理: http://www.cnblogs.com/charlotte77/p/7759802.html +3. RNN原理: https://blog.csdn.net/qq_39422642/article/details/78676567 +4. LSTM深入浅出的好文: https://blog.csdn.net/roslei/article/details/61912618 ## nlp 操作流程 From 1e9c7d98f875ba0b62afb92a48d3c72a8d99c24e Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Thu, 2 Aug 2018 19:15:49 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=9A=20nlp-?= =?UTF-8?q?=E5=8F=A5=E5=AD=90=E7=9B=B8=E4=BC=BC=E5=BA=A6=E8=AF=86=E5=88=AB?= =?UTF-8?q?=20=E9=A1=B9=E7=9B=AE=E5=9C=B0=E5=9D=80=E5=92=8C=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +++++++-- docs/NLP/README.md | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0a4ea82b8..352da179e 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,6 @@ * 动态规划查找,综合正反向(正向加权反向输出)求得DAG最大概率路径 * 使用了SBME语料训练了一套 HMM + Viterbi 模型,解决未登录词问题 - ### 1.文本分类(Text Classification) 文本分类是指标记句子或文档,例如电子邮件垃圾邮件分类和情感分析。 @@ -183,7 +182,7 @@ 下面是一些很好的初学者文本分类数据集。 1. [路透社Newswire主题分类](http://kdd.ics.uci.edu/databases/reuters21578/reuters21578.html)(路透社-21578)。1987年路透社出现的一系列新闻文件,按类别编制索引。[另见RCV1,RCV2和TRC2](http://trec.nist.gov/data/reuters/reuters.html)。 -2. [IMDB电影评论情感分类](斯坦福)([http://ai.stanford.edu/~amaas/data/sentiment/](http://ai.stanford.edu/~amaas/data/sentiment/))。来自网站imdb.com的一系列电影评论及其积极或消极的情绪。 +2. [IMDB电影评论情感分类(斯坦福)](http://ai.stanford.edu/~amaas/data/sentiment)。来自网站imdb.com的一系列电影评论及其积极或消极的情绪。 3. [新闻组电影评论情感分类(康奈尔)](http://www.cs.cornell.edu/people/pabo/movie-review-data/)。来自网站imdb.com的一系列电影评论及其积极或消极的情绪。 有关更多信息,请参阅帖子: @@ -216,6 +215,11 @@ [布朗大学现代美国英语标准语料库](https://en.wikipedia.org/wiki/Brown_Corpus)。大量英语单词样本。 [谷歌10亿字语料库](https://github.com/ciprian-chelba/1-billion-word-language-modeling-benchmark)。 +> 句子相似度识别 + +* 项目地址: https://www.kaggle.com/c/quora-question-pairs +* 解决方案: word2vec + Bi-GRU + > 文本纠错 * bi-gram + levenshtein @@ -441,4 +445,5 @@ mage字幕是为给定图像生成文本描述的任务。 资料来源: * https://machinelearningmastery.com/datasets-natural-language-processing +* 【比赛收集平台】: https://github.com/iphysresearch/DataSciComp diff --git a/docs/NLP/README.md b/docs/NLP/README.md index 9c5748c1b..17eb671db 100644 --- a/docs/NLP/README.md +++ b/docs/NLP/README.md @@ -70,7 +70,8 @@ https://github.com/Embedding/Chinese-Word-Vectors - http://www.hfl-tek.com/cmrc2018 + 2018机器阅读理解技术竞赛 这也是结束了的 NLP - http://mrc2018.cipsc.org.cn - ++ 句子文本相似度计算 + - https://www.kaggle.com/c/quora-question-pairs * * * From 3a4563e4ea977216464379fcf9651676b3013229 Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Mon, 13 Aug 2018 23:18:50 +0800 Subject: [PATCH 10/10] =?UTF-8?q?nlp-=E5=AD=A6=E4=B9=A0=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E4=B8=AD-=E5=86=85=E5=BF=83=E5=A4=8D=E6=9D=82=E7=9A=84?= =?UTF-8?q?=E5=8F=98=E5=8C=96=EF=BC=81=EF=BC=81=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 352da179e..c851b2983 100644 --- a/README.md +++ b/README.md @@ -165,9 +165,29 @@ ## 自然语言处理(NLP) - 相关项目 +学习过程中-内心复杂的变化!!! + +``` +自从学习NLP以后,才发现国内与国外的典型区别: +1. 对资源的态度是完全相反的: + 1) 国内:就好像为了名气,举办工作装逼的会议,就是没有干货,全部都是象征性的PPT介绍,不是针对在做的各位 + 2)国外:就好像是为了推动nlp进步一样,分享者各种干货资料和具体的实现。(特别是: python自然语言处理) +2. 论文的实现: + 1) 各种高大上的论文实现,却还是没看到一个像样的GitHub项目!(可能我的搜索能力差了点,一直没找到) + 2)国外就不举例了,我看不懂! +3. 开源的框架 + 1)国外的开源框架: tensorflow/pytorch 文档+教程+视频(官方提供) + 2) 国内的开源框架: 额额,还真举例不出来!但是牛逼吹得不比国外差!(好像 MXNet 是沐神弄的?? 文档+教程+视频) +每一次深入都要去翻墙,每一次深入都要Google,每一次看着国内的说:哈工大、讯飞、中科大、百度、阿里 多牛逼,但是资料还是得国外去找! +有时候真的挺狠的!真的有点瞧不起自己国内的技术环境! + +当然谢谢国内很多博客大佬,特别是一些入门的Demo和基本概念。【深入的水平有限,没看懂】 +``` + ![](images/NLP/F94581F64C21A1094A473397DFA42F9C.jpg) * 入门教程需看资料【添加比赛链接】: https://github.com/apachecn/MachineLearning/tree/dev/docs/NLP +* Python 自然语言处理 第二版: https://usyiyi.github.io/nlp-py-2e-zh ### 中文分词: @@ -241,9 +261,6 @@ mage字幕是为给定图像生成文本描述的任务。 ### 4.机器翻译(Machine Translation) -* Encoder + Decoder(Attention) -* 参考案例: http://pytorch.apachecn.org/cn/tutorials/intermediate/seq2seq_translation_tutorial.html - 机器翻译是将文本从一种语言翻译成另一种语言的任务。 下面是一些很好的初学者机器翻译数据集。 @@ -254,6 +271,11 @@ mage字幕是为给定图像生成文本描述的任务。 [统计机器翻译](http://www.statmt.org/) +> 机器翻译 + +* Encoder + Decoder(Attention) +* 参考案例: http://pytorch.apachecn.org/cn/tutorials/intermediate/seq2seq_translation_tutorial.html + ### 5.问答系统(Question Answering) 问答是一项任务,其中提供了一个句子或文本样本,从中提出问题并且必须回答问题。 @@ -279,8 +301,6 @@ mage字幕是为给定图像生成文本描述的任务。 ### 7.自动文摘(Document Summarization) -* textrank - 文档摘要是创建较大文档的简短有意义描述的任务。 下面是一些很好的初学者文档摘要数据集。 @@ -298,6 +318,11 @@ mage字幕是为给定图像生成文本描述的任务。 * Bi-LSTM CRF * 参考案例: http://pytorch.apachecn.org/cn/tutorials/beginner/nlp/advanced_tutorial.html + +> 文本摘要 + +* word2vec + textrank + ### 进一步阅读 如果您希望更深入,本节提供了其他数据集列表。