建立一个新的工程根据所给的一段文本,构建单词表和出现次数的字典。 输出频率最高的10个单词,去除冠词、代词和介词等无意义的单词。 可以定义多个函数分别实现独立的功能。在主模块中串联各个函数,实现总体上的功能。
时间: 2024-09-12 10:03:25 浏览: 49
对一篇文章进行按单词统计后哈弗曼编码解码
为了建立一个新的工程并分析文本,你可以按照以下步骤操作:
1. **预处理文本**[^1]:
- 导入所需的库(如`nltk`用于分词和停用词过滤)。
```python
import nltk
from nltk.corpus import stopwords
```
2. **分词与预处理**:
- 使用`nltk.word_tokenize()`函数分词。
```python
def tokenize_text(text):
return nltk.word_tokenize(text.lower()) # 转换为小写以统一大小写
text = "这里输入你的文本..."
words = tokenize_text(text)
```
3. **创建词汇表**:
- 去除停用词和无意义词(如冠词、代词和介词)。
```python
stop_words = set(stopwords.words('english'))
filtered_words = [word for word in words if word not in stop_words and len(word) > 2] # 只保留长度大于2的单词
```
4. **构建词汇表和计频**:
- 创建空字典存储单词及其频率。
```python
word_freq = {}
for word in filtered_words:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1
```
5. **找出最常见的单词**:
- 获取频率最高的10个单词。
```python
top_10_words = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)[:10]
```
6. **输出结果**:
- 打印最高频率的单词。
```python
print("Top 10 most frequent words:")
for word, freq in top_10_words:
print(f"{word}: {freq}")
```
阅读全文