Ce n'est pas un problème de collecter des dizaines de milliers de sites, un algorithme qui peut analyser automatiquement les pages Web d'actualités

Entrez le texte de la page Web (pas besoin d'entrer xpath) et affichez automatiquement des informations telles que le titre, l'heure de publication, le corps, l'auteur, la source et d'autres informations de manière structurée.

image.png

Pour le trafic, le titre est un peu bluffant. Cependant, l'algorithme peut en effet être utilisé dans plusieurs sources et plusieurs sites. Il a été appliqué dans l'environnement de production et l'effet est bon.

Sous le front

Ouvrez l'adresse de l'expérience -> page d'expérience , la page d'expérience est relativement simple, principalement divisée en 3 zones : instructions d'expérience , zone de saisie des paramètres et zone d'affichage des résultats d'analyse .

Avant de commencer l'expérience, vous pouvez lire les instructions d'expérience.

① Ouvrez une page d'actualités, telle que Yongfu : le commissaire aux sciences et technologies forestières aide à planter du chanvre et du bambou .

② Cliquez ensuite avec le bouton droit sur l'espace vide de la page et sélectionnez Afficher le code source de la page dans l'onglet contextuel.

image.png

Ensuite, nous voyons le texte original de la page Web affiché dans la nouvelle fenêtre du navigateur

image.png

③ Sélectionnez tout le texte et copiez-le. Trouver un outil en ligne pour l' encodage Base64

④ Collez le texte original copié de la page Web dans la case 1, puis cliquez sur le bouton de cryptage , puis l'encodage Base64 correspondant apparaîtra dans la case 2, cliquez sur le bouton de copie pour copier le contenu dans le presse-papiers

image.png

⑤ Revenez à notre page d'expérience, collez le contenu Base64 dans la zone de page Web de la zone de saisie des paramètres et remplissez l' URL correspondant à cet article dans l'URL.

image.png

⑥ Cliquez sur le bouton Démarrer l'analyse, attendez un moment et une invite concernant le résultat de l'analyse apparaîtra sur la page d'expérience . Ensuite, vous pouvez glisser vers la zone d'affichage des résultats d'analyse ci-dessous pour afficher les résultats d'analyse.

image.png

La zone d'affichage des résultats d'analyse est principalement divisée en trois parties : informations sur l'interface , statistiques d'analyse fastidieuse et résultats d'analyse .

Les informations d'interface sont principalement des informations renvoyées par l'interface principale ;

Les statistiques chronophages d'analyse sont les enregistrements chronophages de chaque lien, en millisecondes ;

Les résultats de cet algorithme seront affichés dans le résultat de l'analyse, tels que le titre de l'article , la source de l'article , l' heure de publication de l'article , l' auteur de l'article , le corps de l'article , la balise HTML où se trouve le corps et l'attribut Class de la balise HTML où se trouve le corps est situé .

Il existe également des classifications d'articles d'articles, des balises d'articles, des résumés d'articles, etc. calculés en fonction du contenu du texte. La dénomination multi-entités + l'analyse des sentiments est toujours en formation, donc la page d'expérience n'est pas encore.

Je vous recommande de trouver d'autres pages d'actualités, de les copier et de les coller dans la page d'expérience de la même manière et de voir comment fonctionne l'algorithme.

A quoi sert cet algorithme

En fait, nous avons déjà vu ce genre d'algorithme dans l'application d'outils : le mode de lecture lancé par le navigateur 360 dans les premières années est presque un tel algorithme. Le mode lecture peut bloquer ces publicités, barres latérales et contenu de la barre inférieure, vous permettant de vous concentrer sur la lecture de documents et de romans.

image.png

Au niveau de la R&D, il joue également un grand rôle. Regardons quelques scénarios commerciaux :

① Supposons qu'une société d'opinion publique collecte des données d'articles d'actualité, en extrait le contenu, le marque et le forme, et forme finalement un produit d'opinion publique (comme Baidu Public Opinion, Sina Public Opinion).

image.png

② 再举个栗子,假设一个招投标类的公司,它采集招标类信息,然后对内容进行格式化提取,取出招标标题、标的金额、招标方信息、代理方信息、投标要求等,就可以形成一款招标产品(例如千里马招标)。

无论是新闻类网站,还是招投标信息类网站,站点数量都是非常庞大的,通常以万计。按照普遍做法,招一批爬虫工程师+一批专门写 xpath 规则的工作人员(通常是苦命的实习生),从这上万个站点中一个个 xpath 填写,然后爬虫采集的时候读取对应的 xpath 进行解析。

image.png

几十、一百个网站还好说,这上万个站点的数据想要全填进来,得好几个月。而且有些网站会出现页面规则改动,导致解析不到数据,那就需要每天都更新 xpath。你想想这工作量……

但是有了这样的算法,就不需要一个个 xpath 填写了。

image.png

你的团队/公司可以在短时间内采集到大量的数据,你说开不开心

这样的算法厉害吗

厉不厉害先不说,我们看看目前哪些地方有这样的算法或者产品。

1、之前有提到过 360 浏览器(现在其他厂商的浏览器)有这样的产品。

2、微软好像有类似能力,还开放了 API 接口。

3、国外开源的 Python 库 Readability。

4、国内开源的 Python 库 GNE。

5、国内一些硕士的研究论文(可以在百度文库搜到)。

6、其他基于深度学习的库,不记得名字了。我记得微软工程师崔庆才写过。

7、国外一个网站,名字忘记了,收费的,很贵很贵。

8、国外有一款 Java 写的,名字里带 News 的,忘记了。

大家现在体验的这款算法,启蒙于 GNE。GNE 早期我通读过源码,跟原作者有过很多交流,请教过很多知识。后来我写的书《Python3 网络爬虫宝典》中有一章是讲解 GNE 算法原理和源码的,在此再次感谢 GNE 作者青南。

浏览器的阅读模式我体验过、Readability 我通过读源码、国内能找到的相关论文我也通读了一遍。目前深度学习相关的库、收费的接口没有测试过。

这类自动解析算法的好坏在几点:效率提取能力准确率。我对自己接触过的几个算法评价一下:

1、Readabiliti 是基于 HTML 标签权重进行评分的,例如 p 标签的权重比 div 的高、h 的比 span 的高等等。在很规范的新闻网站中,效果还可以,但大体上算出来的结果,很是离谱。

2、GNE-早期,GNE 早期是基于标点符号密度的,90% 以上的网页正文解析都没什么问题。但是在实际应用中发现几个问题:内容会被截断、正文字少的会识别错误、发布时间跟页面显示不同等。正文提取相关的问题,都是因为密度算法导致的。时间不准则是因为提取优先级和逻辑选择了另一种方式。

3、国内论文,因为国外的我看不懂,我只能搜国内的来看。普遍来看,基于文字密度、标点符号密度、位置、距离等等,效果其实都是不怎么好的。这里你可能会问,为什么论文里的结果很好?

那是因为测试的样本选得好啊!!!

4、GNE-现代,GNE 现代款是基于人类视觉+新闻网页特征规则编写的,大体的逻辑是网页内容通常在网页的中间,这样可以排除左右和上下的噪声。中间的噪声通过块的长短来进行判断,最终可以提取到很准确的正文。

image.png

不能泄露太多,我举个例子。上图中的蓝色块是放置图片的位置。站在 GNE-现代的视角,它会认为蓝色块的宽度跟下面文本的宽度不同,因此这块就会是噪声,应当排除。

那些需要大量样本训练的深度学习类算法咱就不说了,毕竟没有亲身体验过。但有一点可以确定,单纯靠分类、回归类的深度学习是不可能取得好成绩的。不知道现在 bert 模型出来后,有没有人训练出更好的模型。

Résumé de la comparaison : Parmi les exemples listés ci-dessus, l'extraction de parties du corps de GNE-Modern est la meilleure, mais je rappelle qu'elle nécessite le rendu du navigateur, et il semble qu'une bonne solution n'ait pas été trouvée en termes d'efficacité.

L'algorithme de cet article, vous pouvez en faire l'expérience, après tout, l'expérience réelle peut prouver si c'est bon ou non. Je pense que l'algorithme de cet article peut être classé en termes d' efficacité + précision + capacité d'extraction .

Quelle est la logique de l'algorithme

image.png

Désolé, je ne vais pas discuter de ce problème maintenant, le suivant.

Quels algorithmes sont référencés

Comme mentionné précédemment, j'ai lu le code source de Readability et GNE-early, et j'ai lu la plupart des articles connexes en Chine.

Au début, j'étais basé sur l'optimisation et la transformation précoces de GNE.

Après avoir lu de nombreux documents liés à l'apprentissage en profondeur, j'ai finalement décidé de ne pas emprunter cette voie, car il s'est avéré que l'effet n'atteignait pas l'effet que je souhaitais.

Puis soudain, un jour, j'étais là en train de regarder l'épisode de "Nine Songs in the Sky" pour choisir cet épisode, et j'ai eu l'inspiration. Après un court codage, je l'ai testé et j'ai trouvé que le résultat était réalisable, alors je me suis plongé dedans. Cette cravate a 20 ans...

tort

est de 200 jours

Quelles zones peuvent être redimensionnées horizontalement

Maintenant, il est principalement utilisé dans l'analyse des données d'actualités et peut être étendu à l'analyse des pages Web d'enchères, à l'analyse des pages Web de commerce électronique, à l'analyse des pages Web sur les médicaments, etc.

Si vous l'examinez dans une perspective d'apprentissage en profondeur, ils peuvent nécessiter une formation différente, des échantillons différents et des modèles algorithmiques différents. Mais du point de vue de mon principe d'algorithme, ils sont tous les mêmes, et avec les modifications appropriées, nous pouvons obtenir un algorithme analytique dans un autre domaine.

Hors sujet

Avant d'interviewer une société cotée appelée Whatke, je lui ai parlé des crawlers distribués et des algorithmes d'analyse automatisés.

L'intervieweur n'y croyait pas, j'ai fait des dessins pour vulgariser ses connaissances, mais je n'y croyais toujours pas.

J'ai dit qu'en termes de transfert de données, il vaut mieux utiliser des files d'attente de messages que redis, et je vais argumenter avec moi. J'ai donc répertorié quelques points de connaissance et scénarios de mécanisme de confirmation de message, de couche tampon et de multi-abonnement. En fin de compte, il est préférable de s'en tenir à redis.

Il ne pouvait pas me parler en théorie, mais je n'ai pas été au second tour Tu as dit que c'était fait ?

Je suppose que tu aimes

Origine juejin.im/post/7078220041417654302
conseillé
Classement