EDGAR-CRAWLER:释放财务文档的力量 🚀
是否厌倦了翻阅100多页的无尽财务报告,难以提取有意义的洞察?
📊 EDGAR-CRAWLER
是一个开源且优化的工具包,用于从财务报告中检索关键信息。它可以爬取 SEC EDGAR 数据库中的任何报告,该数据库是美国所有上市公司的网络存储库。
最重要的是,除了像其他标准工具包一样下载 EDGAR 文件外,EDGAR-CRAWLER
还可以预处理并将冗长且非结构化的文档转换为清晰易用的 JSON 文件。
EDGAR-CRAWLER
有两个核心模块:
📥🕷️ 商业文档爬取:利用 edgar_crawler.py
模块的力量,轻松爬取和下载您指定年份内每家上市公司的财务报告。
🔍📑 项目提取:使用 extract_items.py
模块从 10-K 文件(年度报告)中提取和清理特定文本部分,如风险因素或管理层讨论与分析。直接获取最重要的信息核心。
谁能从 EDGAR-CRAWLER
中受益?
📚 学者:通过高效访问和分析财务数据,增强您在经济、金融或商业管理领域的自然语言处理研究。
💼 专业人士:利用全面、易于理解的财务报告,加强财务分析、战略规划和决策制定。
🛠 开发者:使用我们的开源工具包,将财务数据无缝集成到您的模型、应用程序和实验中。
星标历史
🚨 新闻
- 2023-01-16:EDGAR-CORPUS,最大的金融自然语言处理语料库(由
EDGAR-CRAWLER
生成),现已作为 HuggingFace 🤗 数据集卡片提供。详情请见相关资源。 - 2022-10-13:更新了文档并修复了一个小的导入错误。
- 2022-04-03:
EDGAR-CRAWLER
现已支持 Windows 系统。 - 2021-11-11:我们在多米尼加共和国的 ECONLP 2021(EMNLP 工作坊)上展示了 EDGAR-CORPUS,这是我们最初的姊妹项目。
目录
安装
- 开始之前,建议使用 Python 3.8 创建一个新的虚拟环境。我们推荐安装并使用 Anaconda来完成此操作。
- 通过
pip install -r requirements.txt
安装依赖项
用法
-
在运行任何脚本之前,您应该编辑
config.json
文件,该文件配置了我们两个模块的行为。edgar_crawler.py
模块的参数,用于下载财务报告:start_year XXXX
:开始年份范围(默认为2021年)。end_year YYYY
:结束年份范围(默认为2021年)。quarters
:要下载文件的季度(列表)。默认值为:[1, 2, 3, 4]
。filing_types
:要下载的文件类型列表。默认值为:['10-K', '10-K405', '10-KT']
。cik_tickers
:包含CIK或股票代码的列表或文件路径。例如:[789019, "1018724", "AAPL", "TWTR"]
如果是文件,每行提供一个CIK或股票代码。 如果未提供此参数,则工具包将下载所有美国上市公司的年度报告。user_agent
:向SEC EDGAR声明的用户代理(名称/电子邮件)。raw_filings_folder
:存储下载文件的文件夹名称。默认值为'RAW_FILINGS'
。indices_folder
:存储EDGAR TSV文件的文件夹名称。这些用于定位年度报告。默认值为'INDICES'
。filings_metadata_file
:保存报告元数据的CSV文件名。skip_present_indices
:是否跳过已下载的EDGAR索引或仍然下载它们。默认值为True
。
extract_items.py
模块的参数,用于清理和提取已下载的10-K报告中的文本数据:raw_filings_folder
:存储下载文档的文件夹名称。默认值为'RAW_FILINGS'
。extracted_filings_folder
:存储提取文档的文件夹名称。默认值为'EXTRACTED_FILINGS'
。对于每个下载的报告,将创建一个相应的JSON文件,其中包含作为键值对的项目部分。filings_metadata_file
:加载报告元数据的CSV文件名(提供与edgar_crawler.py
中相同的csv文件)。items_to_extract
:要提取的特定项目部分列表。 例如:['7','8']
用于提取"管理层讨论与分析"和"财务报表"部分项目。 默认列表包含所有项目部分。remove_tables
:是否删除主要包含数字(财务)数据的表格。这主要是为了方便NLP研究,在这种研究中,数字表格通常不太有用。skip_extracted_filings
:是否跳过已提取的文件或仍然提取它们。默认值为True
。
-
要从EDGAR下载财务报告,运行
python edgar_crawler.py
。 -
要从已下载的10-K文档中清理和提取特定项目部分,运行
python extract_items.py
。- 提醒:我们目前支持提取10-K文档。
引用
EDGAR-CRAWLER论文正在编写中。在此之前,请引用在2021年EMNLP(多米尼加共和国蓬塔卡纳)举行的第三届经济学与自然语言处理(ECONLP)研讨会上发表的相关EDGAR-CORPUS论文:
@inproceedings{loukas-etal-2021-edgar,
title = "{EDGAR}-{CORPUS}: Billions of Tokens Make The World Go Round",
author = "Loukas, Lefteris and
Fergadiotis, Manos and
Androutsopoulos, Ion and
Malakasiotis, Prodromos",
booktitle = "Proceedings of the Third Workshop on Economics and Natural Language Processing",
month = nov,
year = "2021",
address = "Punta Cana, Dominican Republic",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2021.econlp-1.2",
pages = "13--18",
}
在此阅读论文:https://aclanthology.org/2021.econlp-1.2/
相关资源
- [Zenodo上的EDGAR-CORPUS] EDGAR-CORPUS:基于
EDGAR-CRAWLER
构建的最大金融NLP研究语料库 - https://zenodo.org/record/5528490 - [HuggingFace 🤗 数据集上的EDGAR-CORPUS] -https://huggingface.co/datasets/eloukas/edgar-corpus/
- [金融Word2Vec嵌入] EDGAR-W2V:在EDGAR-CORPUS上训练的Word2vec嵌入 - https://zenodo.org/record/5524358
贡献
欢迎PR和贡献。
请使用特性分支工作流。
问题
请在GitHub上创建issue,而不是直接给我们发电子邮件,这样所有可能的用户都能从故障排除中受益。
许可证
请查看GNU通用公共许可证v3.0。