diff --git a/README.md b/README.md index 3d101a7a..41bfc3e8 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@
- +

@@ -17,68 +17,398 @@ * [在线阅读](https://ailearning.apachecn.org) * [在线阅读(Gitee)](https://apachecn.gitee.io/ailearning) * [ApacheCN 中文翻译组 713436582](https://qm.qq.com/cgi-bin/qm/qr?k=5u_aAU-YlY3fH-m8meXTJzBEo2boQIUs&jump_from=webapi&authKey=CVZcReMt/vKdTXZBQ8ly+jWncXiSzzWOlrx5hybX5pSrKu6s0fvGX54+vHHlgYNt) -* [ApacheCN 学习资源](http://www.apachecn.org/) +* [ApacheCN 学习资源](https://www.apachecn.org/) -## 公告 +# 路线图 -⚠⚠⚠此项目已正式封板⚠⚠⚠ +* 入门只看: 步骤 1 => 2 => 3,你可以当大牛! +* 中级补充 - 资料库: -ApacheCN 的 AI 相关项目告一段落,请大家关注我们的其他计划,例如: +> 补充 -+ [QuantLearning](https://github.com/apachecn/quant-learning) -+ [Quant 译文集](https://github.com/apachecn/apachecn-quant-zh) -+ [Quant WIKI](https://github.com/apachecn/quant-wiki) +* 算法刷题: +* 面试求职: +* 机器学习实战: +* NLP教学视频: +* **AI常用函数说明**: -## 贡献指南 +## 1.机器学习 - 基础 -为了不断改进翻译质量,我们特此启动了【翻译、校对、笔记整理活动】,开设了多个校对项目。贡献者校对一章之后可以领取千字2\~4元的奖励。进行中的校对活动请见[活动列表](https://home.apachecn.org/#/docs/activity/docs-activity)。更多详情请联系飞龙(Q562826179,V:wizardforcel)。 +> 支持版本 -## DOCX:开放共享科研记录行动倡议 +| Version | Supported | +| ------- | ------------------ | +| 3.6.x | :x: | +| 2.7.x | :white_check_mark: | -我们积极响应[科研开源计划(DOCX)](https://mmcheng.net/docx/)。如今开源不仅仅是开放源码,还包括数据集、模型、教程和实验记录。我们也在探讨其它类别的开源方案和协议。 +注意事项: -希望大家了解这个倡议,把这个倡议与自己的兴趣点结合,做点力所能及的事情。每个人的微小的贡献,汇聚在一起就是整个开源生态。 +- 机器学习实战: 仅仅只是学习,请使用 python 2.7.x 版本 (3.6.x 只是修改了部分) -## 下载 +### 基本介绍 -### Docker +* 资料来源: Machine Learning in Action(机器学习实战-个人笔记) +* 统一数据地址: + * 百度云打包地址: +* 书籍下载地址: +* 机器学习下载地址: +* 深度学习数据地址: +* 推荐系统数据地址: +* 视频网站: 优酷 /bilibili / Acfun / 网易云课堂,可直接在线播放。(最下方有相应链接) +* -- 推荐 [红色石头](https://github.com/RedstoneWill): [台湾大学林轩田机器学习笔记](https://github.com/apachecn/ntu-hsuantienlin-ml) +* -- 推荐 [机器学习笔记](https://feisky.xyz/machine-learning): https://feisky.xyz/machine-learning -``` -docker pull apachecn0/ailearning -docker run -tid -p :80 apachecn0/ailearning -# 访问 http://localhost:{port} 查看文档 +### 学习文档 + +| 模块 | 章节 | 类型 | 负责人(GitHub) | QQ | +| --- | --- | --- | --- | --- | +| 机器学习实战 | [第 1 章: 机器学习基础](/docs/ml/1.md) | 介绍 | [@毛红动](https://github.com/ElmaDavies) | 1306014226 | +| 机器学习实战 | [第 2 章: KNN 近邻算法](/docs/ml/2.md) | 分类 | [@尤永江](https://github.com/youyj521) | 279393323 | +| 机器学习实战 | [第 3 章: 决策树](/docs/ml/3.md) | 分类 | [@景涛](https://github.com/jingwangfei) | 844300439 | +| 机器学习实战 | [第 4 章: 朴素贝叶斯](/docs/ml/4.md) | 分类 | [@wnma3mz](https://github.com/wnma3mz)
[@分析](https://github.com/kailian) | 1003324213
244970749 | +| 机器学习实战 | [第 5 章: Logistic回归](/docs/ml/5.md) | 分类 | [@微光同尘](https://github.com/DataMonk2017) | 529925688 | +| 机器学习实战 | [第 6 章: SVM 支持向量机](/docs/ml/6.md) | 分类 | [@王德红](https://github.com/VPrincekin) | 934969547 | +| 网上组合内容 | [第 7 章: 集成方法(随机森林和 AdaBoost)](/docs/ml/7.md) | 分类 | [@片刻](https://github.com/jiangzhonglian) | 529815144 | +| 机器学习实战 | [第 8 章: 回归](/docs/ml/8.md) | 回归 | [@微光同尘](https://github.com/DataMonk2017) | 529925688 | +| 机器学习实战 | [第 9 章: 树回归](/docs/ml/9.md) | 回归 | [@微光同尘](https://github.com/DataMonk2017) | 529925688 | +| 机器学习实战 | [第 10 章: K-Means 聚类](/docs/ml/10.md) | 聚类 | [@徐昭清](https://github.com/xuzhaoqing) | 827106588 | +| 机器学习实战 | [第 11 章: 利用 Apriori 算法进行关联分析](/docs/ml/11.md) | 频繁项集 | [@刘海飞](https://github.com/WindZQ) | 1049498972 | +| 机器学习实战 | [第 12 章: FP-growth 高效发现频繁项集](/docs/ml/12.md) | 频繁项集 | [@程威](https://github.com/mikechengwei) | 842725815 | +| 机器学习实战 | [第 13 章: 利用 PCA 来简化数据](/docs/ml/13.md) | 工具 | [@廖立娟](https://github.com/lljuan330) | 835670618 | +| 机器学习实战 | [第 14 章: 利用 SVD 来简化数据](/docs/ml/14.md) | 工具 | [@张俊皓](https://github.com/marsjhao) | 714974242 | +| 机器学习实战 | [第 15 章: 大数据与 MapReduce](/docs/ml/15.md) | 工具 | [@wnma3mz](https://github.com/wnma3mz) | 1003324213 | +| Ml项目实战 | [第 16 章: 推荐系统(已迁移)](/docs/ml/16.md) | 项目 | [推荐系统(迁移后地址)](https://github.com/apachecn/RecommenderSystems) | | +| 第一期的总结 | [2017-04-08: 第一期的总结](/docs/report/2017-04-08.md) | 总结 | 总结 | 529815144 | + +### 网站视频 + +> [知乎问答-爆炸啦-机器学习该怎么入门?](https://www.zhihu.com/question/20691338/answer/248678328) + +当然我知道,第一句就会被吐槽,因为科班出身的人,不屑的吐了一口唾沫,说傻X,还评论 Andrew Ng 的视频。。 + +我还知道还有一部分人,看 Andrew Ng 的视频就是看不懂,那神秘的数学推导,那迷之微笑的英文版的教学,我何尝又不是这样走过来的?? 我的心可能比你们都痛,因为我在网上收藏过上10部《机器学习》相关视频,外加国内本土风格的教程: 7月+小象 等等,我都很难去听懂,直到有一天,被一个百度的高级算法分析师推荐说: 《机器学习实战》还不错,通俗易懂,你去试试?? + +我试了试,还好我的Python基础和调试能力还不错,基本上代码都调试过一遍,很多高大上的 "理论+推导",在我眼中变成了几个 "加减乘除+循环",我想这不就是像我这样的程序员想要的入门教程么? + +很多程序员说机器学习 TM 太难学了,是的,真 TM 难学,我想最难的是: 没有一本像《机器学习实战》那样的作者愿意以程序员 Coding 角度去给大家讲解!! + +最近几天,GitHub 涨了 300颗 star,加群的200人, 现在还在不断的增加++,我想大家可能都是感同身受吧! + +很多想入门新手就是被忽悠着收藏收藏再收藏,但是最后还是什么都没有学到,也就是"资源收藏家",也许新手要的就是 [MachineLearning(机器学习) 学习路线图](https:/docs.apachecn.org/map)。没错,我可以给你们的一份,因为我们还通过视频记录下来我们的学习过程。水平当然也有限,不过对于新手入门,绝对没问题,如果你还不会,那算我输!! + +> 视频怎么看? + +![](img/ApacheCN-ML-bilibili-compare.jpg) + +1. 理论科班出身-建议去学习 Andrew Ng 的视频(Ng 的视频绝对是权威,这个毋庸置疑) +2. 编码能力强 - 建议看我们的[《机器学习实战-教学版》](https://space.bilibili.com/97678687/#!/channel/detail?cid=22486) +3. 编码能力弱 - 建议看我们的[《机器学习实战-讨论版》](https://space.bilibili.com/97678687/#!/channel/detail?cid=13045),不过在看理论的时候,看 教学版-理论部分;讨论版的废话太多,不过在讲解代码的时候是一行一行讲解的;所以,根据自己的需求,自由的组合。 + +> 【免费】数学教学视频 - 可汗学院 入门篇 + +* [@于振梓]() 推荐: 可汗学院-网易公开课 + +| 概率 | 统计 | 线性代数 | +| - | - | - | +| [可汗学院(概率)](http://open.163.com/special/Khan/probability.html) | [可汗学院(统计学)](http://open.163.com/special/Khan/khstatistics.html)| [可汗学院(线性代数)](http://open.163.com/special/Khan/linearalgebra.html) + +> 机器学习视频 - ApacheCN 教学版 + +||| +| - | - | +| AcFun | B站 | +| | | +| 优酷 | 网易云课堂 | +| | | + +> 【免费】机器/深度学习视频 - 吴恩达 + +| 机器学习 | 深度学习 | +| - | - | +| [吴恩达机器学习](http://study.163.com/course/courseMain.htm?courseId=1004570029) | [神经网络和深度学习](http://mooc.study.163.com/course/2001281002?tid=2001392029) | + + +## 2.深度学习 + +> 支持版本 + +| Version | Supported | +| ------- | ------------------ | +| 3.6.x | :white_check_mark: | +| 2.7.x | :x: | + +### 入门基础 + +1. [反向传递](/docs/dl/反向传递.md): https://www.cnblogs.com/charlotte77/p/5629865.html +2. [CNN原理](/docs/dl/CNN原理.md): http://www.cnblogs.com/charlotte77/p/7759802.html +3. [RNN原理](/docs/dl/RNN原理.md): https://blog.csdn.net/qq_39422642/article/details/78676567 +4. [LSTM原理](/docs/dl/LSTM原理.md): https://blog.csdn.net/weixin_42111770/article/details/80900575 + +### Pytorch - 教程 + +-- 待更新 + +### TensorFlow 2.0 - 教程 + +-- 待更新 + +> 目录结构: + +* [安装指南](/docs/TensorFlow2.x/安装指南.md) +* [Keras 快速入门](/docs/TensorFlow2.x/Keras快速入门.md) +* [实战项目 1 电影情感分类](/docs/TensorFlow2.x/实战项目_1_电影情感分类.md) +* [实战项目 2 汽车燃油效率](/docs/TensorFlow2.x/实战项目_2_汽车燃油效率.md) +* [实战项目 3 优化 过拟合和欠拟合](/docs/TensorFlow2.x/实战项目_3_优化_过拟合和欠拟合.md) +* [实战项目 4 古诗词自动生成](/docs/TensorFlow2.x/实战项目_4_古诗词自动生成.md) + +切分(分词) + +词性标注 + +命名实体识别 + +句法分析 + +WordNet可以被看作是一个同义词词典 + +词干提取(stemming)与词形还原(lemmatization) + +* https://www.biaodianfu.com/nltk.html/amp + +TensorFlow 2.0学习网址 +* https://github.com/lyhue1991/eat_tensorflow2_in_30_days + +## 3.自然语言处理 + +> 支持版本 + +| Version | Supported | +| ------- | ------------------ | +| 3.6.x | :white_check_mark: | +| 2.7.x | :x: | + +学习过程中-内心复杂的变化!!! + +```python +自从学习NLP以后,才发现国内与国外的典型区别: +1. 对资源的态度是完全相反的: + 1) 国内: 就好像为了名气,举办工作装逼的会议,就是没有干货,全部都是象征性的PPT介绍,不是针对在做的各位 + 2)国外: 就好像是为了推动nlp进步一样,分享者各种干货资料和具体的实现。(特别是: python自然语言处理) +2. 论文的实现: + 1) 各种高大上的论文实现,却还是没看到一个像样的GitHub项目!(可能我的搜索能力差了点,一直没找到) + 2)国外就不举例了,我看不懂! +3. 开源的框架 + 1)国外的开源框架: tensorflow/pytorch 文档+教程+视频(官方提供) + 2) 国内的开源框架: 额额,还真举例不出来!但是牛逼吹得不比国外差!(MXNet虽然有众多国人参与开发,但不能算是国内开源框架。基于MXNet的动手学深度学习(http://zh.d2l.ai & https://discuss.gluon.ai/t/topic/753)中文教程,已经由沐神(李沐)以及阿斯顿·张讲授录制,公开发布(文档+第一季教程+视频)。) +每一次深入都要去翻墙,每一次深入都要Google,每一次看着国内的说: 哈工大、讯飞、中科大、百度、阿里多牛逼,但是资料还是得国外去找! +有时候真的挺恨的!真的有点瞧不起自己国内的技术环境! + +当然谢谢国内很多博客大佬,特别是一些入门的Demo和基本概念。【深入的水平有限,没看懂】 ``` -### PYPI +![](nlp/img/F94581F64C21A1094A473397DFA42F9C.jpg) -``` -pip install apachecn-ailearning -apachecn-ailearning -# 访问 http://localhost:{port} 查看文档 -``` +* **【入门须知】必须了解**: +* **【入门教程】强烈推荐: PyTorch 自然语言处理**: +* Python 自然语言处理 第二版: +* 推荐一个[liuhuanyong大佬](https://github.com/liuhuanyong)整理的nlp全面知识体系: +* 开源 - 词向量库集合: + * + * + * + * + * + * + * -### NPM -``` -npm install -g ailearning -ailearning -# 访问 http://localhost:{port} 查看文档 -``` +### 1.使用场景 (百度公开课) -## 组织介绍 +> 第一部分 入门介绍 -> 我们是布客(iBooker),一个大型开源社区、自媒体和网赚社区,旗下 QQ 群共一万余人,订阅用户至少一万人。Github Star 数量超过 60k 个,在所有 Github 组织中[排名前 100][top100]。旗下所有网站日 uip 超过 4k,[Alexa 排名的峰值为 20k][top20k]。我们的核心成员拥有[ CSDN 博客专家][csdn-pro]和[简书程序员优秀作者][js-pro]认证。我们建立了公益性文档和教程翻译项目 [ApacheCN][apachecn]。 -> -> 与商业组织不同,我们并不会追逐热点,或者唯利是图。作为公益组织,我们将完成项目放在首要位置,并有足够时间把项目打磨到极致。我们希望做出广大 AI 爱好者和个人开发者真正需要的东西,打造真正有价值的长尾作品。 +* 1.) [自然语言处理入门介绍](/docs/nlp/1.自然语言处理入门介绍.md) -* **We are ApacheCN Open Source Organization, not ASF! We are fans of AI, and have no relationship with ASF!** -* 合作 or 侵权,请联系 | 请抄送一份到 +> 第二部分 机器翻译 + +* 2.) [机器翻译](/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-语言理解与交互技术 + +* 4.) [UNIT-语言理解与交互技术](/docs/nlp/4.UNIT-语言理解与交互技术.md) + +### 应用领域 + +#### 中文分词: + +* 构建DAG图 +* 动态规划查找,综合正反向(正向加权反向输出)求得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)。来自网站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 + +* 方案一(0.86): WordCount + 朴素 Bayes +* 方案二(0.94): LDA + 分类模型(knn/决策树/逻辑回归/svm/xgboost/随机森林) + * a) 决策树效果不是很好,这种连续特征不太适合的 + * b) 通过参数调整 200 个topic,信息量保存效果较优(计算主题) +* 方案三(0.72): word2vec + CNN + * 说实话: 没有一个好的机器,是调不出来一个好的结果 (: 逃 + +**通过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)。 + +> 新词发现 + +* 中文分词新词发现 +* python3利用互信息和左右信息熵的中文分词新词发现 +* + +> 句子相似度识别 + +* 项目地址: https://www.kaggle.com/c/quora-question-pairs +* 解决方案: word2vec + Bi-GRU + +> 文本纠错 + +* bi-gram + levenshtein + +#### 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) + +机器翻译是将文本从一种语言翻译成另一种语言的任务。 + +下面是一些很好的初学者机器翻译数据集。 + +1. [加拿大第36届议会的协调国会议员](https://www.isi.edu/natural-language/download/hansard/)。成对的英语和法语句子。 +2. [欧洲议会诉讼平行语料库1996-2011](http://www.statmt.org/europarl/)。句子对一套欧洲语言。 + 有大量标准数据集用于年度机器翻译挑战; 看到: + +[统计机器翻译](http://www.statmt.org/) + +> 机器翻译 + +* Encoder + Decoder(Attention) +* 参考案例: http://pytorch.apachecn.org/cn/tutorials/intermediate/seq2seq_translation_tutorial.html + +#### 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) + +文档摘要是创建较大文档的简短有意义描述的任务。 + +下面是一些很好的初学者文档摘要数据集。 + +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 +* CRF推荐文档: https://www.jianshu.com/p/55755fc649b1 + +> 文本摘要 + +* **抽取式** +* word2vec + textrank +* word2vec推荐文档: https://www.zhihu.com/question/44832436/answer/266068967 +* textrank推荐文档: https://blog.csdn.net/BaiHuaXiu123/article/details/77847232 + + +## Graph图计算【慢慢更新】 + +* 数据集: [https://github.com/apachecn/data/tree/master/graph](https://github.com/apachecn/data/tree/master/graph) +* 学习资料: spark graphX实战.pdf 【文件太大不方便提供,自己百度】 + +## 知识图谱 + +* 知识图谱,我只认 [SimmerChan](https://www.zhihu.com/people/simmerchan): [【知识图谱-给AI装个大脑】](https://zhuanlan.zhihu.com/knowledgegraph) +* 说实话,我是看这博主老哥写的博客长大的,写的真的是深入浅出。我很喜欢,所以就分享给大家,希望你们也喜欢。 + +### 进一步阅读 + +如果您希望更深入,本节提供了其他数据集列表。 + +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 -[top100]: https://gitstar-ranking.com/apachecn -[top20k]: http://home.apachecn.org/img/about/alexa_201906.png -[csdn-pro]: https://blog.csdn.net/wizardforcel -[js-pro]: https://www.jianshu.com/u/b508a6aa98eb -[apachecn]: https://github.com/apachecn ## 参考 diff --git a/SUMMARY.md b/SUMMARY.md index d7a21f21..31927936 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,5 +1,4 @@ -+ [简介](README.md) -+ [路线图](docs/roadmap.md) ++ [快速入门](docs/README.md) + [数据分析](docs/da/README.md) + [01\. Python 工具](docs/da/001.md) + [Python 简介](docs/da/002.md) diff --git a/asset/docsify-apachecn-footer.js b/asset/docsify-apachecn-footer.js index 009168c6..a4263f43 100644 --- a/asset/docsify-apachecn-footer.js +++ b/asset/docsify-apachecn-footer.js @@ -2,17 +2,34 @@ var cnzzId = window.$docsify.cnzzId var unRepo = window.$docsify.repo || '' var [un, repo] = unRepo.split('/') - var footer = ` + var footer = `

-
+ +
+ + +
+ ` var plugin = function(hook) { hook.afterEach(function(html) { @@ -20,8 +37,6 @@ }) hook.doneEach(function() { (adsbygoogle = window.adsbygoogle || []).push({}) - new Gitalk(window.$docsify.gitalk) - .render(window.$docsify.gitalk.container) }) } var plugins = window.$docsify.plugins || [] diff --git a/asset/gitalk.css b/asset/gitalk.css deleted file mode 100644 index 365cad04..00000000 --- a/asset/gitalk.css +++ /dev/null @@ -1,1251 +0,0 @@ -@font-face { - font-family: octicons-link; - src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff'); -} - -.markdown-body { - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - line-height: 1.5; - color: #24292e; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 16px; - line-height: 1.5; - word-wrap: break-word; -} - -.markdown-body .pl-c { - color: #6a737d; -} - -.markdown-body .pl-c1, -.markdown-body .pl-s .pl-v { - color: #005cc5; -} - -.markdown-body .pl-e, -.markdown-body .pl-en { - color: #6f42c1; -} - -.markdown-body .pl-smi, -.markdown-body .pl-s .pl-s1 { - color: #24292e; -} - -.markdown-body .pl-ent { - color: #22863a; -} - -.markdown-body .pl-k { - color: #d73a49; -} - -.markdown-body .pl-s, -.markdown-body .pl-pds, -.markdown-body .pl-s .pl-pse .pl-s1, -.markdown-body .pl-sr, -.markdown-body .pl-sr .pl-cce, -.markdown-body .pl-sr .pl-sre, -.markdown-body .pl-sr .pl-sra { - color: #032f62; -} - -.markdown-body .pl-v, -.markdown-body .pl-smw { - color: #e36209; -} - -.markdown-body .pl-bu { - color: #b31d28; -} - -.markdown-body .pl-ii { - color: #fafbfc; - background-color: #b31d28; -} - -.markdown-body .pl-c2 { - color: #fafbfc; - background-color: #d73a49; -} - -.markdown-body .pl-c2::before { - content: "^M"; -} - -.markdown-body .pl-sr .pl-cce { - font-weight: bold; - color: #22863a; -} - -.markdown-body .pl-ml { - color: #735c0f; -} - -.markdown-body .pl-mh, -.markdown-body .pl-mh .pl-en, -.markdown-body .pl-ms { - font-weight: bold; - color: #005cc5; -} - -.markdown-body .pl-mi { - font-style: italic; - color: #24292e; -} - -.markdown-body .pl-mb { - font-weight: bold; - color: #24292e; -} - -.markdown-body .pl-md { - color: #b31d28; - background-color: #ffeef0; -} - -.markdown-body .pl-mi1 { - color: #22863a; - background-color: #f0fff4; -} - -.markdown-body .pl-mc { - color: #e36209; - background-color: #ffebda; -} - -.markdown-body .pl-mi2 { - color: #f6f8fa; - background-color: #005cc5; -} - -.markdown-body .pl-mdr { - font-weight: bold; - color: #6f42c1; -} - -.markdown-body .pl-ba { - color: #586069; -} - -.markdown-body .pl-sg { - color: #959da5; -} - -.markdown-body .pl-corl { - text-decoration: underline; - color: #032f62; -} - -.markdown-body .octicon { - display: inline-block; - vertical-align: text-top; - fill: currentColor; -} - -.markdown-body a { - background-color: transparent; - -webkit-text-decoration-skip: objects; -} - -.markdown-body a:active, -.markdown-body a:hover { - outline-width: 0; -} - -.markdown-body strong { - font-weight: inherit; -} - -.markdown-body strong { - font-weight: bolder; -} - -.markdown-body h1 { - font-size: 2em; - margin: 0.67em 0; -} - -.markdown-body img { - border-style: none; -} - -.markdown-body svg:not(:root) { - overflow: hidden; -} - -.markdown-body code, -.markdown-body kbd, -.markdown-body pre { - font-family: monospace, monospace; - font-size: 1em; -} - -.markdown-body hr { - -webkit-box-sizing: content-box; - box-sizing: content-box; - height: 0; - overflow: visible; -} - -.markdown-body input { - font: inherit; - margin: 0; -} - -.markdown-body input { - overflow: visible; -} - -.markdown-body [type="checkbox"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} - -.markdown-body * { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -.markdown-body input { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -.markdown-body a { - color: #0366d6; - text-decoration: none; -} - -.markdown-body a:hover { - text-decoration: underline; -} - -.markdown-body strong { - font-weight: 600; -} - -.markdown-body hr { - height: 0; - margin: 15px 0; - overflow: hidden; - background: transparent; - border: 0; - border-bottom: 1px solid #dfe2e5; -} - -.markdown-body hr::before { - display: table; - content: ""; -} - -.markdown-body hr::after { - display: table; - clear: both; - content: ""; -} - -.markdown-body table { - border-spacing: 0; - border-collapse: collapse; -} - -.markdown-body td, -.markdown-body th { - padding: 0; -} - -.markdown-body h1, -.markdown-body h2, -.markdown-body h3, -.markdown-body h4, -.markdown-body h5, -.markdown-body h6 { - margin-top: 0; - margin-bottom: 0; -} - -.markdown-body h1 { - font-size: 32px; - font-weight: 600; -} - -.markdown-body h2 { - font-size: 24px; - font-weight: 600; -} - -.markdown-body h3 { - font-size: 20px; - font-weight: 600; -} - -.markdown-body h4 { - font-size: 16px; - font-weight: 600; -} - -.markdown-body h5 { - font-size: 14px; - font-weight: 600; -} - -.markdown-body h6 { - font-size: 12px; - font-weight: 600; -} - -.markdown-body p { - margin-top: 0; - margin-bottom: 10px; -} - -.markdown-body blockquote { - margin: 0; -} - -.markdown-body ul, -.markdown-body ol { - padding-left: 0; - margin-top: 0; - margin-bottom: 0; -} - -.markdown-body ol ol, -.markdown-body ul ol { - list-style-type: lower-roman; -} - -.markdown-body ul ul ol, -.markdown-body ul ol ol, -.markdown-body ol ul ol, -.markdown-body ol ol ol { - list-style-type: lower-alpha; -} - -.markdown-body dd { - margin-left: 0; -} - -.markdown-body code { - font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; - font-size: 12px; -} - -.markdown-body pre { - margin-top: 0; - margin-bottom: 0; - font: 12px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; -} - -.markdown-body .octicon { - vertical-align: text-bottom; -} - -.markdown-body .pl-0 { - padding-left: 0 !important; -} - -.markdown-body .pl-1 { - padding-left: 4px !important; -} - -.markdown-body .pl-2 { - padding-left: 8px !important; -} - -.markdown-body .pl-3 { - padding-left: 16px !important; -} - -.markdown-body .pl-4 { - padding-left: 24px !important; -} - -.markdown-body .pl-5 { - padding-left: 32px !important; -} - -.markdown-body .pl-6 { - padding-left: 40px !important; -} - -.markdown-body::before { - display: table; - content: ""; -} - -.markdown-body::after { - display: table; - clear: both; - content: ""; -} - -.markdown-body>*:first-child { - margin-top: 0 !important; -} - -.markdown-body>*:last-child { - margin-bottom: 0 !important; -} - -.markdown-body a:not([href]) { - color: inherit; - text-decoration: none; -} - -.markdown-body .anchor { - float: left; - padding-right: 4px; - margin-left: -20px; - line-height: 1; -} - -.markdown-body .anchor:focus { - outline: none; -} - -.markdown-body p, -.markdown-body blockquote, -.markdown-body ul, -.markdown-body ol, -.markdown-body dl, -.markdown-body table, -.markdown-body pre { - margin-top: 0; - margin-bottom: 16px; -} - -.markdown-body hr { - height: 0.25em; - padding: 0; - margin: 24px 0; - background-color: #e1e4e8; - border: 0; -} - -.markdown-body blockquote { - padding: 0 1em; - color: #6a737d; - border-left: 0.25em solid #dfe2e5; -} - -.markdown-body blockquote>:first-child { - margin-top: 0; -} - -.markdown-body blockquote>:last-child { - margin-bottom: 0; -} - -.markdown-body kbd { - display: inline-block; - padding: 3px 5px; - font-size: 11px; - line-height: 10px; - color: #444d56; - vertical-align: middle; - background-color: #fafbfc; - border: solid 1px #c6cbd1; - border-bottom-color: #959da5; - border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 #959da5; - box-shadow: inset 0 -1px 0 #959da5; -} - -.markdown-body h1, -.markdown-body h2, -.markdown-body h3, -.markdown-body h4, -.markdown-body h5, -.markdown-body h6 { - margin-top: 24px; - margin-bottom: 16px; - font-weight: 600; - line-height: 1.25; -} - -.markdown-body h1 .octicon-link, -.markdown-body h2 .octicon-link, -.markdown-body h3 .octicon-link, -.markdown-body h4 .octicon-link, -.markdown-body h5 .octicon-link, -.markdown-body h6 .octicon-link { - color: #1b1f23; - vertical-align: middle; - visibility: hidden; -} - -.markdown-body h1:hover .anchor, -.markdown-body h2:hover .anchor, -.markdown-body h3:hover .anchor, -.markdown-body h4:hover .anchor, -.markdown-body h5:hover .anchor, -.markdown-body h6:hover .anchor { - text-decoration: none; -} - -.markdown-body h1:hover .anchor .octicon-link, -.markdown-body h2:hover .anchor .octicon-link, -.markdown-body h3:hover .anchor .octicon-link, -.markdown-body h4:hover .anchor .octicon-link, -.markdown-body h5:hover .anchor .octicon-link, -.markdown-body h6:hover .anchor .octicon-link { - visibility: visible; -} - -.markdown-body h1 { - padding-bottom: 0.3em; - font-size: 2em; - border-bottom: 1px solid #eaecef; -} - -.markdown-body h2 { - padding-bottom: 0.3em; - font-size: 1.5em; - border-bottom: 1px solid #eaecef; -} - -.markdown-body h3 { - font-size: 1.25em; -} - -.markdown-body h4 { - font-size: 1em; -} - -.markdown-body h5 { - font-size: 0.875em; -} - -.markdown-body h6 { - font-size: 0.85em; - color: #6a737d; -} - -.markdown-body ul, -.markdown-body ol { - padding-left: 2em; -} - -.markdown-body ul ul, -.markdown-body ul ol, -.markdown-body ol ol, -.markdown-body ol ul { - margin-top: 0; - margin-bottom: 0; -} - -.markdown-body li>p { - margin-top: 16px; -} - -.markdown-body li+li { - margin-top: 0.25em; -} - -.markdown-body dl { - padding: 0; -} - -.markdown-body dl dt { - padding: 0; - margin-top: 16px; - font-size: 1em; - font-style: italic; - font-weight: 600; -} - -.markdown-body dl dd { - padding: 0 16px; - margin-bottom: 16px; -} - -.markdown-body table { - display: block; - width: 100%; - overflow: auto; -} - -.markdown-body table th { - font-weight: 600; -} - -.markdown-body table th, -.markdown-body table td { - padding: 6px 13px; - border: 1px solid #dfe2e5; -} - -.markdown-body table tr { - background-color: #fff; - border-top: 1px solid #c6cbd1; -} - -.markdown-body table tr:nth-child(2n) { - background-color: #f6f8fa; -} - -.markdown-body img { - max-width: 100%; - -webkit-box-sizing: content-box; - box-sizing: content-box; - background-color: #fff; -} - -.markdown-body code { - padding: 0; - padding-top: 0.2em; - padding-bottom: 0.2em; - margin: 0; - font-size: 85%; - background-color: rgba(27,31,35,0.05); - border-radius: 3px; -} - -.markdown-body code::before, -.markdown-body code::after { - letter-spacing: -0.2em; - content: "\A0"; -} - -.markdown-body pre { - word-wrap: normal; -} - -.markdown-body pre>code { - padding: 0; - margin: 0; - font-size: 100%; - word-break: normal; - white-space: pre; - background: transparent; - border: 0; -} - -.markdown-body .highlight { - margin-bottom: 16px; -} - -.markdown-body .highlight pre { - margin-bottom: 0; - word-break: normal; -} - -.markdown-body .highlight pre, -.markdown-body pre { - padding: 16px; - overflow: auto; - font-size: 85%; - line-height: 1.45; - background-color: #f6f8fa; - border-radius: 3px; -} - -.markdown-body pre code { - display: inline; - max-width: auto; - padding: 0; - margin: 0; - overflow: visible; - line-height: inherit; - word-wrap: normal; - background-color: transparent; - border: 0; -} - -.markdown-body pre code::before, -.markdown-body pre code::after { - content: normal; -} - -.markdown-body .full-commit .btn-outline:not(:disabled):hover { - color: #005cc5; - border-color: #005cc5; -} - -.markdown-body kbd { - display: inline-block; - padding: 3px 5px; - font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; - line-height: 10px; - color: #444d56; - vertical-align: middle; - background-color: #fafbfc; - border: solid 1px #d1d5da; - border-bottom-color: #c6cbd1; - border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 #c6cbd1; - box-shadow: inset 0 -1px 0 #c6cbd1; -} - -.markdown-body :checked+.radio-label { - position: relative; - z-index: 1; - border-color: #0366d6; -} - -.markdown-body .task-list-item { - list-style-type: none; -} - -.markdown-body .task-list-item+.task-list-item { - margin-top: 3px; -} - -.markdown-body .task-list-item input { - margin: 0 0.2em 0.25em -1.6em; - vertical-align: middle; -} - -.markdown-body hr { - border-bottom-color: #eee; -} -/* variables */ -/* functions & mixins */ -/* variables - calculated */ -/* styles */ -.gt-container { - -webkit-box-sizing: border-box; - box-sizing: border-box; - font-size: 16px; -/* loader */ -/* error */ -/* initing */ -/* no int */ -/* link */ -/* meta */ -/* popup */ -/* header */ -/* comments */ -/* comment */ -} -.gt-container * { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} -.gt-container a { - color: #6190e8; -} -.gt-container a:hover { - color: #81a6ed; - border-color: #81a6ed; -} -.gt-container a.is--active { - color: #333; - cursor: default !important; -} -.gt-container a.is--active:hover { - color: #333; -} -.gt-container .hide { - display: none !important; -} -.gt-container .gt-svg { - display: inline-block; - width: 1em; - height: 1em; - vertical-align: sub; -} -.gt-container .gt-svg svg { - width: 100%; - height: 100%; - fill: #6190e8; -} -.gt-container .gt-ico { - display: inline-block; -} -.gt-container .gt-ico-text { - margin-left: 0.3125em; -} -.gt-container .gt-ico-github { - width: 100%; - height: 100%; -} -.gt-container .gt-ico-github .gt-svg { - width: 100%; - height: 100%; -} -.gt-container .gt-ico-github svg { - fill: inherit; -} -.gt-container .gt-spinner { - position: relative; -} -.gt-container .gt-spinner::before { - content: ''; - -webkit-box-sizing: border-box; - box-sizing: border-box; - position: absolute; - top: 3px; - width: 0.75em; - height: 0.75em; - margin-top: -0.1875em; - margin-left: -0.375em; - border-radius: 50%; - border: 1px solid #fff; - border-top-color: #6190e8; - -webkit-animation: gt-kf-rotate 0.6s linear infinite; - animation: gt-kf-rotate 0.6s linear infinite; -} -.gt-container .gt-loader { - position: relative; - border: 1px solid #999; - -webkit-animation: ease gt-kf-rotate 1.5s infinite; - animation: ease gt-kf-rotate 1.5s infinite; - display: inline-block; - font-style: normal; - width: 1.75em; - height: 1.75em; - line-height: 1.75em; - border-radius: 50%; -} -.gt-container .gt-loader:before { - content: ''; - position: absolute; - display: block; - top: 0; - left: 50%; - margin-top: -0.1875em; - margin-left: -0.1875em; - width: 0.375em; - height: 0.375em; - background-color: #999; - border-radius: 50%; -} -.gt-container .gt-avatar { - display: inline-block; - width: 3.125em; - height: 3.125em; -} -@media (max-width: 479px) { - .gt-container .gt-avatar { - width: 2em; - height: 2em; - } -} -.gt-container .gt-avatar img { - width: 100%; - height: auto; - border-radius: 3px; -} -.gt-container .gt-avatar-github { - width: 3em; - height: 3em; - cursor: pointer; -} -@media (max-width: 479px) { - .gt-container .gt-avatar-github { - width: 1.875em; - height: 1.875em; - } -} -.gt-container .gt-btn { - padding: 0.75em 1.25em; - display: inline-block; - line-height: 1; - text-decoration: none; - white-space: nowrap; - cursor: pointer; - border: 1px solid #6190e8; - border-radius: 5px; - background-color: #6190e8; - color: #fff; - outline: none; - font-size: 0.75em; -} -.gt-container .gt-btn-text { - font-weight: 400; -} -.gt-container .gt-btn-loading { - position: relative; - margin-left: 0.5em; - display: inline-block; - width: 0.75em; - height: 1em; - vertical-align: top; -} -.gt-container .gt-btn.is--disable { - cursor: not-allowed; - opacity: 0.5; -} -.gt-container .gt-btn-login { - margin-right: 0; -} -.gt-container .gt-btn-preview { - background-color: #fff; - color: #6190e8; -} -.gt-container .gt-btn-preview:hover { - background-color: #f2f2f2; - border-color: #81a6ed; -} -.gt-container .gt-btn-public:hover { - background-color: #81a6ed; - border-color: #81a6ed; -} -.gt-container .gt-error { - text-align: center; - margin: 0.625em; - color: #ff3860; -} -.gt-container .gt-initing { - padding: 1.25em 0; - text-align: center; -} -.gt-container .gt-initing-text { - margin: 0.625em auto; - font-size: 92%; -} -.gt-container .gt-no-init { - padding: 1.25em 0; - text-align: center; -} -.gt-container .gt-link { - border-bottom: 1px dotted #6190e8; -} -.gt-container .gt-link-counts, -.gt-container .gt-link-project { - text-decoration: none; -} -.gt-container .gt-meta { - margin: 1.25em 0; - padding: 1em 0; - position: relative; - border-bottom: 1px solid #e9e9e9; - font-size: 1em; - position: relative; - z-index: 10; -} -.gt-container .gt-meta:before, -.gt-container .gt-meta:after { - content: " "; - display: table; -} -.gt-container .gt-meta:after { - clear: both; -} -.gt-container .gt-counts { - margin: 0 0.625em 0 0; -} -.gt-container .gt-user { - float: right; - margin: 0; - font-size: 92%; -} -.gt-container .gt-user-pic { - width: 16px; - height: 16px; - vertical-align: top; - margin-right: 0.5em; -} -.gt-container .gt-user-inner { - display: inline-block; - cursor: pointer; -} -.gt-container .gt-user .gt-ico { - margin: 0 0 0 0.3125em; -} -.gt-container .gt-user .gt-ico svg { - fill: inherit; -} -.gt-container .gt-user .is--poping .gt-ico svg { - fill: #6190e8; -} -.gt-container .gt-version { - color: #a1a1a1; - margin-left: 0.375em; -} -.gt-container .gt-copyright { - margin: 0 0.9375em 0.5em; - border-top: 1px solid #e9e9e9; - padding-top: 0.5em; -} -.gt-container .gt-popup { - position: absolute; - right: 0; - top: 2.375em; - background: #fff; - display: inline-block; - border: 1px solid #e9e9e9; - padding: 0.625em 0; - font-size: 0.875em; - letter-spacing: 0.5px; -} -.gt-container .gt-popup .gt-action { - cursor: pointer; - display: block; - margin: 0.5em 0; - padding: 0 1.125em; - position: relative; - text-decoration: none; -} -.gt-container .gt-popup .gt-action.is--active:before { - content: ''; - width: 0.25em; - height: 0.25em; - background: #6190e8; - position: absolute; - left: 0.5em; - top: 0.4375em; -} -.gt-container .gt-header { - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} -.gt-container .gt-header-comment { - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - margin-left: 1.25em; -} -@media (max-width: 479px) { - .gt-container .gt-header-comment { - margin-left: 0.875em; - } -} -.gt-container .gt-header-textarea { - padding: 0.75em; - display: block; - -webkit-box-sizing: border-box; - box-sizing: border-box; - width: 100%; - min-height: 5.125em; - max-height: 15em; - border-radius: 5px; - border: 1px solid rgba(0,0,0,0.1); - font-size: 0.875em; - word-wrap: break-word; - resize: vertical; - background-color: #f6f6f6; - outline: none; - -webkit-transition: all 0.25s ease; - transition: all 0.25s ease; -} -.gt-container .gt-header-textarea:hover { - background-color: #fbfbfb; -} -.gt-container .gt-header-preview { - padding: 0.75em; - border-radius: 5px; - border: 1px solid rgba(0,0,0,0.1); - background-color: #f6f6f6; -} -.gt-container .gt-header-controls { - position: relative; - margin: 0.75em 0 0; -} -.gt-container .gt-header-controls:before, -.gt-container .gt-header-controls:after { - content: " "; - display: table; -} -.gt-container .gt-header-controls:after { - clear: both; -} -@media (max-width: 479px) { - .gt-container .gt-header-controls { - margin: 0; - } -} -.gt-container .gt-header-controls-tip { - font-size: 0.875em; - color: #6190e8; - text-decoration: none; - vertical-align: sub; -} -@media (max-width: 479px) { - .gt-container .gt-header-controls-tip { - display: none; - } -} -.gt-container .gt-header-controls .gt-btn { - float: right; - margin-left: 1.25em; -} -@media (max-width: 479px) { - .gt-container .gt-header-controls .gt-btn { - float: none; - width: 100%; - margin: 0.75em 0 0; - } -} -.gt-container:after { - content: ''; - position: fixed; - bottom: 100%; - left: 0; - right: 0; - top: 0; - opacity: 0; -} -.gt-container.gt-input-focused { - position: relative; -} -.gt-container.gt-input-focused:after { - content: ''; - position: fixed; - bottom: 0%; - left: 0; - right: 0; - top: 0; - background: #000; - opacity: 0.6; - -webkit-transition: opacity 0.3s, bottom 0s; - transition: opacity 0.3s, bottom 0s; - z-index: 9999; -} -.gt-container.gt-input-focused .gt-header-comment { - z-index: 10000; -} -.gt-container .gt-comments { - padding-top: 1.25em; -} -.gt-container .gt-comments-null { - text-align: center; -} -.gt-container .gt-comments-controls { - margin: 1.25em 0; - text-align: center; -} -.gt-container .gt-comment { - position: relative; - padding: 0.625em 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} -.gt-container .gt-comment-content { - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - margin-left: 1.25em; - padding: 0.75em 1em; - background-color: #f9f9f9; - overflow: auto; - -webkit-transition: all ease 0.25s; - transition: all ease 0.25s; -} -.gt-container .gt-comment-content:hover { - -webkit-box-shadow: 0 0.625em 3.75em 0 #f4f4f4; - box-shadow: 0 0.625em 3.75em 0 #f4f4f4; -} -@media (max-width: 479px) { - .gt-container .gt-comment-content { - margin-left: 0.875em; - padding: 0.625em 0.75em; - } -} -.gt-container .gt-comment-header { - margin-bottom: 0.5em; - font-size: 0.875em; - position: relative; -} -.gt-container .gt-comment-block-1 { - float: right; - height: 1.375em; - width: 2em; -} -.gt-container .gt-comment-block-2 { - float: right; - height: 1.375em; - width: 4em; -} -.gt-container .gt-comment-username { - font-weight: 500; - color: #6190e8; - text-decoration: none; -} -.gt-container .gt-comment-username:hover { - text-decoration: underline; -} -.gt-container .gt-comment-text { - margin-left: 0.5em; - color: #a1a1a1; -} -.gt-container .gt-comment-date { - margin-left: 0.5em; - color: #a1a1a1; -} -.gt-container .gt-comment-like, -.gt-container .gt-comment-edit, -.gt-container .gt-comment-reply { - position: absolute; - height: 1.375em; -} -.gt-container .gt-comment-like:hover, -.gt-container .gt-comment-edit:hover, -.gt-container .gt-comment-reply:hover { - cursor: pointer; -} -.gt-container .gt-comment-like { - top: 0; - right: 2em; -} -.gt-container .gt-comment-edit, -.gt-container .gt-comment-reply { - top: 0; - right: 0; -} -.gt-container .gt-comment-body { - color: #333 !important; -} -.gt-container .gt-comment-body .email-hidden-toggle a { - display: inline-block; - height: 12px; - padding: 0 9px; - font-size: 12px; - font-weight: 600; - line-height: 6px; - color: #444d56; - text-decoration: none; - vertical-align: middle; - background: #dfe2e5; - border-radius: 1px; -} -.gt-container .gt-comment-body .email-hidden-toggle a:hover { - background-color: #c6cbd1; -} -.gt-container .gt-comment-body .email-hidden-reply { - display: none; - white-space: pre-wrap; -} -.gt-container .gt-comment-body .email-hidden-reply .email-signature-reply { - padding: 0 15px; - margin: 15px 0; - color: #586069; - border-left: 4px solid #dfe2e5; -} -.gt-container .gt-comment-body .email-hidden-reply.expanded { - display: block; -} -.gt-container .gt-comment-admin .gt-comment-content { - background-color: #f6f9fe; -} -@-webkit-keyframes gt-kf-rotate { - 0% { - -webkit-transform: rotate(0); - transform: rotate(0); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes gt-kf-rotate { - 0% { - -webkit-transform: rotate(0); - transform: rotate(0); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - -/*# sourceMappingURL=gitalk.css.map*/ \ No newline at end of file diff --git a/asset/gitalk.min.js b/asset/gitalk.min.js deleted file mode 100644 index 02b3e8c7..00000000 --- a/asset/gitalk.min.js +++ /dev/null @@ -1,35 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Gitalk=t():e.Gitalk=t()}(this,function(){return function(e){function t(a){if(n[a])return n[a].exports;var i=n[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,a){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:a})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist",t(t.s=191)}([function(e,t,n){"use strict";function a(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}t.a=a},function(e,t,n){"use strict";function a(e){i.a(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}t.a=a;var i=n(0)},function(e,t,n){"use strict";function a(e){return function(t){var n=t||{},a=n.width?String(n.width):e.defaultWidth;return e.formats[a]||e.formats[e.defaultWidth]}}t.a=a},function(e,t,n){"use strict";function a(e){return function(t,n){var a,i=n||{},r=i.context?String(i.context):"standalone";if("formatting"===r&&e.formattingValues){var o=e.defaultFormattingWidth||e.defaultWidth,u=i.width?String(i.width):o;a=e.formattingValues[u]||e.formattingValues[o]}else{var s=e.defaultWidth,d=i.width?String(i.width):e.defaultWidth;a=e.values[d]||e.values[s]}return a[e.argumentCallback?e.argumentCallback(t):t]}}t.a=a},function(e,t,n){"use strict";function a(e){return function(t,n){var a=String(t),i=n||{},r=a.match(e.matchPattern);if(!r)return null;var o=r[0],u=a.match(e.parsePattern);if(!u)return null;var s=e.valueCallback?e.valueCallback(u[0]):u[0];return s=i.valueCallback?i.valueCallback(s):s,{value:s,rest:a.slice(o.length)}}}t.a=a},function(e,t,n){"use strict";function a(e){return function(t,n){var a=String(t),o=n||{},u=o.width,s=u&&e.matchPatterns[u]||e.matchPatterns[e.defaultMatchWidth],d=a.match(s);if(!d)return null;var c,l=d[0],m=u&&e.parsePatterns[u]||e.parsePatterns[e.defaultParseWidth];return c="[object Array]"===Object.prototype.toString.call(m)?r(m,function(e){return e.test(l)}):i(m,function(e){return e.test(l)}),c=e.valueCallback?e.valueCallback(c):c,c=o.valueCallback?o.valueCallback(c):c,{value:c,rest:a.slice(l.length)}}}function i(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}function r(e,t){for(var n=0;n0;)n[a]=arguments[a+2];if(!v(e))return e;var i=e.attributes||e.props,r=I.h(e.nodeName||e.type,i,e.children||i&&i.children),o=[r,t];return n&&n.length?o.push(n):t&&t.children&&o.push(t.children),p(I.cloneElement.apply(void 0,o))}function v(e){return e&&(e instanceof J||e.$$typeof===L)}function w(e,t){return t._refProxies[e]||(t._refProxies[e]=function(n){t&&t.refs&&(t.refs[e]=n,null===n&&(delete t._refProxies[e],t=null))})}function b(e){var t=e.nodeName,n=e.attributes;if(n&&"string"==typeof t){var a={};for(var i in n)a[i.toLowerCase()]=i;if(a.ondoubleclick&&(n.ondblclick=n[a.ondoubleclick],delete n[a.ondoubleclick]),a.onchange&&("textarea"===t||"input"===t.toLowerCase()&&!/^fil|che|rad/i.test(n.type))){var r=a.oninput||"oninput";n[r]||(n[r]=z([n[r],n[a.onchange]]),delete n[a.onchange])}}}function y(e){var t=e.attributes;if(t){var n=t.className||t.class;n&&(t.className=n)}}function M(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function k(e,t){for(var n in e)if(!(n in t))return!0;for(var a in t)if(e[a]!==t[a])return!0;return!1}function P(e){return e&&e.base||e}function W(){}function x(e){function t(e,t){S(this),A.call(this,e,t,U),N.call(this,e,t)}return e=M({constructor:t},e),e.mixins&&T(e,j(e.mixins)),e.statics&&M(t,e.statics),e.propTypes&&(t.propTypes=e.propTypes),e.defaultProps&&(t.defaultProps=e.defaultProps),e.getDefaultProps&&(t.defaultProps=e.getDefaultProps()),W.prototype=A.prototype,t.prototype=M(new W,e),t.displayName=e.displayName||"Component",t}function j(e){for(var t={},n=0;n1)for(var n=1;n0,o=i?(r+a(t))%r:a(t);return n*r+o}t.a=i;var r=6e4},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";function a(e,t){o.a(2,arguments);var n=r.a(e),a=i.a(t);return isNaN(a)?new Date(NaN):a?(n.setDate(n.getDate()+a),n):n}t.a=a;var i=n(6),r=n(1),o=n(0)},function(e,t,n){"use strict";function a(e,t){o.a(1,arguments);var n=t||{},a=n.locale,u=a&&a.options&&a.options.weekStartsOn,s=null==u?0:r.a(u),d=null==n.weekStartsOn?s:r.a(n.weekStartsOn);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var c=i.a(e),l=c.getDay(),m=(l0?1:o}t.a=a;var i=n(1),r=n(0)},function(e,t,n){"use strict";var a=n(48),i=n(341),r=n(35),o=n(36),u=n(37),s={code:"en-US",formatDistance:a.a,formatLong:i.a,formatRelative:r.a,localize:o.a,match:u.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};t.a=s},function(e,t,n){var a=n(51);e.exports=function(e,t,n){if(a(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,a){return e.call(t,n,a)};case 3:return function(n,a,i){return e.call(t,n,a,i)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports={}},function(e,t,n){var a=n(104),i=n(70);e.exports=function(e){return a(i(e))}},function(e,t,n){var a=n(70);e.exports=function(e){return Object(a(e))}},function(e,t,n){"use strict";function a(e){o.a(1,arguments);var t=i.a(e),n=t.getFullYear(),a=new Date(0);a.setFullYear(n+1,0,4),a.setHours(0,0,0,0);var u=r.a(a),s=new Date(0);s.setFullYear(n,0,4),s.setHours(0,0,0,0);var d=r.a(s);return t.getTime()>=u.getTime()?n+1:t.getTime()>=d.getTime()?n:n-1}t.a=a;var i=n(1),r=n(25),o=n(0)},function(e,t,n){"use strict";function a(e,t,n,a){return i[e]}t.a=a;var i={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"}},function(e,t,n){"use strict";function a(e,t){var n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"}var i=n(3),r={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},o={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},u={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},s={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},d={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},c={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},l={ordinalNumber:a,era:i.a({values:r,defaultWidth:"wide"}),quarter:i.a({values:o,defaultWidth:"wide",argumentCallback:function(e){return Number(e)-1}}),month:i.a({values:u,defaultWidth:"wide"}),day:i.a({values:s,defaultWidth:"wide"}),dayPeriod:i.a({values:d,defaultWidth:"wide",formattingValues:c,defaultFormattingWidth:"wide"})};t.a=l},function(e,t,n){"use strict";var a=n(4),i=n(5),r=/^(\d+)(th|st|nd|rd)?/i,o=/\d+/i,u={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},s={any:[/^b/i,/^(a|c)/i]},d={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},c={any:[/1/i,/2/i,/3/i,/4/i]},l={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},m={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},f={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},h={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},p={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},v={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(e){return parseInt(e,10)}}),era:i.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:i.a({matchPatterns:d,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:i.a({matchPatterns:l,defaultMatchWidth:"wide",parsePatterns:m,defaultParseWidth:"any"}),day:i.a({matchPatterns:f,defaultMatchWidth:"wide",parsePatterns:h,defaultParseWidth:"any"}),dayPeriod:i.a({matchPatterns:p,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};t.a=v},function(e,t,n){"use strict";function a(e,t){for(var n=e<0?"-":"",a=Math.abs(e).toString();a.length=t.length?{value:void 0,done:!0}:(e=a(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t){e.exports=!0},function(e,t,n){var a=n(103),i=n(75);e.exports=Object.keys||function(e){return a(e,i)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){"use strict";function a(e,t){o.a(2,arguments);var n=r.a(e),a=i.a(t);if(isNaN(a))return new Date(NaN);if(!a)return n;var u=n.getDate(),s=new Date(n.getTime());return s.setMonth(n.getMonth()+a+1,0),u>=s.getDate()?s:(n.setFullYear(s.getFullYear(),s.getMonth(),u),n)}t.a=a;var i=n(6),r=n(1),o=n(0)},function(e,t,n){"use strict";function a(e,t){o.a(2,arguments);var n=r.a(e).getTime(),a=i.a(t);return new Date(n+a)}t.a=a;var i=n(6),r=n(1),o=n(0)},function(e,t,n){"use strict";function a(e){o.a(1,arguments);var t=i.a(e),n=new Date(0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),r.a(n)}t.a=a;var i=n(34),r=n(25),o=n(0)},function(e,t,n){"use strict";function a(e,t){r.a(2,arguments);var n=i.a(e),a=i.a(t);return n.getTime()===a.getTime()}t.a=a;var i=n(57),r=n(0)},function(e,t,n){"use strict";function a(e,t,n){n=n||{};var a;return a="string"==typeof i[e]?i[e]:1===t?i[e].one:i[e].other.replace("{{count}}",t),n.addSuffix?n.comparison>0?"in "+a:a+" ago":a}t.a=a;var i={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}}},function(e,t,n){"use strict";function a(e,t){o.a(2,arguments);var n=i.a(t);return r.a(e,-n)}t.a=a;var i=n(6),r=n(45),o=n(0)},function(e,t,n){"use strict";function a(e,t){o.a(1,arguments);var n=t||{},a=n.locale,u=a&&a.options&&a.options.weekStartsOn,s=null==u?0:i.a(u),d=null==n.weekStartsOn?s:i.a(n.weekStartsOn);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var c=r.a(e),l=c.getUTCDay(),m=(l0?Math.floor(n):Math.ceil(n)}t.a=a;var i=n(59),r=n(0)},function(e,t,n){"use strict";function a(e){r.a(1,arguments);var t=i.a(e);return t.setDate(1),t.setHours(0,0,0,0),t}t.a=a;var i=n(1),r=n(0)},function(e,t,n){"use strict";function a(e){r.a(1,arguments);var t=i.a(e),n=t.getUTCDay(),a=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-a),t.setUTCHours(0,0,0,0),t}t.a=a;var i=n(1),r=n(0)},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";t.__esModule=!0;var a=n(192),i=function(e){return e&&e.__esModule?e:{default:e}}(a);t.default=function(){function e(e,t){for(var n=0;n0?a:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var a=n(14),i=n(212),r=n(75),o=n(73)("IE_PROTO"),u=function(){},s=function(){var e,t=n(66)("iframe"),a=r.length;for(t.style.display="none",n(105).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(" - @@ -97,5 +85,23 @@ + +
+ + +
+