ಹೆಚ್ಚಿನ PDF ಎಕ್ಸ್ಟ್ರಾಕ್ಟರ್ಗಳು ತಪ್ಪು API ಅನ್ನು ಬಳಸುತ್ತವೆ
ಹೆಚ್ಚಿನ PDF ಪರಿಕರಗಳು ತಪ್ಪು ಡೇಟಾ ಮೂಲವನ್ನು ಬಳಸುತ್ತವೆ.
ಡೆವಲಪರ್ಗಳು PDF ಎಕ್ಸ್ಟ್ರಾಕ್ಷನ್ ಬಗ್ಗೆ ಮಾತನಾಡುವಾಗ, ಅವರು ಸಾಮಾನ್ಯವಾಗಿ getTextContent() ಅನ್ನು ಉದ್ದೇಶಿಸಿರುತ್ತಾರೆ. ಈ ವಿಧಾನವು ಪಠ್ಯದ ಅಂಶಗಳು ಮತ್ತು ಅವುಗಳ ಸ್ಥಾನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇದು ಬಹುತೇಕ ಎಲ್ಲಾ ಬ್ರೌಸರ್-ಸೈಡ್ ಪರಿಕರಗಳಿಗಾಗಿ ಡಿಫಾಲ್ಟ್ ಆಗಿದೆ.
ಆದರೆ getTextContent() ಎಂಬುದು ಪ್ರೊಸೆಸ್ ಮಾಡಲಾದ ನೋಟವಾಗಿದೆ. ಇದು ವಾಸ್ತವವಾಗಿ ಲಭ್ಯವಿರುವ ಮಾಹಿತಿಯ ಸರಳೀಕೃತ ರೂಪವಾಗಿದೆ.
PDF.js ನಲ್ಲಿ ಮೂರು ಹಂತದ ಡೇಟಾ ಇರುತ್ತದೆ:
• getStructTree(): ಇದು ದಾಖಲೆಯ ಅರ್ಥವನ್ನು ತಿಳಿಸುತ್ತದೆ. ಇದು ಟೇಬಲ್ಗಳು, ಹೆಡಿಂಗ್ಗಳು ಮತ್ತು ಫಾರ್ಮುಲಾಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. • getOperatorList(): ಇದು ದಾಖಲೆಯು ಏನನ್ನು ಬಿಡಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ತಿಳಿಸುತ್ತದೆ. ಇದು ಲೈನ್ಗಳು, ಪಥಗಳು ಮತ್ತು ಆಕಾರಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. • getTextContent(): ಇದು ದಾಖಲೆಯು ಬಿಡಿಸುವ ವಿಷಯದ ಫಿಲ್ಟರ್ ಮಾಡಲಾದ ನೋಟವಾಗಿದೆ.
ಹೆಚ್ಚಿನ ಪರಿಕರಗಳು ಮೂರನೇ ಆಯ್ಕೆಯನ್ನು ಬಳಸುತ್ತವೆ. ಇದು ಸರಳ ವರದಿಗಳಂತಹ 80% ದಾಖಲೆಗಳಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಇದು ಶೈಕ್ಷಣಿಕ ಪ್ರಬಂಧಗಳು ಮತ್ತು ಸಂಕೀರ್ಣ ಪ್ರಕಟಣೆಗಳಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ.
ಕೇವಲ getTextContent() ಅನ್ನು ಬಳಸುವುದರಿಂದ ನಾಲ್ಕು ಪ್ರಮುಖ ಸಮಸ್ಯೆಗಳು ಉಂಟಾಗುತ್ತವೆ:
- ನೀವು ಟೇಬಲ್ ರಚನೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಪಠ್ಯದ ಸ್ಥಾನಗಳ ಆಧಾರದ ಮೇಲೆ ಸೆಲ್ಗಳು ಎಲ್ಲಿವೆ ಎಂದು ನೀವು ಊಹಿಸಬೇಕಾಗುತ್ತದೆ.
- ನೀವು ಗಣಿತದ ಸಮೀಕರಣಗಳನ್ನು ಹಾಳುಮಾಡುತ್ತೀರಿ. LaTeX ಸಮೀಕರಣಗಳು ಹೆಚ್ಚಾಗಿ ಒಂದೇ ದೊಡ್ಡ ಪಠ್ಯದ ಬ್ಲಾಕ್ಗಳಂತೆ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ.
- ನೀವು ಕಾಲಮ್ ಲೈನ್ಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಅನೇಕ ಲೇಔಟ್ಗಳು ಕಾಲಮ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ನಿಜವಾದ ಲೈನ್ಗಳನ್ನು ಬಳಸುತ್ತವೆ. ಈ ಲೈನ್ಗಳು ಪಠ್ಯದ ವಿಷಯದಲ್ಲಿ ಇರುವುದಿಲ್ಲ.
- ನೀವು ತಪ್ಪಾದ ಓದುವ ಕ್ರಮವನ್ನು ಪಡೆಯುತ್ತೀರಿ. ಪಠ್ಯವು ಹೆಚ್ಚಾಗಿ ಅದು ಬಿಡಿಸಿದ ಕ್ರಮದಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ, ಮನುಷ್ಯ ಓದುವ ಕ್ರಮದಲ್ಲಿ ಅಲ್ಲ.
PDF ಪ್ರೊಸೆಸರ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಸರಿಯಾದ ವಿಧಾನವೆಂದರೆ ಮೂರು-ಹಂತದ ವ್ಯವಸ್ಥೆ:
- ಮೊದಲು getStructTree() ಅನ್ನು ಪರಿಶೀಲಿಸಿ. ದಾಖಲೆಯು ತಾರ್ಕಿಕ ರಚನೆಯನ್ನು ಹೊಂದಿದ್ದರೆ, ಟೇಬಲ್ಗಳು ಮತ್ತು ಹೆಡಿಂಗ್ಗಳನ್ನು ತಕ್ಷಣವೇ ಕಂಡುಹಿಡಿಯಲು ಅದನ್ನು ಬಳಸಿ.
- ನಂತರ getOperatorList() ಅನ್ನು ಪರಿಶೀಲಿಸಿ. ಕಾಲಮ್ ಗಡಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ಸ್ಪಷ್ಟವಾದ ಲೈನ್ಗಳು ಮತ್ತು ಪಥಗಳನ್ನು ಬಳಸಿ.
- ಪರ್ಯಾಯವಾಗಿ (fallback) getTextContent() ಅನ್ನು ಬಳಸಿ. ಮೊದಲ ಎರಡು ಹಂತಗಳು ಯಾವುದೇ ಡೇಟಾವನ್ನು ನೀಡದಿದ್ದಾಗ ಮಾತ್ರ ಜ್ಯಾಮಿತೀಯ ಗಣಿತವನ್ನು ಬಳಸಿ.
ಈ ವಿಧಾನವು ಹೆಚ್ಚಿನ ಕೆಲಸವಲ್ಲ. ಹಂತ 1 ಮತ್ತು 2 ವೇಗದ ನಿರ್ಗಮನಗಳಾಗಿ (fast exits) ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ದಾಖಲೆಯು ಉತ್ತಮವಾಗಿ ರಚಿಸಲ್ಪಟ್ಟಿದ್ದರೆ, ನೀವು ಕಠಿಣ ಗಣಿತವನ್ನು ಬಿಟ್ಟುಬಿಡಬಹುದು. ದಾಖಲೆಯು ಅನ್ಟ್ಯಾಗ್ ಮಾಡಲ್ಪಟ್ಟಿದ್ದಾಗ ಮಾತ್ರ ನೀವು ಸಂಕೀರ್ಣ ತೀರ್ಮಾನಗಳನ್ನು ಬಳಸುತ್ತೀರಿ.
ಈ ಆರ್ಕಿಟೆಕ್ಚರ್ ಸರಳ ಕಾರ್ಪೊರೇಟ್ ಫೈಲ್ಗಳು ಮತ್ತು ಸಂಕೀರ್ಣ ವೈಜ್ಞಾನಿಕ ಪ್ರಬಂಧಗಳೆರಡನ್ನೂ ನಿಭಾಯಿಸುತ್ತದೆ.
ಮೂಲ: https://dev.to/bonzai2carn/most-pdf-extractors-use-the-wrong-api-heres-what-we-built-instead-5dgh
