我想用Python从web页面中提取特定类型的信息。比如说邮政地址。它有上千种形式,但它还是可以识别的。由于有大量的表单,编写正则表达式,甚至编写类似语法的语法,并使用语法分析器生成器对其进行解析可能会非常困难。
所以我认为我应该走的路是机器学习。如果我理解的很好,我应该能够做一个数据样本,在那里我将指出什么应该是结果,然后我有一些东西可以从中学习如何识别结果本身。这是我对机器学习的全部了解。也许我可以使用一些自然语言处理,但可能不是所有的库都主要使用英语,我需要这个用于捷克语。
问题:
更新:
正如你们所提到的,我应该展示一段我试图从网络上获取的数据,下面是一个例子。我对电影有兴趣。它们看起来像这样(其中三个):
<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 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 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? 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 ve 3D 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标记中没有特殊规则,顺序中没有特殊规则等
据我所知,使用机器学习方法有两种方法来完成这项任务。
1.使用计算机视觉来训练模型,然后根据您的用例提取内容,这已经由diffbot.com.实现 而且他们还没有开源的解决方案。
2.解决这个问题的另一种方法是使用有监督的机器学习来训练二进制分类器来对内容和样板进行分类,然后提取内容。这种方法用于dragnet. 以及这方面的其他研究。您可以查看不同内容提取技术中的benchmark comparison。
至于自然语言处理,如果你使用python,你绝对应该检查奇妙的(IMHO,不附属于它们的)Natural Language Toolkit,它有很多算法的实现,其中许多算法是语言不可知的(比如n-grams)。
对于python中的机器学习库的推荐,我认为这取决于您想使用什么技术,but opencv implements some common algorithms。机器学习是一个非常广阔的领域。对于监督学习分类子问题,有朴素贝叶斯,KNN,决策树,支持向量机,至少十几种不同类型的神经网络。。。名单上有很多。这就是为什么,正如你所说,一般来说,机器学习没有“快速入门”或教程。我的建议是,首先,理解基本的ML术语,其次,理解一个子问题(我建议监督学习分类),然后,研究一个简单的算法来解决这个子问题(a3依赖于高中数学)。
特别是关于您的问题:似乎您希望检测大型数据集(文本)中是否存在一段数据(邮政编码),即AFAIK,而不是问题ML处理的类型。分类算法需要相对较小的feature vector。要获得这一点,您需要执行所谓的a dimensionality reduction:这意味着,隔离看起来像潜在邮政编码的部分。只有这样分类算法才能对其进行分类(例如,将其归类为“邮政编码”或“非邮政编码”)。
因此,在考虑使用ML解决此问题之前,您需要找到隔离潜在匹配项的方法。如您所说,如果您不使用或不能使用regex或解析,这肯定需要自然语言处理。
首先,你的任务属于信息提取领域。此任务的复杂性主要有两个级别:
总的来说,最具挑战性的部分是使用DOM树并生成正确的特性。同样,以正确的方式标记数据也是一项乏味的任务。对于ML模型-查看CRF、2DCRF、半马尔可夫CRF。
最后,在一般情况下,这是IE研究中的一个前沿,而不是几个晚上就能完成的一个技巧。
另外,我认为NLTK不会很有帮助-它是一个NLP,而不是Web IE库。
相关问题 更多 >
编程相关推荐