python - 通过机器学习从网页中提取信息

标签 python machine-learning html-parsing web-scraping extract

我想在 Python 中从网页中提取特定类型的信息。让我们说邮政地址。它有数千种形式,但仍然可以以某种方式识别。由于形式众多,编写正则表达式甚至类似语法之类的东西并使用解析器生成器可能会非常困难strong> 用于解析它。

所以我认为我应该走的路是机器学习。如果我理解得很好,我应该能够制作一个数据样本,我将在其中指出应该是什么结果,然后我可以从中学习如何自行识别结果。这就是我对机器学习的全部了解。也许我可以使用一些 自然语言 处理,但可能不会太多,因为所有库都主要使用英语,而我需要捷克语。

问题:

  1. 我可以通过机器学习轻松解决这个问题吗?这是一个好方法吗?
  2. 是否有任何简单示例可以让我开始?我是机器学习菜鸟,我需要一些实用的东西来开始;离我的问题越近越好;越简单越好。
  3. 有大量用于机器学习的 Python 库。哪一个最适合我的问题?
  4. 很多这样的库都没有非常易于使用的文档,因为它们来自科学环境。是否有任何好的资源(书籍、文章、快速入门)弥合差距,即专注于对机器学习一无所知的新手?我打开的每个文档都以我不理解的术语开头,例如 networkclassificationdatasets 等。

更新:

正如你们都提到的,我应该展示一段我试图从网络中获取的数据,这里有一个例子。我对电影放映时间很感兴趣。它们看起来像这样(其中三个):

<div class="Datum" rel="d_0">27. června – středa, 20.00
</div><input class="Datum_cas" id="2012-06-27" readonly=""><a href="index.php?den=0" rel="0" class="Nazev">Zahájení letního kina 
</a><div style="display: block;" class="ajax_box d-0">
<span class="ajax_box Orig_nazev">zábava • hudba • film • letní bar
</span>
<span class="Tech_info">Svět podle Fagi
</span>
<span class="Popis">Facebooková  komiksová Fagi v podání divadla DNO. Divoké písně, co nezařadíte, ale slušně si na ně zařádíte. Slovní smyčky, co se na nich jde oběsit. Kabaret, improvizace, písně, humor, zběsilost i v srdci.<br>Koncert Tres Quatros Kvintet. Instrumentální muzika s pevným funkovým groovem, jazzovými standardy a neodmyslitelnými improvizacemi.
</span>
<input class="Datum_cas" id="ajax_0" type="text">
</div>

<div class="Datum" rel="d_1">27. června – středa, 21.30
</div><input class="Datum_cas" id="2012-06-27" readonly=""><a href="index.php?den=1" rel="1" class="Nazev">Soul Kitchen
</a><div style="display: block;" class="ajax_box d-1">
<span class="ajax_box Orig_nazev">Soul Kitchen
</span>
<span class="Tech_info">Komedie, Německo, 2009, 99 min., čes. a angl. tit.
</span>
<span class="Rezie">REŽIE: Fatih Akin 
</span>
<span class="Hraji">HRAJÍ: Adam Bousdoukos, Moritz Bleibtreu, Birol Ünel, Wotan Wilke Möhring
</span>
<span class="Popis">Poslední film miláčka publika Fatiho Akina, je turbulentním vyznáním lásky multikulturnímu Hamburku. S humorem zde Akin vykresluje příběh Řeka žijícího v Německu, který z malého bufetu vytvoří originální restauraci, jež se brzy stane oblíbenou hudební scénou. "Soul Kitchen" je skvělá komedie o přátelství, lásce, rozchodu a boji o domov, který je třeba v dnešním nevypočitatelném světě chránit víc než kdykoliv předtím. Zvláštní cena poroty na festivalu v Benátkách
</span>
<input class="Datum_cas" id="ajax_1" type="text">
</div>

<div class="Datum" rel="d_2">28. června – čtvrtek, 21:30
</div><input class="Datum_cas" id="2012-06-28" readonly=""><a href="index.php?den=2" rel="2" class="Nazev">Rodina je základ státu
</a><div style="display: block;" class="ajax_box d-2">
<span class="Tech_info">Drama, Česko, 2011, 103 min.
</span>
<span class="Rezie">REŽIE: Robert Sedláček
</span>
<span class="Hraji">HRAJÍ: Igor Chmela, Eva Vrbková, Martin Finger, Monika A. Fingerová, Simona Babčáková, Jiří Vyorálek, Jan Fišar, Jan Budař, Marek Taclík, Marek Daniel
</span>
<span class="Popis">Když vám hoří půda pod nohama, není nad rodinný výlet. Bývalý učitel dějepisu, který dosáhl vysokého manažerského postu ve významném finančním ústavu, si řadu let spokojeně žije společně se svou rodinou v luxusní vile na okraji Prahy. Bezstarostný život ale netrvá věčně a na povrch začnou vyplouvat machinace s penězi klientů týkající se celého vedení banky. Libor se následně ocitá pod dohledem policejních vyšetřovatelů, kteří mu začnou tvrdě šlapat na paty. Snaží se uniknout před hrozícím vězením a oddálit osvětlení celé situace své nic netušící manželce. Rozhodne se tak pro netradiční útěk, kdy pod záminkou společné dovolené odveze celou rodinu na jižní Moravu…  Rodinný výlet nebo zoufalý úprk před spravedlností? Igor Chmela, Eva Vrbková a Simona Babčáková v rodinném dramatu a neobyčejné road-movie inspirované skutečností.
</span>

或者像这样:

<strong>POSEL&nbsp;&nbsp; 18.10.-22.10 v 18:30 </strong><br>Drama. ČR/90´. Režie: Vladimír Michálek Hrají: Matěj Hádek, Eva Leinbergerová, Jiří Vyorávek<br>Třicátník Petr miluje kolo a své vášni podřizuje celý svůj život. Neplánuje, neplatí účty, neřeší nic, co může<br>počkat  do zítra. Budování společného života s přételkyní je mu proti srsti  stejně jako dělat kariéru. Aby mohl jezdit na kole, raději pracuje jako  poslíček. Jeho život je neřízená střela, ve které neplatí žádná  pravidla. Ale problémy se na sebe na kupí a je stále těžší před nimi  ujet …<br> <br>

<strong>VE STÍNU&nbsp; 18.10.-24.10. ve 20:30 a 20.10.-22.10. též v 16:15</strong><br>Krimi. ČR/98´. Režie: D.Vondříček Hrají: I.Trojan, S.Koch, S.Norisová, J.Štěpnička, M.Taclík<br>Kapitán  Hakl (Ivan Trojan) vyšetřuje krádež v klenotnictví. Z běžné vloupačky  se ale vlivem zákulisních intrik tajné policie začíná stávat politická  kauza. Z nařízení Státní bezpečnosti přebírá Haklovo vyšetřování major  Zenke (Sebastian Koch), policejní specialista z NDR, pod jehož vedením  se vyšetřování ubírá jiným směrem, než Haklovi napovídá instinkt  zkušeného kriminalisty. Na vlastní pěst pokračuje ve vyšetřování. Může  jediný spravedlivý obstát v boji s dobře propojenou sítí komunistické  policie?&nbsp; Protivník je silný a Hakl se brzy přesvědčuje, že věřit nelze  nikomu a ničemu. Každý má svůj stín minulosti, své slabé místo, které  dokáže z obětí udělat viníky a z viníků hrdiny. <br><br>

<strong>ASTERIX A OBELIX VE SLUŽBÁCH JEJÍHO VELIČENSTVA&nbsp; ve 3D&nbsp;&nbsp;&nbsp; 20.10.-21.10. ve 13:45 </strong><br>Dobrodružná fantazy. Fr./124´. ČESKÝ DABING. Režie: Laurent Tirard<br>Hrají: Gérard Depardieu, Edouard Baer, Fabrice Luchini<br>Pod  vedením Julia Caesara napadly proslulé římské legie Británii. Jedné  malé vesničce se však daří statečně odolávat, ale každým dnem je slabší a  slabší. Britská královna proto vyslala svého věrného důstojníka  Anticlimaxe, aby vyhledal pomoc u Galů v druhé malinké vesničce ve  Francii vyhlášené svým důmyslným bojem proti Římanům… Když Anticlimax  popsal zoufalou situaci svých lidí, Galové mu darovali barel svého  kouzelného lektvaru a Astérix a Obélix jsou pověřeni doprovodit ho domů.  Jakmile dorazí do Británie, Anticlimax jim představí místní zvyky ve  vší parádě a všichni to pořádně roztočí! Vytočený Caesar se však  rozhodne naverbovat Normanďany, hrůzu nahánějící bojovníky Severu, aby  jednou provždy skoncovali s Brity. <br><br>

或者它可以看起来像任何类似的东西。 HTML标记中没有特殊规则,顺序没有特殊规则等。

最佳答案

首先,您的任务适合信息提取研究领域。此任务主要有 2 个复杂程度:

  • 从给定的 html 页面或具有固定模板的网站中提取 (如亚马逊)。在这种情况下,最好的方法是查看 HTML 代码 页面并制作相应的 XPath 或 DOM 选择器以 获取正确的信息。这种方法的缺点是它 不能推广到新网站,因为你必须这样做 每个网站一个一个。
  • 创建一个提取相同内容的模型 来自同一域内多个网站的信息(具有 假设 web 的方式有一些内在的规律性 设计师提供相应的属性,如 zip 或 phone 或其他任何东西)。在这种情况下,您应该创建一些功能(使用 ML 方法并让 IE 算法“理解页面内容”)。最常见的特征是:DOM 路径、要提取的值(属性)的格式、布局(如粗体、斜体等)以及周围的上下文词。您标记一些值(根据域,您至少需要 100-300 页才能以某种合理的质量进行操作)。然后在标记的页面上训练模型。还有一种替代方法 - 以无监督的方式进行 IE(利用跨页面信息规律性的想法)。在这种情况下,您/您的算法会尝试在页面之间找到​​重复模式(没有标签),并认为最常见的那些是有效的。

总体而言,最具挑战性的部分将是使用 DOM 树并生成正确的特征。以正确的方式标记数据也是一项乏味的任务。对于 ML 模型 - 查看 CRF、2DCRF、半马尔可夫 CRF

最后,这在一般情况下是 IE 研究的前沿,而不是你可以在几个晚上完成的 hack。

附言我也认为 NLTK 不会很有帮助 - 它是一个 NLP,而不是 Web-IE 库。

关于python - 通过机器学习从网页中提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13336576/

相关文章:

python - Numpy 二维数组,获取指定列索引等于 1 的行的索引

python - 单击时 OptionMenu 不会显示第一个选项 (Tkinter)

python - Django Python 中的搜索字段

python - 一个好的 django 搜索应用程序? — 如何用Haystack进行模糊搜索?

python - Keras - 负余弦邻近损失

python - 训练后Keras合并单张图片的批处理

java - 如何使该方法识别出传递的文本参数是文件名?

matlab - for 循环迭代次数过多 - for 循环终止

python - BeautifulSoup 循环遍历 url

python - BeautifulSoup 只查找属性包含子字符串的元素?这可能吗?