Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

extract_book_struct

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

extract_book_struct

  • 0.0.3
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

encoding: UTF-8

= ExtractBookStruct

ExtractBookStruct的目的是从各类电子书内容中提取书的结构信息。目前支持txt,epub,html。

ExtractBookStruct选择从TXT文档提取书的结构信息。对TXT的文档要有如下要求:

1. 文档的编码格式必须是UTF-8或GB2312,推荐使用UTF-8格式

2. 文档的内容只包含书内容部分(书名、作者、目录等信息应该不包含在文档内)

3. 文档的段落应该完整(有些PDF转换过来的文档会破坏句子,需要进行预处理)

4. 文档必须符合正常的文档流(错位的章节段落等情况将影响正常的结构提取)

5. 文档需要包含结构信息(例如: 卷、篇、部分、章(回)节或者有连续的序号)

6. 每个结构信息都应该独立成行。

文档结构信息分析

一本书在编排的时候会有自己的结构信息,这些结构信息通常通过卷、篇、部分、章(回)节等表述,也会使用序号的方式表述。总体上可以分为以下几种:

1. 文本描述(text): 按卷、部分(篇)、章(回)、节等文字表述

2. 数字描述(digital): 所有结构信息都是按照数字序号表示,比如 1 xxxxx; 1.1 xxxxx

3. 混合描述(hybrid):章按照文字表述,节按照序号表示,比如 1.1 xxxxxx

根据不同的类型,对结构信息的提取采用不同的处理手段。

有效的标题信息应该符合以下规则:

1. 标题应该不包含完整的句子(应该不包含句子分隔符,例如“。","!"等)

2. 应该包含结构信息表述,具体如下:

文本描述:

卷: 以"第xxx卷"开始

以"卷"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

以"volume"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

部分(篇): 以"第xxx部"或"第xxx篇"开始

以"part"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

章(回): 以"第xxx章"或"第xxx回"开始

以"chapter"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

节: 以"第xxx节"开始

前言: 以"前"开始,以"言"结束,中间加入空白字符。例如"前言","前 言"等。

以"序"开始,以"言"结束,中间加入空白字符。例如"序言","序 言"等。

单个"序"

以"序"或"序言"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

"preface"

"foreword"

以"preface"或"foreword"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

索引: 以"索"开始,以"引"结束,中间加入空白字符。例如"索引","索 引"等。

以"索引"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

"index"

以"index"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

附录: 以"附"开始,以"录"结束,中间加入空白字符。例如"附录","附 录"等。

以"附录"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

"appendix"

以"appendix"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

术语: 以"术"开始,以"语"结束,中间加入空白字符。例如"术语","术 语"等。

以"术语"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

"glossary"

以"glossary"开始,后面跟序号表述方式,例如 “I”,“Ⅱ”,“1”等

数字描述:

以数字序号层级表达,数字序号和标题内容之间有空白字符分隔。例如"1 管理的概念", "1.1 定义", "1.1.1 管理"等。

==API接口

=== ExtractBookStruct.from_txt

从文本文件中提取目录结构,使用示例:

ExtractBookStruct.from_txt('1.txt',{:title=>'title',:author=>'author'})

=== ExtractBookStruct.from_epub

从EPUB文件中提取目录结构,使用示例:

ExtractBookStruct.from_epub('1.epub',{:title=>'title',:author=>'author'})

=== ExtractBookStruct.from_html

从HTML中提取目录结构,使用示例:

ExtractBookStruct.from_html('1.html',{:title=>'title',:author=>'author'})

== 命令行工具

extract_book_struct,使用示例:

extract_book_struct '1.txt', '1.xml'

== 依赖

ExtractBookStruct依赖以下工具和包:

ebook-convert: calibre cli tools.

uuid: ruby gem.

iconv: ruby gem.

FAQs

Package last updated on 29 Mar 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc