原文地址:
https://blog.safe.com/2018/12/fme-natural-language-processing-evangelist182/?tdsourcetag=s_pcqq_aiomsg
Hola amigos!怎么样了?整样都行?2019年新推出的FME新版本非常精彩,如果你还在用老版本的FME我会告诉你这些内容。
好的,这就是本次博客文章的独特开场白!通常我的风格是很正式的,(我希望)更清晰。但我想从更自然的演讲开始,因为今天我正在报道自然语言处理(NLP); FME2019即将推出新功能。
NLP是一种用于自然人类语言的计算机学习技术。从技术上来讲,自然语言是任何已经发展的正常语言。它不一定是俚语,但不是每个人都以正式规范的方式来写作,所以你经常要处理包含不寻常短语的文本。
NLP甚至可以让计算机产生类似人类的语音!但今天我想展示它的一个特定的方面:基于先前的例子挖掘信息并对其进行分类的能力。
我们来看看如何实现......
FME自然语言处理:场景
为了测试FME的新功能,我需要一个信息来源 - 在NLP中它被称为语料库 - 幸运的是我发现了一个产品评论的形式。每个评论都与一个标签相匹配,以确定它是正面还是负面评论:
__label__1 Very disappointed!: This is just AWFUL!
__label__2 Good book: Well written.
__label__1非常失望!:这太糟糕了!
__label__2好书:写得好。
因此标签1表示负面评论,标签2表示正面评论。我可以使用它来让FME了解评论的正面或负面评价,然后提供未经标记的评论,以便对我进行分类。这通常被称为情绪分析 ......
FME自然语言处理:转换器
FME2019有两个新的转换器:NLPTrainer和NLPClassifier。NLPTrainer是我提供标记评论的内容,用于构建模型。NLPClassifier被提供新的评论,并将它们与其评论模型进行比较,将其分类为正面或负面。
由于这是一个相当新的测试版功能,并且因为博客上的文字可能比预期的更持久,我想我会使用视频进行演示:
https://youtu.be/Xv-nC_oGLag
我忘了提几件事。首先,转换器的输出还包括摘要要素,其中包含有关准确度和使用的关键字的信息。
其次,NLP(大多数)是语言不可知的。假设它是一个类似英语的句子结构,但对于存储在其他语言中的数据也可以正常工作。我想你必须用你要测试的同一种语言进行训练!
最后,您无法添加内容到模型中。您可以使用新训练内容来覆盖它,但不能添加它。因此,您可能会保留原始语料库,添加到该语料库,并在必要时重新创建模型。
无论如何,希望视频能帮助你理解我所说的内容(双关语)。虽然NLP很有意思,但FME用户可以做些什么呢?
FME自然语言处理:示例
我总是想举几个例子来说明可以使用什么新技术。有时候我的想法和想法无处可去,我也没有提及。今天我要提到这些以帮助你远离我认为的死胡同。
数据分类和质量保证
分类?好吧......显然。这就是上面的视频已经显示的内容。我认为这是最有可能在FME中使用的。
一个想法是采取天气预报并对其进行分类。例如,我想知道我是否可以在闪电可能发生的条件下训练模型。然后我通过NLPClassifier转换器运行新的预测,看看今天的条件是否有利于闪电发生(此时我可以发出警告),我在此处看到很多可能性。
这也让我想知道NLP是否可以支持数据质量保证。起初我虽然是地址数据库。如果我根据好的和坏的地址之间的差异训练NLP,它可能有助于在它们发生时发现未来的问题吗?有可能; 但是据我所知地址是非常有条理的- NLP是关于非结构化的人类语言。因此,虽然我没有尝试过,但我认为最好坚持使用标准转换器(Tester,AttributeValidator)来进行QA结构化数据,并在输入写入句子时使用NLP。
使用自然语言处理对数据进行分类和QA数据可以通过提高输入质量来提高输出的相关性。但是如果NLP分析的是输出要怎么办...
商业智能产品
你有没有想过用FME创建BI产品?你不会是第一个!事实上,之前的博客帖子中有一个合作伙伴(setld)正在这样做:
https://blog.safe.com/2017/09/setld-fme-4-vs-big-data-building-business-intelligence-products/
setld,FME和4 V大数据:构建商业智能“产品”
该文章中的一个关键句子是“根据一个字段值来查找表(该字段维护)来评估数据,以便排名前100个新闻片段”。
我并不知道他们的完整方法,但对我来说,他们维护的查找表等同于FME现在可以构建的NLP模型。虽然它可能不是1:1的替代品,但这些新的转换器可能能够自动执行一些查找表维护。
基本上从NLP输出制作产品是一种真正的可能性。但它也可以帮助内部流程......
营销
Safe Software软件营销团队必须具有触发器来报告新的FME相关内容。但谷歌警报 - 据我所知 - 只是关键字搜索:
是的...对不起谷歌,但那不是正确的FME。当然,这是可以理解的,因为他们的警报不能满足我们的需求。但是为什么我们的营销团队不去创建NLP模型并通过NLPClassifier运行未来的警报喃,以过滤掉那些不是我们感兴趣的FME?如果您在一家拥有营销团队的公司工作,您可以通过这样做来帮助他们。
到目前为止我提到的NLP例子都是非空间的。那么我们可以将地理纳入NLP ......
空间NLP
假设您正在制作关于自然灾害的Twitter(推特)警报。在将信息添加到地图之前,NLP可以评估推文的相关性。例如,我猜一个经过适当训练的模型能够分辨出“帮助!我的房子着火了(FIRE)!“和”Yikes!我的老板要开除(FIRE)我!“基本上你在数据进入你的地图之前添加一层过滤,通过教你的计算机来评估推文中”火“(FIRE)这个词的背景。
有趣的是 - 正如本文所提到的 - 您也可以分析语言以获取有关位置的提示。例如,鉴于推文:“Springfield(斯普林菲尔德)的龙卷风!在卡特伍德(Cottonwood)河的北部,“NLP能够识别”斯普林菲尔德“和”卡特伍德河“作为地名(我相信这称为命名实体识别)。
当然,美国有很多斯普林菲尔德,但是一个训练有素的模型甚至可以通过参考卡顿伍德河来判断它是哪个斯普林菲尔德。
但为什么使用NLP?人类为什么不解释?因为我们谈论的是自动化系统。是的,一个人可以解释这样的信息,但不是大规模的,不是高效的,更不是自动的。但是使用NLP和FME Server可以做到!
我真正想知道的是空间数据本身是否可以用作输入!例如,如果我使用标有坐标系的点要素训练NLP模型,我可以让NLPClassifier来识别未标记数据的坐标系吗?可能不行。这也是结构化数据,而且我认为NLP只适用于单词,而不是数字。但有时让想象力变得狂野是很有趣的!
FME自然语言处理:总结
因此,这是FME2019即将推出的自然语言处理功能的粗略指南。
一般来说,我们可以说很多FME使用原始数据并从中获取有用的信息; 无论是转换格式,重组数据还是过滤内容。当你以这种方式看待FME时,真的就是商业智能。甚至空间数据和映射也是为了向正确的人提供正确的信息,以便做出更好的业务决策。
NLP可以为此提供很大帮助。
到目前为止,我对NLP模型所采用的结构或某些转换器参数的作用一无所知; 所以你应该把我的建议作为一般性的想法,而不是明确的规则。
我希望我给你的是一个基本的理解,之后你会发现它更容易实验。
顺便说一句,如果您一直观看视频到底,您对FME包文件有何看法?很酷,嗯?这将是FME如何交付和更新的巨大发展。我认为它实际上可能对2019年计划的所有更新产生最大影响。
我不知道NLP是否完全处于最新测试阶段,因为它是如何打包的,但是如果您想尝试一下,那么请联系我们。如果您有任何一般性问题,同样适用。正如我们在东米德兰兹所说的那样,bungem ovva让我感到害怕!