什么是智能文档分析?
智能文档分析(IDA)是指使用自然语言处理(NLP)和机器学习从非结构化数据(文本文档、社交媒体帖子、邮件、图像等)中获得洞察。由于80%的企业数据是非结构化的,因此IDA可以跨行业和业务功能提供切实的好处,例如改善遵从性和风险管理、提高内部运营效率和增强业务流程。
在本博客中,我将描述IDA中使用的主要NLP技术,并提供各种业务用例的示例。我还将讨论启动第一个IDA项目时的一些关键考虑事项。
![c53440dce6425b82893a2afcf4e679dd.png](https://i-blog.csdnimg.cn/blog_migrate/d9918dcf29443153f74cc8f921e06be2.jpeg)
智能文档分析技术
以下是7种常见的IDA技术。将提供示例用例来解释每种技术。
1. 命名实体识别
命名实体识别识别文本中提到的命名实体,并将它们分类到预定义的类别中,如人名、组织、位置、时间表达式、货币值等。有一系列的方法来执行命名实体识别:
- 开箱即用的实体识别——大多数NLP包或服务都包括用于识别实体的预先训练好的机器学习模型。这使得识别关键实体类型(如人名、组织和位置)变得非常容易,只需一个简单的API调用,而不需要训练机器学习模型。
- 机器学习的实体识别——开箱即用的实体很方便,但通常是通用的,在许多情况下,需要识别其他的实体类型。例如,在招聘环境中处理文档时,我们想要识别工作头衔和技能。在零售环境中,我们希望识别产品名称。
- 确定性实体识别——如果你想要识别的实体是有限的并且是预定义的,那么确定性方法将比训练一个机器学习模型更容易更准确。在这种方法中,提供了实体的字典;然后,实体识别器将在文本中识别字典条目的任何实例。例如,字典可以包含公司所有产品的列表。将字典方法与机器学习相结合也是可能的。字典用于为机器学习模型注释训练数据,然后机器学习模型学习识别不在字典中的实体实例。确定性实体识别通常不支持开箱即用的NLP包或服务。一些支持这种确定性方法的NLP包使用本体而不是字典。本体为实体定义关系和相关术语,这使实体识别器能够使用文档的上下文来消除模糊实体之间的歧义。
- 基于模式的实体识别——如果实体类型可以由正则表达式定义,那么可以使用正则表达式匹配来识别它们。例如,可以使用正则表达式标识产品代码或引用引用。英国国家保险号码的简化正则表达式为[A- z]{2}[0-9]{6}[A- z](2个大写字母,后面跟着6个数字,后面跟着1个大写字母)。
命名实体识别是本博客中讨论的许多其他rda技术的关键预处理技术。其他命名为实体识别用例的例子包括:
- 在财务说明书中指明公司和基金的名称。在这个例子中,公司名称可以使用开箱即用的模型来识别,而基金名称可以使用机器学习模型、确定性方法或两者的结合来识别。
- 标识语料库中文档之间的引用。在本例中,可以使用正则表达式(一种基于模式的实体识别方法)标识引用。
2. 情绪分析
情绪分析识别和分类文本中表达的意见,如新闻报道,社交媒体内容,评论等。在最简单的形式下,它可以将情绪分为积极和消极两类;但它也可以量化情绪(如-1到+1),或将其分类在一个更细粒度的水平(如非常负面、负面、中性、积极、非常积极)。
情感分析,像许多NLP技术一样,需要能够处理语言的复杂性。例如:
- 否定——像“不”和“决不”这样的词会改变所使用的词的感情。例如,“这部电影没有扣人心弦的情节,也没有可爱的角色。”
- 层次情感可以在不同程度上表达出来。例如,在“我喜欢它”、“我爱它”和“我绝对喜欢它”中,正能量在不断增加,但是“我真的很喜欢它”在这一进程中处于什么位置呢?
- 冲突-文本可能包括积极和消极的情绪。例如,“他们的第一张专辑很棒,但他们的第二张专辑是垃圾”应该被认为是积极的,消极的,或中性的?
- 含蓄——在句子“如果交货晚了,我会生气的”中,负面情绪是建立在一些没有发生,也可能不会发生的事情上的。在“They used to be good”这句话中,表达的是对过去的肯定情绪,但可能隐含的是对现在的否定情绪。
- 俚语——俚语的意思通常与传统意义相反。例如,“sick”这个词会有非常不同的含义,这取决于它使用的语境(“这家餐厅的食物让我恶心”vs.“那个新推出的视频游戏真恶心!”)或者作者的人口结构。
- 实体级——实体级情感分析通过在实体级而不是在文档或语句级考虑情感,提供了对情感更细粒度的理解。这将解决在“冲突”场景中看到的模糊性(“他们的第一张专辑很棒,但他们的第二张专辑是垃圾。”)。它通过给第一个专辑(第一个实体)分配积极的情绪,而给第二个专辑(第二个实体)分配消极的情绪来做到这一点。
情绪分析经常被用来分析与公司或其竞争对手有关的社交媒体帖子。它可以是一种强有力的工具:
- 跟踪一段时间内的情绪趋势
- 分析事件的影响(例如产品发布或重新设计)
- 识别关键影响者
- 提供危机的早期预警
3.文本相似度
文本相似性计算句子、段落和文档之间的相似性。
为了计算两个条目之间的相似度,必须首先将文本转换为表示文本的n维向量。这个向量可能包含文档中的关键字和实体,或者内容中表示的主题的表示。向量和文档之间的相似性可以通过余弦相似度等技术来测量。
文本相似性可用于检测文档或文档部分中的重复项和近似重复项。这里有两个例子:
- 通过比较论文内容的相似性来检查学术论文是否抄袭。
- 匹配求职者和工作,反之亦然。但在这种情况下,它关注的是关键特征(职位、技能等)之间的相似性,而不是严格的近似重复检测。对于这种类型的用例,语义相似性是有用的,因为考虑两种技能(如人工智能和机器学习)或职位(如数据科学家和数据架构师)可能是相关的,即使它们不完全相同,这是很重要的。
4. 文本分类
文本分类用于根据文本的内容将文本项分配给一个或多个类别。它有两个维度:
- 分类的数量——最简单的分类形式是二值分类,即只有两种可能的类别可以将一个项分类到其中。这方面的一个例子是垃圾邮件过滤,其中电子邮件分类为垃圾邮件或非垃圾邮件。多类或多项分类有两个以上的类,其中一个项可被分类到其中。
- 标签数量-单标签分类将一个项目精确地分类为一个类别,而多标签分类可以将一个项目分类为多个类别。将新闻文章分类到多个主题区域就是多标签分类的一个例子。
一般来说,类和标签的数量越少,预期的准确性就越高。
文本分类将使用文档中的单词、实体和短语来预测类。它还可以考虑其他特性,比如文档中包含的任何标题、元数据或图像。
文本分类的一个示例用例是文档(如邮件或电子邮件)的自动路由。文本分类用于确定文档应该发送到的队列,以便由适当的专家团队处理,从而节省时间和资源(例如,法律、市场营销、金融等)。
文本分类也可应用于文件的各部分(例如句子或段落),例如,用以确定信件的哪些部分提出了投诉,以及投诉的类型。
5. 信息提取
信息抽取从非结构化文本中提取结构化信息。
一个示例用例是标识信件的发送者。识别的主要手段是发送人的参考资料、身份证明或会员编号。如果没有找到,那么回退可能是发件人的姓名、邮政编码和出生日期。每一条信息都可以通过命名实体识别来识别,但是这本身是不够的,因为可能会找到多个实例。信息提取依赖于实体识别。对实体上下文的理解有助于确定哪个是正确的答案。例如,信件可能包含多个日期和邮政编码,因此有必要确定哪个是发件人的出生日期,哪个是发件人的邮政编码。
6. 关系抽取
关系提取提取两个或多个实体之间的语义关系。与信息抽取类似,关系抽取依赖于命名实体识别,但区别在于它特别关注实体之间的关系类型。关系提取可用于执行信息提取。
一些NLP包和服务提供了开箱即用的模型来提取关系,比如“雇员的”、“结婚的”和“出生的地点”。与命名实体识别一样,自定义关系类型可以通过训练特定的机器学习模型来提取。
关系提取可用于处理非结构化文档,以确定具体的关系,然后将这些关系用于填充知识图。
例如,该技术可以通过处理非结构化医学文档来提取疾病、症状、药物等之间的关系。
7. 综述
摘要缩短了文本,以创建一个连贯的主要观点的摘要。文本摘要有两种不同的方法:
- 基于提取的摘要在不修改原文的情况下提取句子或短语。这种方法生成由文档中最重要的N个句子组成的摘要。
- 基于摘要的摘要使用自然语言生成来改写和压缩文档。与基于提取的方法相比,这种方法更加复杂和实验性。
文本摘要可用于使人们能够快速地消化大量文档的内容,而不需要完全阅读它们。这方面的一个例子是新闻feed或科学出版物,它们经常生成大量的文档。
智能文档分析任务的复杂性
机器学习在非结构化文本上要比在结构化数据上复杂得多,因此在分析文本文档方面要达到或超过人类水平的性能要困难得多。
1. 语言的复杂性
由于语言所包含的变化、歧义、语境和关系,人类要花很多年才能理解语言。我们可以通过许多方法来表达相同的思想。我们根据作者和读者的不同使用不同的风格,并选择使用同义词来增加兴趣和避免重复。rda技术必须能够理解不同的样式、歧义和单词关系,从而获得准确的洞察。
IDA需要理解通用语言和特定领域的术语。处理特定领域术语的一种方法是使用自定义字典或构建用于实体提取、关系提取等的自定义机器学习模型。
解决将通用语言和特定领域术语结合在一起的问题的另一种方法是迁移学习。这需要一个已经训练了大量通用文本的现有神经网络,然后添加额外的层,并使用针对特定问题的少量内容来训练组合的模型。现有的神经网络类似于人类在学校发展的年代。额外的层次类似于当一个人离开学校并开始工作时发生的领域或特定任务学习。
2. 精度
rda技术的准确性取决于所使用的语言的多样性、风格和复杂性。它还可以取决于:
- 训练数据——机器学习模型的质量取决于训练数据的数量和质量。
- 类的数量——诸如文本分类、情感分析、实体提取和关系提取等技术的准确性将取决于类的数量和实体/关系的类型以及它们之间的重叠。
- 文档大小——对于某些技术,比如文本分类和相似性,大型文档很有帮助,因为它们提供了更多的上下文。情绪分析和总结等其他技术对大型文档的处理难度更大。
NLP-progress是一个网站,它追踪最常见的NLP任务上最先进的模型的准确性。这为可能达到的精确度水平提供了有用的指导。不过,要判断IDA是否会产生准确的结果,最好的指南是问问自己“人类做这件事有多容易?”“如果一个人可以在不经过多年培训的情况下学会准确地完成这项任务,那么IDA就有可能通过加快过程、保持一致性或减少体力劳动来带来好处。”
如何处理智能文档分析项目?
IDA项目可以通过以下两种方式之一集成到企业中:
- 自动化——rda用于自动化现有或新流程,无需任何人工干预
- 人在回路中——IDA用于在人做决策时提供支持,但人负有最终的责任。
所使用的方法应该取决于IDA所达到的准确性和做出错误决策的成本。如果错误决策的成本很高,那么考虑从人工循环开始,直到准确度足够高为止。
IDA项目最好以迭代的方式处理——从概念验证开始,以确定该方法是否可行,如果可行,所达到的精度是否表明使用了自动化或人在循环。然后迭代地增加复杂性,直到估计的工作量不能证明预期的收益。
对于您的第一个IDA项目,请考虑以下步骤:
- 选择一个不正确决策的低成本的用例,或者由人做出最终决策的用例;
- 从概念证明开始,确定方法是否可行;和
- 迭代地增加复杂性以提高应用程序的准确性。
此过程将使您熟悉这些技术,并使您的业务发起人在处理具有更高收益的更复杂的用例之前获得对它们的信心。
通过周密的计划和实施策略,您的组织可以利用上面讨论的NLP和机器学习技术来构建能够改善业务结果的IDA应用程序。
本文:http://jiagoushi.pro/node/1159
讨论:请加入知识星球【首席架构师智库】或者小号【jiagoushi_pro】