Repository files navigation

spacypdfreader

Easy PDF to text to spaCy text extraction in Python.

Package versionPyPI - Downloadspytest


Documentation:https://samedwardes.github.io/spacypdfreader/

Source code:https://github.com/SamEdwardes/spacypdfreader

PyPi:https://pypi.org/project/spacypdfreader/

spaCy universe:https://spacy.io/universe/project/spacypdfreader


spacypdfreader is a python library for extracting text from PDF documents into spaCyDoc objects. When you use spacypdfreader the token and doc objects from spacy are annotated with additional information about the pdf.

The key features are:

  • PDF to spaCy Doc object: Convert a PDF document directly into a spaCyDoc object.
  • Custom spaCy attributes and methods:
    • token._.page_number
    • doc._.page_range
    • doc._.first_page
    • doc._.last_page
    • doc._.pdf_file_name
    • doc._.page(int)
  • Multiple parsers: Select between multiple built in PDF to text parsers or bring your own PDF to text parser.

Installation

Install spacypdfreader using pip:

pip install spacypdfreader

To install with the required pytesseract dependencies:

pip install 'spacypdfreader[pytesseract]'

Usage

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)
# Get the page number of any token.print(doc[0]._.page_number) # 1print(doc[-1]._.page_number) # 4# Get page meta data about the PDF document.print(doc._.pdf_file_name) # "tests/data/test_pdf_01.pdf"print(doc._.page_range) # (1, 4)print(doc._.first_page) # 1print(doc._.last_page) # 4# Get all of the text from a specific PDF page.print(doc._.page(4)) # "able to display the destination page (unless..."

What is spaCy?

spaCy is a natural language processing (NLP) tool. It can be used to perform a variety of NLP tasks. For more information check out the excellent documentation at https://spacy.io.

Implementation Notes

spaCyPDFreader behaves a little bit different than your typical spaCy custom component. Typically a spaCy component should receive and return a spacy.tokens.Doc object.

spaCyPDFreader breaks this convention because the text must first be extracted from the PDF. Instead pdf_reader takes a path to a PDF file and a spacy.Language object as parameters and returns a spacy.tokens.Doc object. This allows users an easy way to extract text from PDF files while still allowing them use and customize all of the features spacy has to offer by allowing you to pass in the spacy.Language object.

Example of a "traditional" spaCy pipeline component negspaCy:

importspacyfromnegspacy.negationimportNegexnlp=spacy.load("en_core_web_sm")
nlp.add_pipe("negex", config={"ent_types": ["PERSON", "ORG"]})
doc=nlp("She does not like Steve Jobs but likes Apple products.")

Example of spaCyPDFreader usage:

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)

Note that the nlp.add_pipe is not used by spaCyPDFreader.

About

Easy PDF to text to spaCy text extraction in Python.

Resources

Stars

42 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

spacypdfreader

Easy PDF to text to spaCy text extraction in Python.

Package versionPyPI - Downloadspytest


Documentation:https://samedwardes.github.io/spacypdfreader/

Source code:https://github.com/SamEdwardes/spacypdfreader

PyPi:https://pypi.org/project/spacypdfreader/

spaCy universe:https://spacy.io/universe/project/spacypdfreader


spacypdfreader is a python library for extracting text from PDF documents into spaCyDoc objects. When you use spacypdfreader the token and doc objects from spacy are annotated with additional information about the pdf.

The key features are:

  • PDF to spaCy Doc object: Convert a PDF document directly into a spaCyDoc object.
  • Custom spaCy attributes and methods:
    • token._.page_number
    • doc._.page_range
    • doc._.first_page
    • doc._.last_page
    • doc._.pdf_file_name
    • doc._.page(int)
  • Multiple parsers: Select between multiple built in PDF to text parsers or bring your own PDF to text parser.

Installation

Install spacypdfreader using pip:

pip install spacypdfreader

To install with the required pytesseract dependencies:

pip install 'spacypdfreader[pytesseract]'

Usage

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)
# Get the page number of any token.print(doc[0]._.page_number) # 1print(doc[-1]._.page_number) # 4# Get page meta data about the PDF document.print(doc._.pdf_file_name) # "tests/data/test_pdf_01.pdf"print(doc._.page_range) # (1, 4)print(doc._.first_page) # 1print(doc._.last_page) # 4# Get all of the text from a specific PDF page.print(doc._.page(4)) # "able to display the destination page (unless..."

What is spaCy?

spaCy is a natural language processing (NLP) tool. It can be used to perform a variety of NLP tasks. For more information check out the excellent documentation at https://spacy.io.

Implementation Notes

spaCyPDFreader behaves a little bit different than your typical spaCy custom component. Typically a spaCy component should receive and return a spacy.tokens.Doc object.

spaCyPDFreader breaks this convention because the text must first be extracted from the PDF. Instead pdf_reader takes a path to a PDF file and a spacy.Language object as parameters and returns a spacy.tokens.Doc object. This allows users an easy way to extract text from PDF files while still allowing them use and customize all of the features spacy has to offer by allowing you to pass in the spacy.Language object.

Example of a "traditional" spaCy pipeline component negspaCy:

importspacyfromnegspacy.negationimportNegexnlp=spacy.load("en_core_web_sm")
nlp.add_pipe("negex", config={"ent_types": ["PERSON", "ORG"]})
doc=nlp("She does not like Steve Jobs but likes Apple products.")

Example of spaCyPDFreader usage:

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)

Note that the nlp.add_pipe is not used by spaCyPDFreader.

About

Easy PDF to text to spaCy text extraction in Python.

Resources

Stars

42 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

spacypdfreader

Easy PDF to text to spaCy text extraction in Python.

Package versionPyPI - Downloadspytest


Documentation:https://samedwardes.github.io/spacypdfreader/

Source code:https://github.com/SamEdwardes/spacypdfreader

PyPi:https://pypi.org/project/spacypdfreader/

spaCy universe:https://spacy.io/universe/project/spacypdfreader


spacypdfreader is a python library for extracting text from PDF documents into spaCyDoc objects. When you use spacypdfreader the token and doc objects from spacy are annotated with additional information about the pdf.

The key features are:

  • PDF to spaCy Doc object: Convert a PDF document directly into a spaCyDoc object.
  • Custom spaCy attributes and methods:
    • token._.page_number
    • doc._.page_range
    • doc._.first_page
    • doc._.last_page
    • doc._.pdf_file_name
    • doc._.page(int)
  • Multiple parsers: Select between multiple built in PDF to text parsers or bring your own PDF to text parser.

Installation

Install spacypdfreader using pip:

pip install spacypdfreader

To install with the required pytesseract dependencies:

pip install 'spacypdfreader[pytesseract]'

Usage

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)
# Get the page number of any token.print(doc[0]._.page_number) # 1print(doc[-1]._.page_number) # 4# Get page meta data about the PDF document.print(doc._.pdf_file_name) # "tests/data/test_pdf_01.pdf"print(doc._.page_range) # (1, 4)print(doc._.first_page) # 1print(doc._.last_page) # 4# Get all of the text from a specific PDF page.print(doc._.page(4)) # "able to display the destination page (unless..."

What is spaCy?

spaCy is a natural language processing (NLP) tool. It can be used to perform a variety of NLP tasks. For more information check out the excellent documentation at https://spacy.io.

Implementation Notes

spaCyPDFreader behaves a little bit different than your typical spaCy custom component. Typically a spaCy component should receive and return a spacy.tokens.Doc object.

spaCyPDFreader breaks this convention because the text must first be extracted from the PDF. Instead pdf_reader takes a path to a PDF file and a spacy.Language object as parameters and returns a spacy.tokens.Doc object. This allows users an easy way to extract text from PDF files while still allowing them use and customize all of the features spacy has to offer by allowing you to pass in the spacy.Language object.

Example of a "traditional" spaCy pipeline component negspaCy:

importspacyfromnegspacy.negationimportNegexnlp=spacy.load("en_core_web_sm")
nlp.add_pipe("negex", config={"ent_types": ["PERSON", "ORG"]})
doc=nlp("She does not like Steve Jobs but likes Apple products.")

Example of spaCyPDFreader usage:

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)

Note that the nlp.add_pipe is not used by spaCyPDFreader.

About

Easy PDF to text to spaCy text extraction in Python.

Resources

Stars

42 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

spacypdfreader

Easy PDF to text to spaCy text extraction in Python.

Package versionPyPI - Downloadspytest


Documentation:https://samedwardes.github.io/spacypdfreader/

Source code:https://github.com/SamEdwardes/spacypdfreader

PyPi:https://pypi.org/project/spacypdfreader/

spaCy universe:https://spacy.io/universe/project/spacypdfreader


spacypdfreader is a python library for extracting text from PDF documents into spaCyDoc objects. When you use spacypdfreader the token and doc objects from spacy are annotated with additional information about the pdf.

The key features are:

  • PDF to spaCy Doc object: Convert a PDF document directly into a spaCyDoc object.
  • Custom spaCy attributes and methods:
    • token._.page_number
    • doc._.page_range
    • doc._.first_page
    • doc._.last_page
    • doc._.pdf_file_name
    • doc._.page(int)
  • Multiple parsers: Select between multiple built in PDF to text parsers or bring your own PDF to text parser.

Installation

Install spacypdfreader using pip:

pip install spacypdfreader

To install with the required pytesseract dependencies:

pip install 'spacypdfreader[pytesseract]'

Usage

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)
# Get the page number of any token.print(doc[0]._.page_number) # 1print(doc[-1]._.page_number) # 4# Get page meta data about the PDF document.print(doc._.pdf_file_name) # "tests/data/test_pdf_01.pdf"print(doc._.page_range) # (1, 4)print(doc._.first_page) # 1print(doc._.last_page) # 4# Get all of the text from a specific PDF page.print(doc._.page(4)) # "able to display the destination page (unless..."

What is spaCy?

spaCy is a natural language processing (NLP) tool. It can be used to perform a variety of NLP tasks. For more information check out the excellent documentation at https://spacy.io.

Implementation Notes

spaCyPDFreader behaves a little bit different than your typical spaCy custom component. Typically a spaCy component should receive and return a spacy.tokens.Doc object.

spaCyPDFreader breaks this convention because the text must first be extracted from the PDF. Instead pdf_reader takes a path to a PDF file and a spacy.Language object as parameters and returns a spacy.tokens.Doc object. This allows users an easy way to extract text from PDF files while still allowing them use and customize all of the features spacy has to offer by allowing you to pass in the spacy.Language object.

Example of a "traditional" spaCy pipeline component negspaCy:

importspacyfromnegspacy.negationimportNegexnlp=spacy.load("en_core_web_sm")
nlp.add_pipe("negex", config={"ent_types": ["PERSON", "ORG"]})
doc=nlp("She does not like Steve Jobs but likes Apple products.")

Example of spaCyPDFreader usage:

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)

Note that the nlp.add_pipe is not used by spaCyPDFreader.

About

Easy PDF to text to spaCy text extraction in Python.

Resources

Stars

42 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

spacypdfreader

Easy PDF to text to spaCy text extraction in Python.

Package versionPyPI - Downloadspytest


Documentation:https://samedwardes.github.io/spacypdfreader/

Source code:https://github.com/SamEdwardes/spacypdfreader

PyPi:https://pypi.org/project/spacypdfreader/

spaCy universe:https://spacy.io/universe/project/spacypdfreader


spacypdfreader is a python library for extracting text from PDF documents into spaCyDoc objects. When you use spacypdfreader the token and doc objects from spacy are annotated with additional information about the pdf.

The key features are:

  • PDF to spaCy Doc object: Convert a PDF document directly into a spaCyDoc object.
  • Custom spaCy attributes and methods:
    • token._.page_number
    • doc._.page_range
    • doc._.first_page
    • doc._.last_page
    • doc._.pdf_file_name
    • doc._.page(int)
  • Multiple parsers: Select between multiple built in PDF to text parsers or bring your own PDF to text parser.

Installation

Install spacypdfreader using pip:

pip install spacypdfreader

To install with the required pytesseract dependencies:

pip install 'spacypdfreader[pytesseract]'

Usage

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)
# Get the page number of any token.print(doc[0]._.page_number) # 1print(doc[-1]._.page_number) # 4# Get page meta data about the PDF document.print(doc._.pdf_file_name) # "tests/data/test_pdf_01.pdf"print(doc._.page_range) # (1, 4)print(doc._.first_page) # 1print(doc._.last_page) # 4# Get all of the text from a specific PDF page.print(doc._.page(4)) # "able to display the destination page (unless..."

What is spaCy?

spaCy is a natural language processing (NLP) tool. It can be used to perform a variety of NLP tasks. For more information check out the excellent documentation at https://spacy.io.

Implementation Notes

spaCyPDFreader behaves a little bit different than your typical spaCy custom component. Typically a spaCy component should receive and return a spacy.tokens.Doc object.

spaCyPDFreader breaks this convention because the text must first be extracted from the PDF. Instead pdf_reader takes a path to a PDF file and a spacy.Language object as parameters and returns a spacy.tokens.Doc object. This allows users an easy way to extract text from PDF files while still allowing them use and customize all of the features spacy has to offer by allowing you to pass in the spacy.Language object.

Example of a "traditional" spaCy pipeline component negspaCy:

importspacyfromnegspacy.negationimportNegexnlp=spacy.load("en_core_web_sm")
nlp.add_pipe("negex", config={"ent_types": ["PERSON", "ORG"]})
doc=nlp("She does not like Steve Jobs but likes Apple products.")

Example of spaCyPDFreader usage:

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)

Note that the nlp.add_pipe is not used by spaCyPDFreader.

About

Easy PDF to text to spaCy text extraction in Python.

Resources

Stars

42 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

spacypdfreader

Easy PDF to text to spaCy text extraction in Python.

Package versionPyPI - Downloadspytest


Documentation:https://samedwardes.github.io/spacypdfreader/

Source code:https://github.com/SamEdwardes/spacypdfreader

PyPi:https://pypi.org/project/spacypdfreader/

spaCy universe:https://spacy.io/universe/project/spacypdfreader


spacypdfreader is a python library for extracting text from PDF documents into spaCyDoc objects. When you use spacypdfreader the token and doc objects from spacy are annotated with additional information about the pdf.

The key features are:

  • PDF to spaCy Doc object: Convert a PDF document directly into a spaCyDoc object.
  • Custom spaCy attributes and methods:
    • token._.page_number
    • doc._.page_range
    • doc._.first_page
    • doc._.last_page
    • doc._.pdf_file_name
    • doc._.page(int)
  • Multiple parsers: Select between multiple built in PDF to text parsers or bring your own PDF to text parser.

Installation

Install spacypdfreader using pip:

pip install spacypdfreader

To install with the required pytesseract dependencies:

pip install 'spacypdfreader[pytesseract]'

Usage

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)
# Get the page number of any token.print(doc[0]._.page_number) # 1print(doc[-1]._.page_number) # 4# Get page meta data about the PDF document.print(doc._.pdf_file_name) # "tests/data/test_pdf_01.pdf"print(doc._.page_range) # (1, 4)print(doc._.first_page) # 1print(doc._.last_page) # 4# Get all of the text from a specific PDF page.print(doc._.page(4)) # "able to display the destination page (unless..."

What is spaCy?

spaCy is a natural language processing (NLP) tool. It can be used to perform a variety of NLP tasks. For more information check out the excellent documentation at https://spacy.io.

Implementation Notes

spaCyPDFreader behaves a little bit different than your typical spaCy custom component. Typically a spaCy component should receive and return a spacy.tokens.Doc object.

spaCyPDFreader breaks this convention because the text must first be extracted from the PDF. Instead pdf_reader takes a path to a PDF file and a spacy.Language object as parameters and returns a spacy.tokens.Doc object. This allows users an easy way to extract text from PDF files while still allowing them use and customize all of the features spacy has to offer by allowing you to pass in the spacy.Language object.

Example of a "traditional" spaCy pipeline component negspaCy:

importspacyfromnegspacy.negationimportNegexnlp=spacy.load("en_core_web_sm")
nlp.add_pipe("negex", config={"ent_types": ["PERSON", "ORG"]})
doc=nlp("She does not like Steve Jobs but likes Apple products.")

Example of spaCyPDFreader usage:

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)

Note that the nlp.add_pipe is not used by spaCyPDFreader.

About

Easy PDF to text to spaCy text extraction in Python.

Resources

Stars

42 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

spacypdfreader

Easy PDF to text to spaCy text extraction in Python.

Package versionPyPI - Downloadspytest


Documentation:https://samedwardes.github.io/spacypdfreader/

Source code:https://github.com/SamEdwardes/spacypdfreader

PyPi:https://pypi.org/project/spacypdfreader/

spaCy universe:https://spacy.io/universe/project/spacypdfreader


spacypdfreader is a python library for extracting text from PDF documents into spaCyDoc objects. When you use spacypdfreader the token and doc objects from spacy are annotated with additional information about the pdf.

The key features are:

  • PDF to spaCy Doc object: Convert a PDF document directly into a spaCyDoc object.
  • Custom spaCy attributes and methods:
    • token._.page_number
    • doc._.page_range
    • doc._.first_page
    • doc._.last_page
    • doc._.pdf_file_name
    • doc._.page(int)
  • Multiple parsers: Select between multiple built in PDF to text parsers or bring your own PDF to text parser.

Installation

Install spacypdfreader using pip:

pip install spacypdfreader

To install with the required pytesseract dependencies:

pip install 'spacypdfreader[pytesseract]'

Usage

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)
# Get the page number of any token.print(doc[0]._.page_number) # 1print(doc[-1]._.page_number) # 4# Get page meta data about the PDF document.print(doc._.pdf_file_name) # "tests/data/test_pdf_01.pdf"print(doc._.page_range) # (1, 4)print(doc._.first_page) # 1print(doc._.last_page) # 4# Get all of the text from a specific PDF page.print(doc._.page(4)) # "able to display the destination page (unless..."

What is spaCy?

spaCy is a natural language processing (NLP) tool. It can be used to perform a variety of NLP tasks. For more information check out the excellent documentation at https://spacy.io.

Implementation Notes

spaCyPDFreader behaves a little bit different than your typical spaCy custom component. Typically a spaCy component should receive and return a spacy.tokens.Doc object.

spaCyPDFreader breaks this convention because the text must first be extracted from the PDF. Instead pdf_reader takes a path to a PDF file and a spacy.Language object as parameters and returns a spacy.tokens.Doc object. This allows users an easy way to extract text from PDF files while still allowing them use and customize all of the features spacy has to offer by allowing you to pass in the spacy.Language object.

Example of a "traditional" spaCy pipeline component negspaCy:

importspacyfromnegspacy.negationimportNegexnlp=spacy.load("en_core_web_sm")
nlp.add_pipe("negex", config={"ent_types": ["PERSON", "ORG"]})
doc=nlp("She does not like Steve Jobs but likes Apple products.")

Example of spaCyPDFreader usage:

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)

Note that the nlp.add_pipe is not used by spaCyPDFreader.

About

Easy PDF to text to spaCy text extraction in Python.

Resources

Stars

42 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

spacypdfreader

Easy PDF to text to spaCy text extraction in Python.

Package versionPyPI - Downloadspytest


Documentation:https://samedwardes.github.io/spacypdfreader/

Source code:https://github.com/SamEdwardes/spacypdfreader

PyPi:https://pypi.org/project/spacypdfreader/

spaCy universe:https://spacy.io/universe/project/spacypdfreader


spacypdfreader is a python library for extracting text from PDF documents into spaCyDoc objects. When you use spacypdfreader the token and doc objects from spacy are annotated with additional information about the pdf.

The key features are:

  • PDF to spaCy Doc object: Convert a PDF document directly into a spaCyDoc object.
  • Custom spaCy attributes and methods:
    • token._.page_number
    • doc._.page_range
    • doc._.first_page
    • doc._.last_page
    • doc._.pdf_file_name
    • doc._.page(int)
  • Multiple parsers: Select between multiple built in PDF to text parsers or bring your own PDF to text parser.

Installation

Install spacypdfreader using pip:

pip install spacypdfreader

To install with the required pytesseract dependencies:

pip install 'spacypdfreader[pytesseract]'

Usage

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)
# Get the page number of any token.print(doc[0]._.page_number) # 1print(doc[-1]._.page_number) # 4# Get page meta data about the PDF document.print(doc._.pdf_file_name) # "tests/data/test_pdf_01.pdf"print(doc._.page_range) # (1, 4)print(doc._.first_page) # 1print(doc._.last_page) # 4# Get all of the text from a specific PDF page.print(doc._.page(4)) # "able to display the destination page (unless..."

What is spaCy?

spaCy is a natural language processing (NLP) tool. It can be used to perform a variety of NLP tasks. For more information check out the excellent documentation at https://spacy.io.

Implementation Notes

spaCyPDFreader behaves a little bit different than your typical spaCy custom component. Typically a spaCy component should receive and return a spacy.tokens.Doc object.

spaCyPDFreader breaks this convention because the text must first be extracted from the PDF. Instead pdf_reader takes a path to a PDF file and a spacy.Language object as parameters and returns a spacy.tokens.Doc object. This allows users an easy way to extract text from PDF files while still allowing them use and customize all of the features spacy has to offer by allowing you to pass in the spacy.Language object.

Example of a "traditional" spaCy pipeline component negspaCy:

importspacyfromnegspacy.negationimportNegexnlp=spacy.load("en_core_web_sm")
nlp.add_pipe("negex", config={"ent_types": ["PERSON", "ORG"]})
doc=nlp("She does not like Steve Jobs but likes Apple products.")

Example of spaCyPDFreader usage:

importspacyfromspacypdfreaderimportpdf_readernlp=spacy.load("en_core_web_sm")
doc=pdf_reader("tests/data/test_pdf_01.pdf", nlp)

Note that the nlp.add_pipe is not used by spaCyPDFreader.

About

Easy PDF to text to spaCy text extraction in Python.

Resources

Stars

42 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages