Guide to analyzing financial documents and corporate reports
In financial documents and corporate reports, quantity expressions and financial terminology are what matter most.
If you cannot recognize expressions such as 12조 3천억 원 (KRW 12.3 trillion), 영업이익률 (operating margin), and 유동성위기 (liquidity crisis) accurately,
extracting financial metrics and analyzing disclosures goes off track. Bareun morphological analysis distinguishes numerals, quantity units, and
financial terms, which gives this kind of analysis a solid foundation.
The problem
- Quantity expressions such as
12조 3천억 원are scattered into small pieces, which makes extracting amounts hard. - Financial terms such as
영업이익률and부채비율(debt ratio) are split into several nouns. - Notation specific to reports is not in general dictionaries, so it falls out as an out-of-vocabulary word (OOV).
How to apply Bareun
Bareun analyzes numerals (NR) and numbers (SN) separately from unit dependent nouns, so you can combine numbers and units to reconstruct amounts and ratios. For the meaning of POS tags, see the POS tag table. Pin financial terms in the custom dictionary by following the domain dictionary building workflow.
graph TD RPT[Corporate report] --> DICT[Financial term custom dictionary]; DICT --> TAG[Bareun morphological analysis]; TAG --> NUM[Recognize numerals and quantity units]; TAG --> TERM[Recognize financial terms]; NUM --> FIN[Extract financial metrics]; TERM --> FIN;
from bareunpy import Tagger
tagger = Tagger("koba-XXXX-...", "localhost")
cust = tagger.custom_dict("finance_terms")
cust.copy_cp_set({"영업이익률", "부채비율", "유동성위기"})
cust.update()
tagger.set_domain("finance_terms")
res = tagger.tags(["영업이익률이 12% 상승했습니다."])
print(res.pos())
[('영업이익률', 'NNG'), ('이', 'JKS'), ('12', 'SN'), ('%', 'SW'),
('상승', 'NNG'), ('하', 'XSV'), ('었', 'EP'), ('습니다', 'EF'), ('.', 'SF')]
The financial term 영업이익률 stays a single word and the number 12 is separated out as a number (SN), which makes extracting amounts and ratios easier.
Results and benefits
| Item | Without the dictionary | With the financial term dictionary |
|---|---|---|
| Financial terms | Split into several nouns | Kept as one word |
| Quantity expressions | Scattered | Numerals and units distinguished |
| Metric extraction | Inaccurate | Stable |
Extracting quantity expressions
If you combine a number (SN) or numeral (NR) with the unit dependent noun that follows it, you can reconstruct an amount such as 12조 3천억 원
as a single value. Write your rules based on POS tags.
Frequently asked questions
Q. How do I combine amount units (조, 억, 원)?
Apply a rule that groups a run of consecutive numerals or numbers and unit dependent nouns into one quantity expression. Because Bareun assigns POS tags accurately, tag-based rules stay simple.
Q. What about English ticker codes and company names?
Register English abbreviations, ticker codes, and company names in the proper noun dictionary (np_set) of the custom dictionary, and they are recognized as one word.
For registering new ticker names and neologisms, see Registering neologisms and proper nouns.
Q. Can it handle reports that mix in tables and footnotes?
Extract tables and footnotes as text first, then pass them to Bareun sentence by sentence. If you need sentence splitting, you can use the automatic sentence splitting option of the analysis request.
Q. How do I keep financial terms from becoming OOV words?
Financial terms such as 영업이익률 and 부채비율 are not in general dictionaries, so they easily fall out as OOV words or get split into several nouns.
Register such terms in the compound noun dictionary (cp_set) of the custom dictionary to keep them as one word.
Bareun morphological analysis assigns POS tags accurately, so the rules for extracting financial metrics stay simple.
Related documents
- Domain dictionary building workflow: pin financial terms in a dictionary
- Registering neologisms and proper nouns: register ticker names and company names
- POS tag table: meaning of the numeral, number, and unit dependent noun tags