文本处理工具doctran(集成LLM和NLP库)

今天给大家推荐一款文本处理工具,可以Extract、Redact、Summarize、Refine、Translate、Interrogate,这个工具就是文档转换框架doctran

欢迎关注公众号

文本处理工具doctran(集成LLM和NLP库)_第1张图片

doctran基于OpenAI的GPT模型和开源的NLP库来剖析文本数据。该工具也可以在LangChain框架document_transformers模块内使用。(本质上是对LLM和NLP库的封装)

文本处理工具doctran(集成LLM和NLP库)_第2张图片

Github: https://github.com/psychic-api/doctran

Example: https://github.com/psychic-api/doctran/blob/main/examples.ipynb

1. 安装

pip install doctran

2. 使用

  • 初始化设置
from doctran import Doctran

OPENAI_API_KEY = ''
OPENAI_MODEL = ''

doctran = Doctran(openai_api_key=OPENAI_API_KEY,openai_model=OPENAI_MODEL)
document = doctran.parse(content="your_content_as_string")

注:修改openai_api_base、使用其他LLM等可在源码中修改即可。

  • Extract

针对任何有效的JSON模式,使用OpenAI的函数调用从文档中提取结构化数据。

from doctran import ExtractProperty

properties = ExtractProperty(
    name="millenial_or_boomer", 
    description="A prediction of whether this document was written by a millenial or boomer",
    type="string",
    enum=["millenial", "boomer"],
    required=True
)
document = await document.extract(properties=properties).execute()
  • Redact

使用spaCy模型从文档中删除姓名、电子邮件、电话号码和其他敏感信息。在本地运行,以避免将敏感数据发送到第三方API。

document = await document.redact(entities=["PERSON", "EMAIL_ADDRESS", "PHONE_NUMBER", "US_SSN"]).execute()
  • Summarize

总结文档中的信息。可以传递token_limit以配置摘要的大小,然而OpenAI可能不会遵循此限制。

document = await document.summarize().execute()
  • Refine

除非与特定主题相关,否则从文档中删除所有信息。

document = await document.refine(topics=['marketing', 'meetings']).execute()
  • Translate

将文本翻译成另一种语言。

document = await document.translate(language="spanish").execute()
  • Interrogate

将文档中的信息转换成问答格式。最终用户的查询通常以问题的形式提出,因此将信息转换为问题并从这些问题创建索引,通常在使用向量数据库进行上下文检索时能够产生更好的结果。

document = await document.interrogate().execute()

Interrogate可以帮助构造大模型有监督微调阶段的问答对。

3. 总结

doctran使用简单,可以用于日常工作中的数据处理。

你可能感兴趣的:(LLM,自然语言处理,人工智能)