V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alexapollo
V2EX  ›  程序员

one-python 周更: markdown、下载器、NLP、数据分析、深度学习

  •  
  •   alexapollo ·
    geekan · 2016-06-12 19:41:53 +08:00 · 3818 次点击
    这是一个创建于 2867 天前的主题,其中的信息可能已经有所发展或是发生改变。

    one-python 是 Python 的最佳库索引,致力于:
    收集各领域最好的 Python 库,让 Python 更加优雅。

    新增收录项目:

    • mistune - lepture 的 markdown 解析器,纯 Python 实现,速度不错
    • You-Get - 一个较为通用的下载器,能下非常多网站的视频、音频
    • nltk - 文本处理非常常用的一个库,不用多说(但看上去有被 sklearn 合并的趋势)
    • pandas - 非常优秀的一个库,常用在数据分析上
    • TensorFlow - 很强的一个深度学习库,通用性较强,更新速度很快
    18 条回复    2016-06-13 21:08:52 +08:00
    WoadZS
        1
    WoadZS  
       2016-06-12 20:40:05 +08:00
    准备收录 matplotlib 吗?一个 python 数据分析的作图包
    另外我用 Visual Studio 2015 做 IDE , matplotlib 貌似不能运行。。不知道哪里设置不对。。。
    alexapollo
        2
    alexapollo  
    OP
       2016-06-12 20:44:40 +08:00   ❤️ 1
    @WoadZS 很优秀的一个包,有外国网友提过,我也用了很长时间(但没单独列出来),打算收录了
    menc
        3
    menc  
       2016-06-12 21:17:33 +08:00
    看来准备每增加一个库就发一篇帖子。
    早就说过楼主在不熟悉的领域并没有足够的经验支持楼主筛选出合适的 package 。
    甚至连领域都分得七零八碎。
    一个 nlp 领域,一个 chinese word segmentor 领域,这是要逆天的节奏?
    中文分词就不是 nlp 了么。
    那这么算的话
    ner 算不算一个领域?
    pos 算不算一个领域?
    alexapollo
        4
    alexapollo  
    OP
       2016-06-12 21:46:13 +08:00
    @menc
    1. 之前的反问你的问题非常清楚,你尚且没有回答,不如先回答之前的问题吧。
    2. 如果你想要完善分类,没问题,请提 PR 。
    3. 请不要人身攻击。我不反对批判性的回答,但人身攻击就有点过分了,其他 V 友也不喜欢看这些无意义的文字。

    最后,所谓的 “不熟悉的领域” 恰好是我的专长,不明白为什么你底气这么足 :)
    xiamx
        5
    xiamx  
       2016-06-12 22:20:05 +08:00
    好像 @menc 并没有人身攻击。 OP 之前的分类领域确实零散,不过看似 OP 在"我不要我不要我没错我没错"之后还是乖乖的更正了分类嘛 https://github.com/geekan/one-python/commit/4f98f37b56659349d9e271844b98b5015b7f6cce
    alexapollo
        6
    alexapollo  
    OP
       2016-06-12 22:29:20 +08:00
    @xiamx 原来写的跟现在写的最大的区别:原来的写法有些人会有歧义 ╮(╯▽╰)╭ 我也懒得纠正
    menc
        7
    menc  
       2016-06-13 01:43:04 +08:00
    @xiamx
    @alexapollo

    这位楼主愤愤不平,也不知道为了什么,明明最简单的问题都无法回答。

    一、关于 nlp 的问题,
    你正面回答,中文分词是不是 nlp 的一个子领域?
    你要觉得我说的没道理,就让 readme 一直这样中文分词和自然语言处理并列排列,让大家来评论下是否合适。

    二、关于 caffe 的问题,
    你之前写的是 machine learning + cv ,在这个分类下,当仁不让是 OpenCV 。
    openCV 在引入 GSoC 之后,更新迭代速度非常快。每年 cvpr 的算法,第一个实现并且发布的就是 OpenCV ,可以说, cvpr 用了什么算法, OpenCV 就会引入什么算法,所以近几年的 OpenCV 更新大都是机器学习的算法。
    试问,如果我要用 svm 做 object detection , caffe 能不能实现?
    如果我要对图像进行预处理,如局部自适应二值化----这几乎是每个图像处理问题的必备步骤, OpenCV 是一个语句的事情, caffe 呢?
    如果要提取图像直方图信息做特征, caffe 又要怎么处理?

    总而言之,机器学习来进行图像处理的工具包,应当包括机器学习算法,也应当包括基本的二值化,直方图,取最小矩形等常用算法,这样看来,应当是 OpenCV 。

    而你悄无声息地就改了 readme ,然后说什么“懒得纠正有些人”之类的话,实在是让人笑掉大牙。
    hepochen
        8
    hepochen  
       2016-06-13 02:36:43 +08:00
    你好呀。

    Best Ones, 这样的目标,非常难嘛。总会有人质疑的,也很正常不是,但总不至于出现人身攻击呀。肯定是自己想太多了。

    很有参考价值,但有些地方还是不容易令人信服的,即使是“ Best ”也是有局限性的,比如 mistune 的性能明显比不过 misaka ,实际生产环境使用是要慎重的,同样的有 jieba ,这是一个非常棒的库,但是实际生产环境(直接)使用,同样也是性能问题,这就是局限性,有些应用可能允许这个局限性不被触碰到,但声明下,或许会更好。

    Django 是最好的? 这个要分场景吧。 all in one 的框架模式来说,它毋庸置疑是最好的,但是很多应用实际上是不会用 all in one 类型的框架,这也是局限性,或许分一两个子分类,会不会更好一些呢?

    提到了 IPython ,要不要考虑提一下 jupyter 两者之间的关系呢?

    提到了 httpie ,其实要不要再提一下 mitmproxy ?

    iScipt ,呃,这个相当的不合适吧……

    现在的 List ,感觉是有很强的作者个人倾向性,其实, python 的工具性实在太强,作为个体还有很多我们还没有接触的,接触了也了解不深的。众策众力是一个办法,但也不是一蹴而就的,与其如此,不如考虑先从这个样本集里再抽离 “ Best Ones ”? https://github.com/vinta/awesome-python

    不过,真的是太难了,令人望而生畏。加油呀。
    linuxchild
        9
    linuxchild  
       2016-06-13 09:28:38 +08:00 via Android
    没点进来之前我以为又重复发帖了呢
    alexapollo
        10
    alexapollo  
    OP
       2016-06-13 11:06:11 +08:00
    @menc
    一、 NLP 相关

    你没搞明白为什么现在不应该做这种「分类」。
    试问一个一站式的抓取、抽取、文本排重、自动入库的脚本,应该分在哪一类?
    很多库在这个阶段根本就不该分类,这个阶段用文本有何不可?

    - 就比如列表中的 newspaper ,求解它分哪一类合适?请你给个回答。

    而且,你这喷点也有点萌,说一个项目没做什么实在是太简单了:
    - 明显 one-python 就是 awesome-python 的一个子集,为什么要用 one-python , awesome-python 大而全多好?
    - 如果你有这个观点,还请出门左转。

    二、 Machine Learning + CV 下库选择标准

    试问,如果我要用 svm 做 object detection , caffe 能不能实现?
    > 那我就要问你一个问题了, object detection 现在研究最热的是哪几篇论文?现在你还在用 svm 做 object detection 吗?

    总而言之,机器学习来进行图像处理的工具包,应当包括机器学习算法,也应当包括基本的二值化,直方图,取最小矩形等常用算法,这样看来,应当是 OpenCV 。
    > 二值化、直方图、最小矩形纯粹是图像处理,请问跟 ML+CV 这个细分方向有毛线关系?
    alexapollo
        11
    alexapollo  
    OP
       2016-06-13 11:32:37 +08:00
    @hepochen

    几个问题都非常好:

    - misaka :在 issue 中有提到,但现在选择了纯 Python 的 mistune ,这里是两可。工业化来讲, misaka 肯定好得多。但开发而言, mistune 会方便很多。欢迎提 issue 一起优化这里。
    - jieba :有相关的性能评测吗?我倒是有看过不同语言的 jieba 性能评测, CPP 会比 Python 性能高大约 10 倍。(不出意料)
    - Django :是的,它有自己的局限性,而且也未必非常优雅,但它在很多场景帮助使用者避免了很多问题、节省非常多的时间,其他库这方面的缺点太严重了。
    - 子分类:你觉得哪些库考虑进来比较合适?
    - utilities :混入了几个下载工具,对工程来说没有必要,是可以考虑移除。
    - awesome-python :项目就是参考 awesome-python 构建的,但确实是,难免覆盖率比较低,还需要长期的贡献。

    社区化解决这些问题是一个好方法,但很多时候『 Best 』本来就是个人主观 —— 就像川普和希拉里可能都不算特别好的选择,但你必须选一个。
    menc
        12
    menc  
       2016-06-13 11:48:32 +08:00
    @alexapollo
    不辩, cvpr 上面都用了什么算法,你自己去看看。最烦鼓吹 NN 是银弹的,有了 NN 就说其他机器学习算法没用了,过时了,大家不用了,其实 cvpr 的 paper 你自己看过几篇?
    还要强行假装专业。
    你究竟知道不知道 cvpr 是什么地位?你究竟看过 cvpr 的 paper 没有?你究竟有没有想过 cvpr 中使用机器学习算法的地方都用了哪些机器学习算法?还是你只看了两篇 NN 就说大家都用 NN ?
    cvpr2015 accepted paper 603 篇,深度学习相关的只有几十篇,你的视野还是太狭隘。
    menc
        13
    menc  
       2016-06-13 11:51:10 +08:00
    如果 OpenCV 每年及时跟进 cvpr 中的算法都不能算 state of art ,那就没谁能算了。
    一个机器学习系统不是只有机器学习算法, data preprocess , feature retrieving , 都是机器学习系统的一部分。你竟然还说二值化,直方图和机器学习+CV 没用,叫人怎么说你?
    menc
        14
    menc  
       2016-06-13 11:51:32 +08:00
    @menc 没用->没关系
    menc
        15
    menc  
       2016-06-13 11:54:40 +08:00
    既然你问了,我就回复你, cvpr2015 光是关于 kernel method 相关的,就有十多篇,涵盖了 CV 的各个方面,也包括 video object detection 等领域。
    alexapollo
        16
    alexapollo  
    OP
       2016-06-13 19:33:49 +08:00
    @menc

    得了,你连 Google 四年前的技术都不知道,这几年的论文都没看过,你随便抓个搞学术的人问问现在 CVPR 主流是什么好吗?

    我们就用数据说话,就按你说的 object detection 领域, google scholar 搜索 object detection 关键字,看看 2012 年之后引用最高的是哪一篇?(提示:第一篇就是 CVPR )
    https://scholar.google.com/scholar?as_ylo=2012&q=object+detection&hl=en&as_sdt=0,5
    alexapollo
        17
    alexapollo  
    OP
       2016-06-13 19:34:55 +08:00
    @menc 你要说 CVPR 现在及以后的主流是 SVM 那我也没办法。
    xiamx
        18
    xiamx  
       2016-06-13 21:08:52 +08:00
    @alexapollo 之前 @menc 没有说 DNN 不是 state of the art ,只是说了 SVM 依然有一定地位,不能说 DNN 比 SVM 在正确率上高出一个百分点就可以完全忽略 SVM 了吧。而且近年来又是 Deep learning 热潮你又不是不知道, citation 多很自然么。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2875 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:19 · PVG 23:19 · LAX 08:19 · JFK 11:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.