事实:达观智能文本分析系统,赋能企业大数据加工处理
优采云 发布时间: 2022-10-14 18:17事实:达观智能文本分析系统,赋能企业大数据加工处理
企业面临的痛点和挑战
标签是用于标识产品目标和类别或内容的关键字,是您和他人查找和定位目标的便捷工具。
让我们通过几段商业研究来了解标签应用的现状
根据以上反馈,我们知道,面对海量的信息数据,用户迫切需要一个“智能”平台来帮助实现信息的自动分类和标记。只有具备数据的智能处理能力,“大数据”才能真正解放人力,体现其价值。
大观产品帮助企业解决具体问题
标注分类是大观智能文本分析系统的一个小应用。目前已应用于金融信息标签、政策分析标签、信息舆情标签、运营商工单分析标签、制造舆情标签、研究报告分析标签、论坛/评论、评论等场景的项目案例非常丰富。舆情分析,以及智能文档提取、文档纠错、文本审核、智能搜索、智能推荐、智能舆情、知识图谱、RPA等丰富的产品组合,为企业文本提供智能办公。护送。
大观智能文本分析系统可根据各行业用户特点构建多行业特定语义模型,进行*敏*感*词*采集/对接,对海量数据进行有效清洗和融合;自主研发的融合NLP算法更能对复杂的行业信息和用户行为数据进行词级、句法级、章节级文本分析处理,有效获取相关事件标签、情感标签、行业标签、行业分类标签、区域标签等。在信息发现、分析、挖掘的过程中,在保证高精度的前提下,大大降低了人工成本,文本分析效率提升近百倍体力劳动!
那么,如何帮助企业从0-1打造属于自己的智能标签系统呢?
1. 制定科学的标签制度
根据用户的需求,大观团队将利用以往的项目经验和聚类算法,帮助客户从庞大的一级宏观指标拆分到一级、二级标签到具体全面的下层熟悉行业分类体系的背景。细粒度标签,从而制定出符合客户需求的科学、个性化的标签体系,流程效果如下:
图题系统搭建流程
2.PDCA标签优化机制
在NLP领域,没有100%准确的模型,只有制定专业合理的标注方案,在执行期间详细记录发生的badcase,优化标注系统和算法模型的方法可以通过分析问题找到。一般经过三轮优化后,标注效果可以明显提升。
图 PDCA 标签优化机制
3.专业的智能标签工具
大观智能文本分析系统可以一站式完成:构建标签系统→标注标签样本→模型训练→模型调优→模型评估→模型上线。下面我们来看几张产品页面的截图:
图智能标签系统流程
图预设多套成熟的行业标签模型
图形丰富且可配置的标签提取方案
便捷的在线标注、提取和审核界面
图一键自学习机制,模型不断迭代
在以往的落地项目中,标签的召回率和准确率都达到了90%以上。
直观:大数据中数据采集的几种方式
1.采集大数据的方法 1.1 采集通过系统日志获取大数据
用于系统日志的工具采集目前使用最广泛:Hadoop的Chukwa、Apache Flume的Scribe、Facebook、LinkedIn的Kafka。这里我们主要学习Flume。
Flume 是一个高可靠的分布式采集、聚合和传输系统。Flume 支持在日志系统中自定义各种数据发送方,在这些接收方之间采集数据,对数据进行简单的处理,并在这些接收方之间写入文本、HDFS 等数据。
Flume的核心其实就是从数据源采集数据,然后将采集到的数据发送到指定的目的地……
1.2 采集互联网大数据
网络采集是指通过网络爬虫或网站公共API等从网站获取大数据信息,该方法可以从网页中提取非结构化数据,并将其转换为统一的本地存储数据文件并以结构化方式存储。支持图片、音频、视频等文件或附件的采集。
一般来说,网络爬虫工具基本上可以分为三类:分布式网络爬虫工具(Nutch)、Java网络爬虫工具(Crawler4j、WebMagic、WebCollector)和非Java网络爬虫工具(Scrapy)。
1.2.1 网络爬虫原理
所谓网络爬虫,其实就是按照一定的规则自动抓取网络信息的程序或脚本。
网络爬虫可以自动采集所有可以访问的页面内容,为搜索引擎和大数据分析提供数据源。一般有数据采集、数据处理和数据存储三个功能。
网络爬虫如何抓取数据?这是因为除了供用户浏览的文本信息外,网页还收录一些超链接信息。通过获取这些超链接URL并辅以一定的算法,爬虫就可以获取数据。
1.2.2 爬虫工作流程
基本上,爬虫会先获取一部分*敏*感*词*URL,将这些URL放入待爬取的URL队列中,从队列中取出待爬取的URL,解析DNS获取主机IP,下载并存储URL 对应的网页。最后,将这些 URL 放入爬取队列中,以此类推。
1.2.3 爬虫的爬取策略
Internet 上的网页数量以数亿为单位。应该用什么策略来爬取这些网页的数据成为了一个问题,大致可以分为几种。
1.3 具体爬虫工具 1.3.1Scrapy
Scrapy 是一个应用程序框架,用于抓取 网站 数据并提取结构化数据。它可以用于一系列程序,包括数据挖掘、信息处理或存储历史数据。
Scrpay虽然很强大,但是适合Python,而且我碰巧没接触过Python,所以这部分只是为了了解...
1.3.2 Crawler4j、WebMagic、WebCollector
这三个都是JAVA单机爬虫开源框架。不同之处可能在于算法和调度?我搜索了这一点并找不到它,所以让我们这么想吧。
这里我将使用 WebMagic 制作一个 Demo 并尝试一下!
1.4 运行 WebMagic
百度之后找到了WebMagic的官方文档
用里面的例子测试它:
public class GithubRepoPageProcessor implements PageProcessor {
// 部分一:抓取网站的相关配置,包括编码、抓取间隔、重试次数等
private Site site = Site.me().setRetryTimes(3).setSleepTime(1000);
@Override
// process是定制爬虫逻辑的核心接口,在这里编写抽取逻辑
public void process(Page page) {
// 部分二:定义如何抽取页面信息,并保存下来
page.putField("author", page.getUrl().regex("https://github\\.com/(\\w+)/.*").toString());
page.putField("name", page.getHtml().xpath("//h1[@class='entry-title public']/strong/a/text()").toString());
if (page.getResultItems().get("name") == null) {
//skip this page
page.setSkip(true);
}
page.putField("readme", page.getHtml().xpath("//div[@id='readme']/tidyText()"));
<p>
// 部分三:从页面发现后续的url地址来抓取
page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-]+/[\\w\\-]+)").all());
}
@Override
public Site getSite() {
return site;
}
public static void main(String[] args) {
Spider.create(new GithubRepoPageProcessor())
//从"https://github.com/code4craft"开始抓
.addUrl("https://github.com/code4craft")
//开启5个线程抓取
.thread(5)
//启动爬虫
.run();
}
}</p>
跑了一波后,发现报错了……
log4j:WARN No appenders could be found for logger (us.codecraft.webmagic.scheduler.QueueScheduler).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
乍一看是log4j的问题,试试添加配置文件log4j.properties再运行一下,嗯?还是报错...
好吧,看看官方文档,原作者说:
WebMagic使用slf4j-log4j12作为slf4j的实现.如果你自己定制了slf4j的实现,请在项目中去掉此依赖。
好的,让我用普通的 log4j 依赖项替换:
org.slf4j
slf4j-log4j12
1.7.25
果然,经过这些操作,就可以正常运行了,点击运行即可运行!有一个新的问题...
[us.codecraft.webmagic.Spider] - Spider github.com started!
[us.codecraft.webmagic.downloader.HttpClientDownloader] - download page https://github.com/code4craft error
会不会是网络的“不可抗力问题”,所以失败了?
终于在官方文档上找到了另一个demo,尝试使用:
public class SinaBlogProcessor implements PageProcessor {
public static final String URL_LIST = "http://blog\\.sina\\.com\\.cn/s/articlelist_1487828712_0_\\d+\\.html";
<p>
public static final String URL_POST = "http://blog\\.sina\\.com\\.cn/s/blog_\\w+\\.html";
private Site site = Site
.me()
.setDomain("blog.sina.com.cn")
.setSleepTime(3000)
.setUserAgent(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");
@Override
public void process(Page page) {
//列表页
if (page.getUrl().regex(URL_LIST).match()) {
page.addTargetRequests(page.getHtml().xpath("//div[@class=\"articleList\"]").links().regex(URL_POST).all());
page.addTargetRequests(page.getHtml().links().regex(URL_LIST).all());
//文章页
} else {
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath("//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",
page.getHtml().xpath("//div[@id='articlebody']//span[@class='time SG_txtc']").regex("\\((.*)\\)"));
}
}
@Override
public Site getSite() {
return site;
}
public static void main(String[] args) {
Spider.create(new SinaBlogProcessor()).addUrl("http://blog.sina.com.cn/s/articlelist_1487828712_0_1.html")
.run();
}
}</p>
嗯,这个demo爬取了博客的数据,不存在“不可抗力问题”,这次成功了。
总结
数据采集很可能是通过系统日志获取的,通过爬虫获取的。虽然爬虫中的WebMagic方法已经测试过了,但也只是简单的运行。中间想修改代码,达到我想要的效果。,但是因为时间的问题,并没有系统地学习其中用到的正则表达式,所以只能后悔,把这个想法留到以后再说。
参考
WebMagic 官方文档
C语言中文网站