谷歌最新开源利器:把杂乱文本变成结构化数据,还能生成可视化页面,标出原文出处
2025年8月7日
谷歌最新开源利器:把杂乱文本变成结构化数据,还能生成可视化页面,标出原文出处
面对一堆乱七八糟的文本,想从中找出关键信息,常常费时又不准确。
比如,你有一堆医疗记录,想找出所有药物名称和剂量;或者你想分析《罗密欧与朱丽叶》,挑出每个角色的情感。手动翻文本太累,普通工具又太死板。
怎么办?
谷歌最近开源了一个Python 工具——LangExtract,能让大语言模型(LLM)帮你从文本里提取想要的内容,比如小说里的人物情感、病历里的药物信息,直接整理成规整的数据格式。
提取的信息会标出原文出处,还能生成可视化网页,点几下就知道对不对,特别适合核对大量数据。
文学分析、医疗记录、法律文档等等都可以搞定,既灵活又强大,适合各种场景。
使用上也不复杂,不用学复杂技术,写几句话提示词,加几个例子,就能使用。
还持续本地大模型。
用起来很方便!
它咋怎么工作的?
LangExtract 的工作方式很简单:你告诉它想找啥,给几个例子,它就用大语言模型去文本里挖信息。
比如,你想从一段话里提取人物和情感,只需:
第一步,写个提示词,清楚说“提取人物和情感,原文照抄,别改动”。
第二步,给个例子,比如“罗密欧:轻声!那窗子里透出什么光?”标出“罗密欧”是人物,“轻声!”是情感。
第三步,扔一段文本进去,选个模型,跑几行代码,结果就出来了。
结果不仅告诉你提取了啥,还会标出信息来自原文哪句话。
你还能生成一个互动网页,点开就能看到原文和提取内容,检查起来直观又方便。处理大段文本也没问题,哪怕是整本小说,它会自动切块、并行处理,确保不漏信息。
如何使用?
下面是个简单例子,教你从文本里提取人物和情感:
import langextract as lx
# 提示词:告诉它要干啥
prompt = "提取人物和情感,原文照抄,别改动。"
# 例子:教模型怎么提取
examples = [
lx.data.ExampleData(
text="罗密欧:轻声!那窗子里透出什么光?",
extractions=[
lx.data.Extraction(
extraction_class="人物",
extraction_text="罗密欧",
attributes={"情感状态": "惊叹"}
),
lx.data.Extraction(
extraction_class="情感",
extraction_text="轻声!",
attributes={"感觉": "温柔的惊叹"}
)
]
)
]
# 要处理的文本
input_text = "朱丽叶凝望星空,心里渴望着罗密欧。"
# 跑提取,选 Gemini-2.5-flash 模型
result = lx.extract(
text_or_documents=input_text,
prompt_description=prompt,
examples=examples,
model_id="gemini-2.5-flash"
)
# 保存结果到 JSONL 文件
lx.io.save_annotated_documents([result], output_name="result.jsonl")
# 生成互动网页
html = lx.visualize("result.jsonl")
with open("visual.html", "w") as f:
f.write(html)
这段代码会提取“朱丽叶”作为人物,“渴望着”作为情感,存成 JSONL 文件,还生成一个网页,点开就能看到结果和原文的对应关系。如果用云端模型(像 Gemini),得先设个 API 密钥;用本地模型(像 Ollama 的 gemma2:2b),直接跑就行。
还能干点啥?
LangExtract 的应用场景可不少:
文学分析:直接从 Project Gutenberg 拉《罗密欧与朱丽叶》全文,提取人物、情感、关系,几万字不在话下。
医疗记录:从病历里挑药物、剂量、用法,整理得清清楚楚(仅供演示,别真拿来治病!)。
放射报告:有个 RadExtract 在线演示,专门整理放射报告,浏览器里就能试,超级方便。
咋装它?
装 LangExtract 就一句命令:
pip install langextract
想搞开发?去 GitHub 克隆代码:
git clone https://github.com/google/langextract.git
cd langextract
pip install -e .
云端模型需要 API 密钥(从 Google AI Studio 或 OpenAI 拿),本地用 Ollama 跑开源模型,啥密钥都不用。