Github上的机器学习资源大全中文版整理(先整理一下,之后争取每个都了解一下)

Github地址: https://github.com/jobbole/awesome-machine-learning-cn

      有时候会被问到你平时用过哪些机器学习相关的工具包呀?不能每次都只答个sklearn呀(虽然sklearn真的很好用~),这个github总结得很全了,这篇博客主要梳理一下自然语言处理和数据挖掘相关的资料,先整理一下,之后争取每个都用一下。由于工作和学习环境的关系,主要针对的是Python语言和C++(用得少),Scala目前还没有用过,但是可以了解一下,作为技术积累。感觉julia语言(集合了Python、C++、R)很有潜力~


Python语言

NLP方向:

1. jieba:中文断词工具。(常用)

(使用非常方便, 可以自定义词典,可以分词,词性分析,基于TF-IDF和TextRank提取关键词。)

官网为: https://github.com/fxsjy/jieba#jieba-1  (感谢作者的无私奉献,加膜拜大佬)

网上有很多对jieba的源码进行解读的,感兴趣的同学可以学习一下,并且python的源码也方便按照自己的需求进行一些修改。

2.SnowNLP:中文文本处理库。(没用过)

官网为:https://github.com/isnowfy/snownlp(感谢作者的无私奉献,加膜拜大佬)

空余时间可以看看源码,是对NLP基础知识的一个加深。

看起来蛮厉害的样子,还没有用过,之后可以一试。不过情感分析和文本分类针对不同的领域、任务和数据有不同的特性,一般还是自己训练合适的模型,通用的模型效果很难说。

转何成拼音,还有其他的一些Python库也很好用,比如xpinyin(https://github.com/lxneng/xpinyin),使用也相当方便。

繁体转换成简体这个没有试过,个人感觉这一步可以用来预处理,将所有的文本都转换成简体,尤其是针对评论类的不规则文本。

Tokenization(分割成句子),一些建模任务倾向于以段落或句子的形式输入文本,例如word2vec。你可以先将文本分割成句子,再将每个句子分割成单词,然后将每个句子保存到文件中,每行一个句子。

文本相似,没有尝试过,也算是一个分类问题,之前蚂蚁金服有个比赛就是判断两条文本是否相似,主要应用场景是智能客服,也是要根据具体的任务和数据而训练合适的模型。

3.NLTK,做英文NLP的人应该都用过此平台,专门有一本书讲了这个平台的用法。

官网在这里:http://www.nltk.org/

可以用来分词,英文并不是不需要分词的,只是和中文不同,英文是有空格作为天然分隔符的。还可以用来命名实体识别,句法分析,之后做英文的NLP的时候可以尝试一下。

4.Pattern,数据挖掘、自然语言处理、机器学习与网络分析。文档完善,之后可以尝试一下~

官网在这里:https://www.clips.uantwerpen.be/pattern

  • 数据挖掘:包括网络服务(Google,Twitter,Wikipedia),网络蜘蛛,HTML DOM解析
  • 自然语言处理
  • 机器学习
  • 网络分析

5.TextBlob:为普通自然语言处理任务提供一致的API,以NLTK和Pattern为基础,并和两者都能很好兼容。

官网在这里:https://textblob.readthedocs.io/en/dev/

6.nut:自然语言理解工具包,主要用来做CLSCL(跨语言结构对应学习)和NER(命名实体识别)

官网:https://github.com/pprett/nut

7.gensim:用来训练词向量

https://radimrehurek.com/gensim/models/word2vec.html


机器学习方向:

1. scikit-learn:基于SciPy的机器学习模块。

官网:http://scikit-learn.org/ 实在是很好用,里面的文档都应该过一遍,体会一下各个方法的区别。

2.MLlib in Apache Spark:Spark下的分布式机器学习库。

官网:http://spark.apache.org/docs/latest/mllib-guide.html 学习一下呀~

猜你喜欢

转载自blog.csdn.net/baidu_33718858/article/details/82223621