The Extracted Features (EF) dataset contains informative characteristics, at the page level, of text from public domain volumes in the HathiTrust Digital LIbrary (HTDL). These are slightly more than 5 million volumes, representing about 38% of the total digital content of the HTDL.
The URL of the Extracted Feature Dataset is: https://portal.htrc.illinois.edu/features .
Texts from the HTDL corpus that are not in the public domain are not available for download, which limits the usefulness of the corpus for research. However, a great deal of fruitful research, especially in the form of text mining, can be performed on the basis of non-consumptive reading using extracted features (features extracted from the text) even when the full text is not available. To this end, the HathiTrust Research Center (HTRC) has started making available a set of page-level features extracted from the HTDL's public domain volumes. These extracted features can be the basis for certain kinds of algorithmic analysis. For example, since topic modeling algorithms work with "bags of words" (sets of tokens), and since tokens and their frequencies are now being provided as extracted features, the EF dataset can enable a user to perform topic modeling with the data.
Worksets and the Extracted Features (EF) Dataset
Currently, the extracted features dataset is being provided in connection with worksets. (If you are not familiar with HathiTrust worksets, you may want to review the tutorial available elsewhere in this Wiki regarding the HTRC Workset Builder.)
Content of an EF Dataset
An EF data file for a volume consists of volume-level metadata, and of the extracted feature data for each page in the volume, in JSON format. The volume-level metadata consists of both metadata about the volume and metadata about the extracted features.
- schemaVersion: A version identifier for the format and structure of this metadata object.
- dateCreated: The time this metadata object was processed.
- title: Title of the given volume.
- pubDate: The publication year.
- language: Primary language of the given volume.
- htBibUrl: HT Bibliographic API call for the volume.
- handleUrl: The persistent identifier for the volume
- oclc: The array of OCLC number(s).
- imprint: The publication place, publisher, and publication date of the given volume.
Extracted Features Metadata
- schemaVersion: A version identifier for the format and structure of the feature data.
- dateCreated: The time the batch of metadata was processed and recorded.
- pageCount: The number of pages in the volume.
- pages: An array of JSON objects, each representing a page of the volume.
Extracted Features Data
The extracted features that HTRC currently provides include part-of-speech (POS) -tagged token counts, header and footer identification, and various line-level information. (Providing token information at the page level makes it possible to separate paratext from text — e.g. identify pages of publishers’ ads at the back of a book.) Each page is broken up into three parts: header, body, and footer. Correction of hyphenation of tokens at end of lines has been carried out, but not any additional data cleaning or OCR correction.
- seq: A sequence number (pertaining to the page’s position)
- tokenCount: Number of tokens in the page.
- lineCount: Number of non-empty lines in the page.
- emptyLineCount: Number of empty lines in the page.
- sentenceCount: Number of sentences identified in page (using the open-source OpenNLP software).
- languages: List of languages and their respective percentage that were identified on this page.
The corresponding fields for header, body, and footer are the same, but apply to different parts of the page:
- tokenCount: Number of tokens in this page section.
- lineCount: Number of lines containing characters of any kind in this page section.
- emptyLineCount: Number of lines without text in this page section.
- sentenceCount: Number of sentences found in the text in this page section, parsed using OpenNLP.
- tokenPosCount: An unordered list of all tokens (characterized by part of speech using OpenNLP), and their corresponding frequency counts, in this page section.
This information is provided to help clarify genre and volume structure; for instance, it can help distinguish poetry from prose, or body text from an index.
- seq: A sequence number (same as in “basic” features)
- beginLineChars: Count of the initial character of each line in this page section (ignoring whitespace).
- endLineChars: Count of the last character on each line in this page section (ignoring whitespace).
- capAlphaSeq: (body only) Maximum length of the alphabetical sequence of capital characters starting a line.