网文校对系统 - 模块详解

搭建知识谱图的流程如下:

  1. 文本内容分块

  2. 实体识别和关系提取

  3. 存储实体和关系

文本内容分块

第一步很好理解,就是将小说已发布内容切分成若干个文本块。为了保留上下文信息,可以考虑文本块之间保留一些重叠的部分。

R1推荐使用LangChain的RecursiveCharacterTextSplitter并给出了参考代码。

分块的长度为1000,重叠部分200。

调用split_with_context方法,传入文本内容text,返回分块列表chunks。

实体识别和关系提取

这步是从分块中提取关键信息,信息的质量决定了网文校对的准确性,相当关键。

实体识别

咱们先讨论实体识别。

网络小说每一章都会各种角色、物品、地点、事件,这些都是实体。每个实体都有各自不同的属性。

所以接下来的问题是:提取实体的哪些信息,以及如何提取?

R1建议如下:

这里我总结一下:

  1. R1列出了不同类型的实体需要识别的各种纬度的属性。

  2. 给出了识别各类实体的参考代码。

不知道大家发现没有,这种方法有个非常大的缺陷:我们必须事先把识别某类信息的所有情况都列出来。

比如在识别地点时,我们得指定关键字。

这扩展性就太差了。我哪儿列举得出来所有的关键字啊?

后来R1又给了个改进方案,用自然语言处理(NLP)的开源库spaCy来识别实体。

但感觉还是有不少需要硬编码的地方,而且也比较复杂。

我突然想到,现在大模型对语义理解能力已经这么强了,是不是可以直接让它来识别实体呢?于是我把想法告诉R1,听听它的建议。

R1肯定了这个的想法,并给出了实体识别的提示词。

这个方案靠谱多了

我们不需要指定有哪些类型的实体,也不需要指定各类实体有哪些属性,全凭大模型基于对小说的理解自行判断。

实体的类型是动态的,属性也是动态的,扩展性直接拉满。

关系提取

有了实体识别的经验,关系提取依葫芦画瓢,让大模型自己决定。

好,到这里,我们的思路已经很清晰了。先分块,然后分别用大模型识别实体和提取关系。

这时,我又冒出个想法:能不能把识别实体和提取关系这两步合并成一步?

R1肯定了这个想法,并给出了新的提示词。这也是我们最终采用的方案。

一点感慨

这一节 CloudMan 巴拉巴拉说了这么多,无非是想让大家体会一下与AI交互的过程。

把AI当作行业专家和顾问,它能帮助我们快速进入一个新领域。

AI给出的建议,先接收,但别忙着接受。

倒不是说这些建议是错的,但很有可能不是最佳的,或者对提问的那个人来说不是最佳的。

因为AI毕竟不能100%了解我们的需求和背景。比如提问的人目前是什么技术水平?有多少预算?对系统的性能有哪些要求?说实话,即便是我们自己一开始也很难说清楚自己到底要什么。好多东西都是在讨论的过程中逐步清晰起来的。

所以对于AI提出的方案,先认真研究,结合自己的理解看有没有可以改进的地方,然后再拿去跟AI讨论。

就像前面提出用大模型识别实体,以及把实体和关系合并处理的想法,都是这样产生的。

整个项目AI贡献了80%,CloudMan只贡献了20%,但我绝不会低估自己的价值。因为整个过程是我在引导和把控,是我在拍板采用哪条建议。

目前CloudMan使用AI的心态是:

AI是工具。

人,才是最后做决定的那个

当然,哪天AGI甚至强人工智能出现了,必要时咱再改变心态呗。

公众号Cloudman6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值