ಹೆಚ್ಚಿನ PDF ಎಕ್ಸ್‌ಟ್ರಾಕ್ಟರ್‌ಗಳು ತಪ್ಪು API ಅನ್ನು ಬಳಸುತ್ತವೆ

ಹೆಚ್ಚಿನ PDF ಪರಿಕರಗಳು ತಪ್ಪು ಡೇಟಾ ಮೂಲವನ್ನು ಬಳಸುತ್ತವೆ.

ಡೆವಲಪರ್‌ಗಳು PDF ಎಕ್ಸ್‌ಟ್ರಾಕ್ಷನ್ ಬಗ್ಗೆ ಮಾತನಾಡುವಾಗ, ಅವರು ಸಾಮಾನ್ಯವಾಗಿ getTextContent() ಅನ್ನು ಉದ್ದೇಶಿಸಿರುತ್ತಾರೆ. ಈ ವಿಧಾನವು ಪಠ್ಯದ ಅಂಶಗಳು ಮತ್ತು ಅವುಗಳ ಸ್ಥಾನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇದು ಬಹುತೇಕ ಎಲ್ಲಾ ಬ್ರೌಸರ್-ಸೈಡ್ ಪರಿಕರಗಳಿಗಾಗಿ ಡಿಫಾಲ್ಟ್ ಆಗಿದೆ.

ಆದರೆ getTextContent() ಎಂಬುದು ಪ್ರೊಸೆಸ್ ಮಾಡಲಾದ ನೋಟವಾಗಿದೆ. ಇದು ವಾಸ್ತವವಾಗಿ ಲಭ್ಯವಿರುವ ಮಾಹಿತಿಯ ಸರಳೀಕೃತ ರೂಪವಾಗಿದೆ.

PDF.js ನಲ್ಲಿ ಮೂರು ಹಂತದ ಡೇಟಾ ಇರುತ್ತದೆ:

• getStructTree(): ಇದು ದಾಖಲೆಯ ಅರ್ಥವನ್ನು ತಿಳಿಸುತ್ತದೆ. ಇದು ಟೇಬಲ್‌ಗಳು, ಹೆಡಿಂಗ್‌ಗಳು ಮತ್ತು ಫಾರ್ಮುಲಾಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. • getOperatorList(): ಇದು ದಾಖಲೆಯು ಏನನ್ನು ಬಿಡಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ತಿಳಿಸುತ್ತದೆ. ಇದು ಲೈನ್‌ಗಳು, ಪಥಗಳು ಮತ್ತು ಆಕಾರಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. • getTextContent(): ಇದು ದಾಖಲೆಯು ಬಿಡಿಸುವ ವಿಷಯದ ಫಿಲ್ಟರ್ ಮಾಡಲಾದ ನೋಟವಾಗಿದೆ.

ಹೆಚ್ಚಿನ ಪರಿಕರಗಳು ಮೂರನೇ ಆಯ್ಕೆಯನ್ನು ಬಳಸುತ್ತವೆ. ಇದು ಸರಳ ವರದಿಗಳಂತಹ 80% ದಾಖಲೆಗಳಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಇದು ಶೈಕ್ಷಣಿಕ ಪ್ರಬಂಧಗಳು ಮತ್ತು ಸಂಕೀರ್ಣ ಪ್ರಕಟಣೆಗಳಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ.

ಕೇವಲ getTextContent() ಅನ್ನು ಬಳಸುವುದರಿಂದ ನಾಲ್ಕು ಪ್ರಮುಖ ಸಮಸ್ಯೆಗಳು ಉಂಟಾಗುತ್ತವೆ:

  • ನೀವು ಟೇಬಲ್ ರಚನೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಪಠ್ಯದ ಸ್ಥಾನಗಳ ಆಧಾರದ ಮೇಲೆ ಸೆಲ್‌ಗಳು ಎಲ್ಲಿವೆ ಎಂದು ನೀವು ಊಹಿಸಬೇಕಾಗುತ್ತದೆ.
  • ನೀವು ಗಣಿತದ ಸಮೀಕರಣಗಳನ್ನು ಹಾಳುಮಾಡುತ್ತೀರಿ. LaTeX ಸಮೀಕರಣಗಳು ಹೆಚ್ಚಾಗಿ ಒಂದೇ ದೊಡ್ಡ ಪಠ್ಯದ ಬ್ಲಾಕ್‌ಗಳಂತೆ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ.
  • ನೀವು ಕಾಲಮ್ ಲೈನ್‌ಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಅನೇಕ ಲೇಔಟ್‌ಗಳು ಕಾಲಮ್‌ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ನಿಜವಾದ ಲೈನ್‌ಗಳನ್ನು ಬಳಸುತ್ತವೆ. ಈ ಲೈನ್‌ಗಳು ಪಠ್ಯದ ವಿಷಯದಲ್ಲಿ ಇರುವುದಿಲ್ಲ.
  • ನೀವು ತಪ್ಪಾದ ಓದುವ ಕ್ರಮವನ್ನು ಪಡೆಯುತ್ತೀರಿ. ಪಠ್ಯವು ಹೆಚ್ಚಾಗಿ ಅದು ಬಿಡಿಸಿದ ಕ್ರಮದಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ, ಮನುಷ್ಯ ಓದುವ ಕ್ರಮದಲ್ಲಿ ಅಲ್ಲ.

PDF ಪ್ರೊಸೆಸರ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಸರಿಯಾದ ವಿಧಾನವೆಂದರೆ ಮೂರು-ಹಂತದ ವ್ಯವಸ್ಥೆ:

  1. ಮೊದಲು getStructTree() ಅನ್ನು ಪರಿಶೀಲಿಸಿ. ದಾಖಲೆಯು ತಾರ್ಕಿಕ ರಚನೆಯನ್ನು ಹೊಂದಿದ್ದರೆ, ಟೇಬಲ್‌ಗಳು ಮತ್ತು ಹೆಡಿಂಗ್‌ಗಳನ್ನು ತಕ್ಷಣವೇ ಕಂಡುಹಿಡಿಯಲು ಅದನ್ನು ಬಳಸಿ.
  2. ನಂತರ getOperatorList() ಅನ್ನು ಪರಿಶೀಲಿಸಿ. ಕಾಲಮ್ ಗಡಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ಸ್ಪಷ್ಟವಾದ ಲೈನ್‌ಗಳು ಮತ್ತು ಪಥಗಳನ್ನು ಬಳಸಿ.
  3. ಪರ್ಯಾಯವಾಗಿ (fallback) getTextContent() ಅನ್ನು ಬಳಸಿ. ಮೊದಲ ಎರಡು ಹಂತಗಳು ಯಾವುದೇ ಡೇಟಾವನ್ನು ನೀಡದಿದ್ದಾಗ ಮಾತ್ರ ಜ್ಯಾಮಿತೀಯ ಗಣಿತವನ್ನು ಬಳಸಿ.

ಈ ವಿಧಾನವು ಹೆಚ್ಚಿನ ಕೆಲಸವಲ್ಲ. ಹಂತ 1 ಮತ್ತು 2 ವೇಗದ ನಿರ್ಗಮನಗಳಾಗಿ (fast exits) ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ದಾಖಲೆಯು ಉತ್ತಮವಾಗಿ ರಚಿಸಲ್ಪಟ್ಟಿದ್ದರೆ, ನೀವು ಕಠಿಣ ಗಣಿತವನ್ನು ಬಿಟ್ಟುಬಿಡಬಹುದು. ದಾಖಲೆಯು ಅನ್‌ಟ್ಯಾಗ್ ಮಾಡಲ್ಪಟ್ಟಿದ್ದಾಗ ಮಾತ್ರ ನೀವು ಸಂಕೀರ್ಣ ತೀರ್ಮಾನಗಳನ್ನು ಬಳಸುತ್ತೀರಿ.

ಈ ಆರ್ಕಿಟೆಕ್ಚರ್ ಸರಳ ಕಾರ್ಪೊರೇಟ್ ಫೈಲ್‌ಗಳು ಮತ್ತು ಸಂಕೀರ್ಣ ವೈಜ್ಞಾನಿಕ ಪ್ರಬಂಧಗಳೆರಡನ್ನೂ ನಿಭಾಯಿಸುತ್ತದೆ.

ಮೂಲ: https://dev.to/bonzai2carn/most-pdf-extractors-use-the-wrong-api-heres-what-we-built-instead-5dgh