python统计文本文件词频
时间: 2024-09-28 18:06:03 浏览: 41
在Python中,你可以使用`collections`模块中的`Counter`类来统计文本文件中的词频。这里是一个简单的步骤:
1. 首先,你需要打开并读取文本文件。可以使用内置的`open()`函数,并指定模式为'r'(读取)。
```python
with open('filename.txt', 'r', encoding='utf-8') as file:
text = file.read()
```
2. 接着,将文本分割成单词列表。通常我们会去除标点符号、转换为小写等预处理操作,然后使用`split()`方法。
```python
import string
words = text.translate(str.maketrans('', '', string.punctuation)).lower().split()
```
3. 使用`Counter`计算每个单词的频率。
```python
word_count = Counter(words)
```
4. 最后,你可以遍历这个字典,打印出最常见的单词及其频率。
```python
for word, freq in word_count.most_common():
print(f'{word}: {freq}')
```
如果你想保存结果到文件中,可以用`json`或`pickle`模块将其序列化。
相关问题
python对文本进行词频分析,并用excel统计
好的,用Python进行文本词频分析可以使用NLTK库。首先需要安装NLTK库,安装命令如下:
```
pip install nltk
```
然后,可以按照以下步骤进行文本词频分析:
1. 导入所需库
```python
import nltk
from nltk import FreqDist
from nltk.corpus import stopwords
import pandas as pd
```
2. 读取文本文件并进行分词
```python
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
tokens = nltk.word_tokenize(text)
```
3. 去除停用词和标点符号
```python
stop_words = set(stopwords.words('english'))
filtered_tokens = [token.lower() for token in tokens if token.isalpha() and token.lower() not in stop_words]
```
4. 统计词频并输出前10个高频词
```python
freq_dist = FreqDist(filtered_tokens)
print(freq_dist.most_common(10))
```
5. 导出词频统计结果到Excel
```python
df = pd.DataFrame(freq_dist.items(), columns=['Word', 'Frequency'])
df.to_excel('freq_dist.xlsx', index=False)
```
以上就是Python进行文本词频分析并用Excel统计的步骤。
Python中文文本分析词频代码
以下是一个简单的Python中文文本分析词频的代码示例:
```python
import jieba
from collections import Counter
# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba分词
words = jieba.cut(text)
# 统计词频
word_counts = Counter(words)
# 打印出现频率最高的前10个词语
for word, count in word_counts.most_common(10):
print(word, count)
```
这个代码示例中,我们使用了jieba分词库来将文本分成一个个词语,并使用Counter类统计每个词语出现的次数。最后,我们打印出现频率最高的前10个词语,可以根据需要调整打印数量。
阅读全文