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

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


Python 英文单词统计有什么好的库推荐吗?
26 回复

from collections import Counter 这个可以嘛?


collections.Counter 就行,标准库里的,简单直接。

from collections import Counter
import re

text = "Hello world! Hello Python. Python is great."
words = re.findall(r'\b\w+\b', text.lower())  # 提取单词并转小写
word_counts = Counter(words)
print(word_counts.most_common())
# 输出: [('hello', 2), ('python', 2), ('world', 1), ('is', 1), ('great', 1)]

如果文本量大或需要更多语言处理(比如词干提取、停用词过滤),可以用 nltk

import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

nltk.download('punkt')
nltk.download('stopwords')

text = "Hello world! Hello Python. Python is great."
words = word_tokenize(text.lower())
stop_words = set(stopwords.words('english'))
filtered_words = [w for w in words if w.isalpha() and w not in stop_words]
word_counts = Counter(filtered_words)
print(word_counts.most_common())

总结:简单需求用 Counter,需要语言学处理上 nltk

一把梭上 nltk

1、请先查一下“如何提出好的问题”。
2、什么叫做“英文单词统计”和“好”?在这里的定义到底是啥?

?为啥我觉得问题没毛病?你是杠精吧

“好”的确可以有很多 metrics 可以选择,机器学习、统计里面多到数不清。

单词统计,如果是普通英文文章的话,。。。如果不是的话,也许还要加点描述。

google:如何正确提问

大批杠精来袭,他们先会以“智者”的姿态教你如何提问,然后再化身成“语文老师”挑你的语句毛病。为了显得自己有多么与众不同,一个“好”字都可以让他们玩出花, 一个个装模作样的样子真令人作呕。

感谢支持

普通英文文章

Python 自带的 Counter,nltk 库的 FreqDist 都可以

我之前实验,好像用 defaultdict(int) 居然比 Counter 快,不知道为啥。

这个是 NLP 了,如果只是简单的统计词频,使用词袋的方式, Counter defaultdict(int)两个都是比较简单并且高效的,其他的方法也挺多,比如 TF-IDF 之类

PS: NLP 学不会,我已跑路

这个不需要什么库,单词挨个录入 redis 自增计数即可
估计也就 30 行代码的样子 妥妥的

NLTK 分词+统计词频都有现成的方法可以搞定

楼上的给出的解决方法大部分都可行,但是如果仅仅是统计,并且不像投入过多精力#16 楼是个一个好办法(属于一个达成目标又不需要学习未涉猎知识的方法)。其他的分词统计什么的可能会在你很晕的时候绕晕你。当然 我推荐你去看下统计词频,其实你的需求很容易实现。ps:因为你提问的描述 我默认你了解的不多了哈,猜测错误当我没说。

感谢,的确了解不多,大家推荐使用 NLTK,已经用上了,目前效果还可以

Counter 不就完事了?

虽然你有不必要的情绪,但我觉得这不属于问题的范畴。如果你翻看过我的发帖,你会发现我之所以回复你是因为我之前做过一些相关的工作,觉得也许对你可能有所帮助。至于有些人觉得我有什么姿态,我只能说是相如心。

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

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

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

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

并没有直接回答你的问题,但还是希望对你有所帮助。

谢谢你的回答。情绪不会有,求问,当然是提问者的原因,所以我增加了描述。

我搞错了发帖人和楼下回复人了。道个歉(捂脸.gif ……)

回到顶部