能否提供一份用于读取企业年报文本、提取关键词并统计词频的Python代码示例?
时间: 2024-11-09 07:19:59 浏览: 32
当然可以。要实现这个功能,我们可以使用Python的一些自然语言处理库,如`nltk`(自然语言工具包)进行分词和词频统计,以及`pandas`进行数据处理。以下是一个简单的示例代码:
```python
import nltk
from nltk.corpus import stopwords
from collections import Counter
import pandas as pd
# 读取文本文件(假设年报存储在一个名为'annual_report.txt'的文件中)
def read_text(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
text = file.read()
return text
# 分词和停用词移除
def tokenize_and_remove_stopwords(text):
# 下载nltk停用词,如果没有下载过
nltk.download('stopwords')
stop_words = set(stopwords.words('english'))
# 分词
words = nltk.word_tokenize(text)
# 移除停用词
filtered_words = [word for word in words if word.lower() not in stop_words]
return filtered_words
# 提取关键词并统计词频
def extract_keywords(text):
tokenized_words = tokenize_and_remove_stopwords(text)
frequency = Counter(tokenized_words)
return frequency.most_common(10) # 取最常见的10个关键词
# 使用Pandas将结果转换为DataFrame以便于显示
def display_results(keywords):
df_keywords = pd.DataFrame.from_records([(word[0], word[1]) for word in keywords],
columns=['Keyword', 'Frequency'])
print(df_keywords)
if __name__ == "__main__":
file_path = "annual_report.txt"
annual_report_text = read_text(file_path)
top_keywords = extract_keywords(annual_report_text)
display_results(top_keywords)
```
在这个例子中,你需要先确保你的文本文件(年度报告)是在项目目录下或者提供了正确的路径。运行这段代码后,它会返回文本中最常见的10个非停用词。
阅读全文