V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
lixuda
V2EX  ›  Python

Python 英文单词统计有什么好的库吗?

  •  
  •   lixuda · 2018-09-11 10:34:21 +08:00 · 3372 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。

    python 英文单词统计有什么好的库吗?谢谢

    第 1 条附言  ·  2018-09-11 12:24:17 +08:00
    描述下:
    抓取大量英文内容,需要统计出现的单词数量,以及按数量排行
    好的库:
    意思说 python 肯定好很多可以实现的办法,当然我也 Google 过,但是能力有限,不确定是否还有更好的库。

    PS:
    我的理解,这个不是写论文,没有太在意的具体的词汇解释吧。感谢回答我的人。

    我是机械、电子行业,希望大神们可以原谅下某些术语的阐述。
    25 条回复    2018-09-27 23:01:21 +08:00
    holajamc
        1
    holajamc  
       2018-09-11 10:38:11 +08:00
    from collections import Counter 这个可以嘛?
    PythonAnswer
        2
    PythonAnswer  
       2018-09-11 10:41:02 +08:00 via iPhone
    一把梭上 nltk
    Aether
        3
    Aether  
       2018-09-11 11:25:32 +08:00   ❤️ 1
    1、请先查一下“如何提出好的问题”。
    2、什么叫做“英文单词统计”和“好”?在这里的定义到底是啥?
    zwithz1998
        4
    zwithz1998  
       2018-09-11 11:35:32 +08:00
    @Aether ?为啥我觉得问题没毛病?你是杠精吧
    shm7
        5
    shm7  
       2018-09-11 11:49:06 +08:00 via iPhone
    @zwithz1998 “好”的确可以有很多 metrics 可以选择,机器学习、统计里面多到数不清。

    单词统计,如果是普通英文文章的话,。。。如果不是的话,也许还要加点描述。
    UN2758
        6
    UN2758  
       2018-09-11 11:52:11 +08:00
    google:如何正确提问
    SimbaPeng
        7
    SimbaPeng  
       2018-09-11 12:14:25 +08:00   ❤️ 4
    大批杠精来袭,他们先会以“智者”的姿态教你如何提问,然后再化身成“语文老师”挑你的语句毛病。为了显得自己有多么与众不同,一个“好”字都可以让他们玩出花, 一个个装模作样的样子真令人作呕。
    lixuda
        8
    lixuda  
    OP
       2018-09-11 12:24:53 +08:00
    @SimbaPeng 感谢支持
    lixuda
        9
    lixuda  
    OP
       2018-09-11 12:25:23 +08:00
    @shm7 普通英文文章
    EchoUtopia
        10
    EchoUtopia  
       2018-09-11 12:29:22 +08:00 via Android
    mimzy
        11
    mimzy  
       2018-09-11 12:29:51 +08:00 via Android
    NLTK
    Procumbens
        12
    Procumbens  
       2018-09-11 12:31:41 +08:00 via iPad
    Python 自带的 Counter,nltk 库的 FreqDist 都可以
    binxin
        13
    binxin  
       2018-09-11 12:32:58 +08:00
    @holajamc 我之前实验,好像用 defaultdict(int) 居然比 Counter 快,不知道为啥。
    Comphuse
        14
    Comphuse  
       2018-09-11 12:48:28 +08:00
    Les1ie
        15
    Les1ie  
       2018-09-11 13:19:27 +08:00
    这个是 NLP 了,如果只是简单的统计词频,使用词袋的方式, `Counter` `defaultdict(int)`两个都是比较简单并且高效的,其他的方法也挺多,比如 TF-IDF 之类

    PS: NLP 学不会,我已跑路
    ywgx
        16
    ywgx  
       2018-09-11 13:28:16 +08:00 via Android
    这个不需要什么库,单词挨个录入 redis 自增计数即可
    估计也就 30 行代码的样子 妥妥的
    jagger2048
        17
    jagger2048  
       2018-09-11 13:34:43 +08:00
    NLTK 分词+统计词频都有现成的方法可以搞定
    bbbai
        18
    bbbai  
       2018-09-11 13:44:25 +08:00
    楼上的给出的解决方法大部分都可行,但是如果仅仅是统计,并且不像投入过多精力#16 楼是个一个好办法(属于一个达成目标又不需要学习未涉猎知识的方法)。其他的分词统计什么的可能会在你很晕的时候绕晕你。当然 我推荐你去看下统计词频,其实你的需求很容易实现。ps:因为你提问的描述 我默认你了解的不多了哈,猜测错误当我没说。
    lixuda
        19
    lixuda  
    OP
       2018-09-11 13:55:21 +08:00
    @bbbai 感谢,的确了解不多,大家推荐使用 NLTK,已经用上了,目前效果还可以
    zhzer
        20
    zhzer  
       2018-09-11 13:58:51 +08:00
    Counter 不就完事了?
    holajamc
        21
    holajamc  
       2018-09-11 16:26:18 +08:00
    Aether
        22
    Aether  
       2018-09-20 12:50:23 +08:00 via iPhone
    虽然你有不必要的情绪,但我觉得这不属于问题的范畴。如果你翻看过我的发帖,你会发现我之所以回复你是因为我之前做过一些相关的工作,觉得也许对你可能有所帮助。至于有些人觉得我有什么姿态,我只能说是相如心。

    我看了下回复,大概意思没有任何回复者至少和我一样,曾经真的动手解决过类似的实际问题。

    如果你只需要简单粗糙,那么按照空格分拆就足够好,数组就可以满足你的需要。

    如果你需要清洗,问题就变多。英文里有些单词的变化形态是跟着句型走的。所以你需要先做句子拆分,然后根据上下文做词性还原。有了词性,你才能把单词还原到正确的原始形态,才能得出足够精确的统计。

    关于词性还原所需要的库我记得有专门的,大约是 2-3 个可选,各有优劣。自然语言库很强大但也有不足之处,其中也包括比较繁琐的部分。此外还有大小写、专有名词等问题,都需要一一解决。

    并没有直接回答你的问题,但还是希望对你有所帮助。
    lixuda
        23
    lixuda  
    OP
       2018-09-20 13:03:10 +08:00
    @Aether 谢谢你的回答。情绪不会有,求问,当然是提问者的原因,所以我增加了描述。
    Aether
        24
    Aether  
       2018-09-20 13:17:48 +08:00
    @lixuda 我搞错了发帖人和楼下回复人了。道个歉(捂脸.gif ……)
    wizardforcel
        25
    wizardforcel  
       2018-09-27 23:01:21 +08:00 via Android
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   978 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:19 · PVG 04:19 · LAX 13:19 · JFK 16:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.